Repository-structuur¶
De repository-root bevat zowel de runbare applicatiedelen als build-output, configuratie en tooling. Hieronder een overzicht van alle relevante mappen en hun verantwoordelijkheid.
Top-level overzicht¶
/ ← projectroot (APP_PROJECT_DIR)
├── _www/ ← publieke webroot (Apache/Nginx document_root)
├── _core/ ← MVC-kern voor de storefront
├── _admin/ ← legacy backoffice-MVC (manage.atraxion.com)
├── _cp/ ← Slim 4 admin control panel (admin.atraxion.com)
├── _api/ ← externe publieke API
├── src/ ← moderne PSR-0-geautoloade code
├── _shopupdating/ ← batch- en cronscripts
├── _static/ ← frontend-assets (CSS, JS, afbeeldingen)
├── _staticcore/ ← gedeelde statische assets (core)
├── _files/ ← gebruikersuploads (buiten webroot)
├── _invoices/ ← gegenereerde factuur-PDF's (buiten webroot)
├── _platformdata/ ← platformexport-data
├── _externestock/ ← externe voorraadfeeds
├── _data/ ← statische datareferentiebestanden (o.a. PNG-bronnen)
├── bin/ ← Composer bin-dir; `doctrine`-wrapper
├── cache/ ← applicatiecache (Symfony Cache, Twig-compilatie)
├── migrations/ ← leeg (reservemap; echte migraties staan in `_core/config/doctrine/migrations/`)
├── templates/ ← Twig-templates (voor nieuwere modules)
├── tests/ ← PHPUnit-tests
├── docker/ ← Docker-configuratiebestanden
├── docs/ ← projectdocumentatie (mkdocs)
├── cli.php ← Symfony Console-entrypoint
├── composer.json ← PHP-afhankelijkheden en autoload
├── gulpfile.js ← root gulp: minificeert JS/CSS en compileert SCSS in `_static*/` (zie ook `_static/assets/gulpfile.js`)
├── package.json ← Node.js-afhankelijkheden (gulp, Sass, …)
├── docker-compose.yml ← lokale ontwikkelomgeving
├── site/ ← mkdocs build-output (gitignore)
└── site-huidige-shop/ ← mkdocs build-output huidige-shop docs (gitignore)
Gedetailleerde beschrijving per map¶
_www/ — publieke webroot¶
De Apache/Nginx document_root. Bevat de front controllers en applicatieconfiguratie.
_www/
├── index.php ← storefront front controller
├── api.php ← AJAX front controller (_f-parameter)
├── appconfig/
│ ├── bootstrap.php ← vendor autoload, constants, Sentry-init, sessie
│ ├── constants.php ← alle APP_*-constanten, DB-constanten, AJAX_FUNCTION
│ ├── config.php ← laadt bootstrap + _core/config/config.php
│ └── environment_constants.php ← omgevingsspecifieke constanten (niet in git)
└── tmp/ ← tijdelijke bestanden (APP_TEMP_PATH)
index.phpbootstrapt en delegeert naar_core/config/config.php→_core/router.php.api.phpverwerkt AJAX-verzoeken: controleert de_f-request-parameter (AJAX_FUNCTION) en laadt daarna ookappconfig/config.php.
_core/ — MVC-kern storefront¶
Bevat alle storefront-logica: router, controllers, views, models, traits en configuratie.
_core/
├── router.php ← dispatcher-shim: laadt _core/config/router.php en roept hem aan
├── config/
│ ├── router.php ← Slim 4 app + alle routes + middleware-stack
│ ├── routing.php ← named-route → controllerklasse mapping (atx\ legacy routes)
│ ├── autoload_classes.php← legacy suffix-autoloader (spl_autoload_register)
│ ├── service-providers.php ← lijst van alle service-providers voor League Container
│ ├── command-providers.php ← service-providers voor CLI-commands
│ ├── menu.php ← navigatiemenu-definitie per taal
│ └── footer-menu.php ← voettekstmenu-definitie per taal
├── controller/
│ └── classes/atx/ ← legacy atx\-controllers (suffix Controller/Worker)
├── model/
│ └── classes/atx/ ← legacy atx\-modellen en DAO's
├── view/
│ └── classes/atx/ ← legacy atx\-views (suffix View)
└── trait/
└── classes/atx/ ← legacy atx\-traits (suffix Trait)
_admin/ — legacy backoffice¶
Eigen MVC-structuur voor interne Atraxion-medewerkers (manage.atraxion.com). Geen eigen entry point — de Apache-vhost mapt manage.atraxion.com naar DocumentRoot _www/, zodat de gedeelde front-controller _www/index.php ook admin-verkeer afhandelt en naar de _admin/-controllers dispatcht. Heeft dezelfde lay-out als _core/ (eigen config/routing.php, controller/, model/, view/).
_admin/
├── config/
│ └── routing.php ← admin-specifieke named-route mapping
├── controller/
│ └── classes/atx/ ← admin atx\-controllers
├── model/
│ └── classes/atx/
│ └── classes/atx/cli/commands/ ← Symfony Console-commands (legacy locatie)
└── view/
└── classes/atx/
_cp/ — Slim 4 admin control panel¶
Aparte Slim 4-applicatie voor het interne beheerpaneel op admin.atraxion.com (Apache-vhost mapt admin.* naar DocumentRoot _cp/). Bootstrapt via dezelfde _www/appconfig/bootstrap.php als de storefront.
_cp/
└── index.php ← Slim 4 app; laadt Atraxion\Admin service-providers
Controllers staan in src/Atraxion/Admin/Controller/, Twig-templates in templates/admin/. Service-providers: Atraxion\Admin\ServiceProvider\{SlimServiceProvider, AdminServiceProvider, ApiServiceProvider}.
_api/ — externe publieke API¶
Afzonderlijk Slim 4-applicatie-entrypoint (_api/index.php). Bedoeld voor externe klanten en koppelingen (EDI, voertuigdata, producten, bestellingen).
_api/
├── index.php ← Slim 4 app; eigen route-definitie (EDI, vehicle-brands, orders, …)
└── docs/ ← API-documentatie
src/ — moderne PSR-0-code¶
Alle nieuwe en ge-refactorde PHP-code staat hier. Composer autoloadt elke namespace via PSR-0 vanuit src/.
src/
├── Amazon/ ← Amazon Selling Partner-integratie
├── Arteel/ ← Arteel loyaliteitsprogramma-client
├── Atraxion/ ← centrale applicatie-namespaces (modules, controllers, services)
│ ├── Authentication/ ← 2FA-middleware en controllers
│ ├── Edi/ ← EDI-orderverwerking
│ ├── Exchange/ ← Pay.nl exchange-callback
│ ├── Front/ ← Slim-handlers, middleware, Front-controllers
│ ├── Mail/ ← e-mailstuur-abstractie (SendMailFactory)
│ ├── Module/ ← losse modules (OrderDocuments, EmailTemplate, BirthdayEmailQueue, …)
│ └── … ← overige namespaces (Asset, Coupon, DriveRight, Loyalty, …)
├── Autodoc/ ← Autodoc-platformclient
├── Cloudflare/ ← Cloudflare-integratie
├── Evox/ ← Evox-afbeeldingenclient (uitgeschakeld in service-providers)
├── Facebook/ ← Facebook-integratie
├── Matomo/ ← Matomo-analytics-client
├── Maxityre/ ← Maxityre-platformclient
├── Odoo/ ← Odoo ERP-integratie (XML-RPC)
├── Qweon/ ← Qweon-platformclient (uitgeschakeld)
├── Rhinoman/ ← Rhinoman-platformclient
├── Transsmart/ ← Transsmart-verzendingsclient
├── Tyre24/ ← Tyre24-platformclient
├── VirusTotal/ ← VirusTotal-client voor documentscan
├── Wheelpope/ ← Wheelpope-integratie
├── functions.php ← globale hulpfuncties (automatisch geladen)
├── legacy_functions.php ← hulpfuncties voor legacy-compatibiliteit
└── namespaced_functions.php← genaamruimde hulpfuncties
_shopupdating/ — batch- en cronscripts¶
Scripts die buiten de HTTP-cyclus draaien: data-import, exports, voorraadverwerking.
_shopupdating/
├── cronjobs/
│ ├── atx/
│ │ ├── customers/ ← klantgerelateerde batchjobs
│ │ ├── dwh/ ← data warehouse-updates
│ │ ├── amazon/ ← Amazon-integratie
│ │ ├── suppliers/ ← leveranciersvoorraadimport
│ │ ├── articles/ ← artikeldata-verwerking
│ │ ├── system/ ← systeemonderhoud
│ │ ├── logs/ ← logverwerking
│ │ ├── job/ ← generieke jobruns
│ │ ├── vehicles/ ← voertuigdata-updates
│ │ └── orders/ ← orderverwerking
│ └── system/ ← systeemcron-scripts
└── exports/ ← gegenereerde exportbestanden (APP_EXPORT_PATH)
_static/ — frontend-assets¶
Bronbestanden voor CSS, JavaScript en afbeeldingen. De build wordt uitgevoerd via gulp (gulpfile.js).
bin/ — Composer bin-dir¶
Bevat o.a. het doctrine-script als wrapper voor doctrine/migrations en doctrine/orm-commando's. Migraties worden aangemaakt met ./bin/doctrine migrations:generate.
migrations/ — reservemap (leeg)¶
De root-map migrations/ is leeg. De Doctrine-migraties staan in _core/config/doctrine/migrations/ (georganiseerd per jaar en maand). Elke migratie (Doctrine\Migrations\AbstractMigration) bevat up() en down() met handgeschreven SQL. Vertalingen worden ook via migraties toegevoegd (INSERT in cms_text).
templates/ — Twig-templates¶
Twig-templatebestanden voor nieuwere modules (EDI-responses, orderdocumenten, e-mailtemplates, …). Gecompileerde versies worden gecacht in cache/.
cache/ — applicatiecache¶
Symfony Cache-opslag en Twig-compilatiecache. Kan gewist worden via php cli.php cache:warmup.
docs/ — projectdocumentatie¶
MkDocs-documentatiebestanden. Twee configuraties:
mkdocs.yml— bestaande migration-/rewrite-docsmkdocs-huidige-shop.yml— dit naslagwerk (huidige shop)
Build-output staat in site/ resp. site-huidige-shop/ (enkel lokale build-artefacten).
Constanten voor paden¶
De meeste paden zijn beschikbaar als constanten gedefinieerd in _www/appconfig/constants.php:
| Constante | Waarde |
|---|---|
APP_PROJECT_DIR |
projectroot |
APP_PUBLIC_DIR |
_www/ |
APP_CORE_PATH |
_core/ |
APP_ADMIN_PATH |
_admin/ |
APP_FILE_PATH |
_files/ |
APP_TEMP_PATH |
_www/tmp/ |
APP_INVOICE_PATH |
_invoices/ |
APP_SHOPUPDATING_PATH |
_shopupdating/ |
APP_CACHE_PATH |
cache/ |
APP_STATIC_PATH |
_static/ |
Zie ook: Tech stack · Request lifecycle & routing · Autoloading & namespaces