Docs Navigation Open
Project Structure
Understand the Evo 3 project layout and the package structure used by real custom packages such as example-package.
Main Project Areas
core/src— Evolution core classes, models, providers, parser, URL processor, console commandscore/custom/packages— custom and installable packagesviews— site-level Blade viewsthemesor published assets — frontend theme outputcore/database— migrations and the local SQLite database when used
Example Package Structure
example-package shows the package layout Evolution CMS expects for a modern extra.
example-package/
├── composer.json
├── config/example.php
├── migrations/
├── lang/en/
├── public/assets/vendor/example/
├── resources/css/
├── resources/js/
├── src/
│ ├── ExampleServiceProvider.php
│ ├── Console/
│ ├── Controllers/
│ └── Seeders/
├── assets/
│ ├── chunks/
│ ├── plugins/
│ ├── snippets/
│ ├── tvs/
│ └── modules/
└── views/
├── demo/
└── manager/
What Each Area Is For
src/ExampleServiceProvider.phpregisters the package with Evoconfig/example.phpstores package settings such as route prefix, theme, and demo togglesmigrations/stores database schema changessrc/Seeders/can create demo data, templates, TVs, and documentsviews/demo/stores frontend Blade templatesviews/manager/stores manager-side Blade templatesassets/chunks,assets/plugins,assets/snippets,assets/tvshold classic Evolution elements that the provider can load or registerassets/modulesholds manager module code
Composer Metadata
A modern package should describe itself through composer.json.
{
"name": "evolution-cms/example-package",
"type": "EvolutionCMS-Package",
"autoload": {
"psr-4": {
"EvolutionCMS\\Example\\": "src"
}
},
"extra": {
"laravel": {
"providers": [
"EvolutionCMS\\Example\\ExampleServiceProvider"
]
}
}
}
For the provider responsibilities, continue with Extending Evolution. For the full package creation workflow, see Creating an Extra.
Previous
Local Development Setup
Set up a local Evo 3 project so package development, migrations, Blade views, assets, and Artisan commands work predictably.
Next
Extending Evolution
Use service providers, controllers, views, migrations, classic assets, and manager modules to extend Evolution CMS in a package-friendly way.