- This is a Craft CMS 4 project (https://craftcms.com/docs/4.x/).
- Craft is a self-hosted PHP application, built on Yii 2 (https://www.yiiframework.com/doc/guide/2.0/en).
- Craft connects to a MySQL database for content storage.
- Custom modules and plugins live in #folder/modules and #folder/plugins.
- Use Craft’s service locator pattern to access services (e.g.
Craft::$app->entries->getEntryById()
). - Always use dependency injection in custom module constructors when possible.
- All custom modules extend
craft\base\Module
and are registered in #folder/config/app.php.
- Twig templates are located in #folder/rebuild/templates.
- Twig template files should follow the naming convention of
*.twig
.
- Frontend source files are located in #folder/src
- Tailwind CSS is commonly used and included via Vite.
- JS assets are typically compiled using Vite.
- Environment variables are defined in #folder/.env files and accessed via
App::env()
. - Project config is stored in #folder/config/project/.
- Custom modules live in #folder/modules/ and are registered in #folder/config/app.php.
- Use PSR-4 autoloading via #folder/composer.json.
- Avoid placing logic in controllers—prefer services or helper classes.