The Code Architecture

Are you searching for :

  • organizing your own app code : see symfony good practices or look at the demo app
  • organizing the code for a pushword extension : see create an extension

Else, you are at the good place.

Here, we will speak about code organisation for Pushword core and officially maintained extensions.

The code for all officially maintained extension and the core is kept in an unique repository : it's a mono-repository. It's kind of majestic monolith.

The core contain the minimum features, then everything is done via extension.

The core code follow as much as it can the symfony good practices and have a special folder named componenent for bigger thing (in fact, components will may have their own package one day).

Each extension are facultative.

Keeping all this extensions in one repository permit to test them easily, to understand the code easily and to code much quicker. Before v1, it was very very cool to refactor quickly the code.

The skeleton isn't a real skeleton (copy and install).

It's used for testing, demo, using for generating the docs and a few class from skeleton are extracted by the default installer.

On top of Symfony

Each package (except skeleton, installer and js-helper) is built as a symfony bundle.

The core package required a symfony app instaled to be functionnal.

Want a particular details about the way the code is organized ? Feel free to ask (github or mail), I will list my answer here.