for my neos websites I use a finished site package with a basic configuration. The package is called Default.Site.
Now I wanted to create a controller for a small plugin with the
Default\... is not “allowed” here.
Is there a solution?
Default is a reserved word in PHP so you can’t use it to start a namespace with. The namespace should always start with the vendor (e.g. your name or your company’s name), followed by the package name. Then you should follow the standards to enjoy class loading by composer.
In case of your package, your (assumed)
FooController should use the following namespace:
class FooController [...]
Your package would then be named
PatrickEckhart.DefaultSite and be placed in the
Packages/Sites folder, your
FooController would therefore reside in ``Packages/Sites/PatrickEckhart.DefaultSite/
Classes/PatrickEckhart/DefaultSite/Controller. In your root
composer.json you define the path to your classes as follows:
After that, execute
composer dump-autoload to regenerate the autoloading files.
Thank you Lorenz! I knew “default” (Default≠default? hmm) in PHP is reserved, but I did not think about it when choosing the package name.