This page applies to Aikeedo 5.x. Class names, paths and signatures match the 5.0 source code.
What you can build
Plugins
Add features, pages, API endpoints, payment gateways, tax engines, storage adapters, AI providers and integrations, all without editing core files.
Themes
Design the public landing page and add your own marketing pages with Twig, Tailwind CSS and Alpine.js.
REST API integrations
Connect external applications to the User and Admin REST APIs, including streamed chat responses.
Core customizations
Learn the architecture, request lifecycle, modules and subsystems before you override or extend core behavior.
Choose where to start
1
Set up a local environment
Install Aikeedo locally, then follow Local development to turn on debug mode, frontend hot reloading and cron.
2
Pick the right extension mechanism
Read Extending Aikeedo to decide between a plugin, a theme and a view override, and to see which changes survive updates.
3
Build something
Follow the plugin quickstart or the theme quickstart. Both take you from an empty directory to working code in an installation.
Technology at a glance
See Core architecture for the full picture.
Conventions in these docs
- Paths are relative to the Aikeedo installation root, the directory that contains
composer.json,bin/andsrc/. The web root ispublic/by default, or whatever thePUBLIC_DIRenvironment variable names. - Class names are fully qualified. Core classes have no vendor prefix; for example,
Billing\Infrastructure\Payments\PaymentGatewayInterfacelives insrc/Billing/Infrastructure/Payments/PaymentGatewayInterface.php. - Examples use a fictional vendor,
acme, with packages such asacme/helloand the namespaceAcme\Hello\. Replace them with your own vendor and package names. - Commands run from the installation root unless a page says otherwise, for example
php bin/console app:locale:extract.
Prerequisites
To follow the guides, you should be comfortable with:- Modern PHP: namespaces, attributes, enums, readonly properties and Composer
- Twig templates and basic Alpine.js
- Working in a terminal with
php,composerandnpm
Develop and test extensions on a local or staging copy, not on your production installation.