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 commands
  • core/custom/packages — custom and installable packages
  • views — site-level Blade views
  • themes or published assets — frontend theme output
  • core/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.php registers the package with Evo
  • config/example.php stores package settings such as route prefix, theme, and demo toggles
  • migrations/ stores database schema changes
  • src/Seeders/ can create demo data, templates, TVs, and documents
  • views/demo/ stores frontend Blade templates
  • views/manager/ stores manager-side Blade templates
  • assets/chunks, assets/plugins, assets/snippets, assets/tvs hold classic Evolution elements that the provider can load or register
  • assets/modules holds 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.