Component structure

In general, there is no restriction for the folder structure of your component.

As Pacemaker Community Edition (CE) components usually will be installed by Composer, at least your component structure should be PSR-0 or PSR-4 compatible.

As usual, every component will be delivered with its configuration (the necessary files for DI, for example); the structure should also support the separation of source code and configuration files.

Pretending you will start to implement your first component, the recommended component structure looks like this.

composer.json
├── src/
│   ├── Actions/
│   │   └── Processors/
│   ├── Assemblers
│   ├── Callbacks
│   ├── Observers
│   ├── Repositories
│   │   └── CacheWarmers/
│   ├── Services
│   ├── Subjects
│   └── Utils
├── tests/
└── symfony/
    │   ├── DependencyInjection/
    │   ├── Resources/
    │   │   └── config/
    │   │       └── service.xml
    │   └── Utils/
    │       └── DependencyInjectionKeys.php
    └── ImportBundle.php