Ga naar inhoud

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.php bootstrapt en delegeert naar _core/config/config.php_core/router.php.
  • api.php verwerkt AJAX-verzoeken: controleert de _f-request-parameter (AJAX_FUNCTION) en laadt daarna ook appconfig/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-docs
  • mkdocs-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