5.4 KiB
5.4 KiB
Architecture
Wygenerowano: 2026-05-20 ($paul-map-codebase)
Wzorzec
Klasyczne MVC bez frameworka. Wlasne jadro Core + FrontController + Router + Controller + warstwa *DAL (Data Access Layer) + szablony Smarty.
Wejscia (entry points)
index.php— strona publiczna. Sekwencja:include('./core/core.php')Core::Init(PageType::STRONA)Core::LoadSmarty()include('routes.php')— definicje tras publicznych.new FrontController() -> Dispatch().
Admin/index.php— panelPageType::ADMIN, definiuje wlasneRouter::AddRoute(...)inline (m.in.Structure/Add,Structure/Edit/id/:id,customer/gallery/{lang}).- Pomocnicze skrypty stand-alone w roocie:
pack.php,tar.php,zip.php,_unpack.php,makl.php,info.php— operacje archiwizacji/diagnostyki, nie korzystaja z FrontController.
Warstwy
1. Core (core/)
core/core.php— klasaCore(init, ladowanie configa, autoloader klas, Smarty boot, garbage) + enumPageType(STRONA,Package,ADMIN,SERVER).core/ErrorHandler.php— globalna obsluga bledow.core/class/— infrastrukturalne klasy:Config,Registry,DB,SQL,DbCache,QueryCache,Router,FrontController,Controller,MainController,ModuleController,Request,RestRequest,Mailer,Profiler,UserValidator,Validator,Daemon,SessionProxy,TemplateMaster,Utils,UtilsUtf,MfCurl,MFLog,MfMemcache,MfXmlParser,Xml2Array,Enviroment,Exception,FileGenerator,HtmlButton,HtmlElement,DalData,DataObject,IDefaultDAL,Dictionary,DbSqlLite.core/model/— entity + DAL pary (np.MfProduct.class.php+MfProductDAL.class.php). Podkatalogcore/model/SimpleArticle/na artykuly.core/config/{Strona,Admin,Server,Package}/— plikipath.config.php,param.config.php,db.config.php,db.config.ini;Admin/zawiera dodatkowopanel.config.php.core/lib/— wendorowane biblioteki (Smarty, log4php, PHPMailer, WideImage, Zend Search Lucene, SmartyValidate, mImage, MimeType).core/temp/{Strona,Package}/Router.cache— cache routera.
2. Kontrolery publiczne (controller/)
IndexController,SearchController,MapsController,ProductController,ImageController,FileController,ModuleController,SharedController,SoapController,TranslateController,SimpleArticle/IndexController.php.
3. Kontrolery panelu (Admin/controller/)
- Pelny CRUD admin:
BoxController,CalcController,ConfigController,DemoController,DictionaryController,FileController,HomeController,HomeSiteController,ImageController,IndexController,LoginController,MailingController,MainSiteController,MapsController,ProductAttributeController,ProductCategoryController,ProductController,ProductSeriesController,ProductSpecController,SetupController,SharedController,SimpleArticle/IndexController.php,StructureController,UploaderController,UserController,UtilsController.
4. Moduly (module/, Admin/module/)
- Publiczne:
module/AuthDAL.mod.php,module/CacheParam.mod.php. - Admin:
Admin/module/Admin.mod.php,Admin/module/AdminDAL.mod.php,Admin/module/AuthDAL.mod.php,Admin/module/CacheParam.mod.php,Admin/module/LightBBCodeParser.mod.php.
5. Szablony (template/, Admin/template/)
template/index.tpl— szablon glowny strony publicznej.template/partial/— podzielony na sekcje domeny:File/,Image/,Index/,Module/,Product/,Search/,Shared/,SimpleArticle/Index/,Translate/.template/index.tpl.bak,template/index_good.tpl,template/clean.tpl,template/szablon.html— dodatkowe pliki (kandydat do uporzadkowania).- Admin:
Admin/template/partial/z folderamiStructure/,Product/,SimpleArticle/Index/itd. (do potwierdzenia po$paul-map-codebasez agentami).
Routing
- Statyczna rejestracja w
routes.php(publiczne) oraz inline wAdmin/index.php(admin). Router::$parseLang = truena stronie publicznej — obsluga sufiksu jezykowego.Router::$reverseRoute = truew obu trybach.- Dispatching:
FrontController::Dispatch()-> kontroler -> metoda -> Smarty render.
Rejestr i konfiguracja
Registry::Set/Get(core/class/Registry.class.php) — globalny kontener stanu (db, smarty, javascript, title).Config::Get/Set(core/class/Config.class.php) — wartosci z plikow PHP/INI.SetupDAL::GetAllVariables()— dynamiczna konfiguracja z bazy, wczytywana wCore::PageConfig()(core/core.php:73).
Sesja / lokalizacja
SessionProxy(core/class/SessionProxy.class.php) — abstrakcja sesji PHP.setlocale(LC_TIME, 'pl_PL', ...)ustawiana wCore::PageConfig()(core/core.php:97).
Bezpieczny tryb aplikacji
- Flaga
Core::$appSafeMode(core/core.php:21,Core::SetAppSafeMode()) — aktywowana, gdySetupDAL::GetAllVariables()rzucaMysqlException.
Statyczne zasoby
Static/— uploady (Static/upload/Article/...), miniatury (Static/thumbs/).Server/— zasoby serwerowe (do zweryfikowania).
Diagram glownych zaleznosci (uproszczony)
HTTP request
-> index.php / Admin/index.php
-> Core::Init() + LoadSmarty()
-> Router (routes.php / inline)
-> FrontController::Dispatch()
-> *Controller (controller/ lub Admin/controller/)
-> Model entity + *DAL (core/model/)
-> Smarty render (template/*.tpl)