Zitat von
Spooky
Ein neues Bundle kannst du dir mit
Code:
php app/console generate:bundle
erzeugen lassen.
Stimmt! Gar nicht dran gedacht!
Damit der generate-Befehl aber verwendet werden kann, muss zuerst noch das "sensio/generator-bundle" via Composer installiert und dann in AppKernel.php registriert werden.
PHP-Code:
new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle()
Das generator-bundle wird in der contao standard-edition nämlich nicht mitgeliefert.
Ich hab jetzt mal ein einfaches Testbundle generieren lassen:
Ordnerstruktur:
Code:
├─ src/
│ ├─ TestBundle/
│ ├─ Controller/
│ ├─ Resources/
│ ├─ TestBundle.php
│ ├─ composer.json
TestBundle.php
PHP-Code:
namespace TestBundle;
use Symfony\Component\HttpKernel\Bundle\Bundle;
class TestBundle extends Bundle
{
}
AppKernel.php
Code:
new TestBundle\TestBundle(),
composer.json
Code:
"autoload": {
"psr-4": {
"TestBundle\\": ""
}
}
Aber auch hier meldet mir Symfony:
Code:
ClassNotFoundException in AppKernel.php line 43: Attempted to load class "TestBundle" from namespace "TestBundle".
Aber das müsste doch jetzt eigentlich einwandfrei funktionieren?!
Zitat von
Spooky
Wobei, eine Contao Extension als lokales Bundle zu entwickeln ist ja auch irgendwie blöd, da man bspw. dem Template Loader ja den kompletten Pfad zu den Templates geben muss... und als lokales Bundle ist das dann
src/Bundle/… während es als Paket dann
vendor/package/src/Bundle/… ist.
Also ich habe noch keine Ahnung, was nun die Best Practice für die Bundle Entwicklung von Contao ist
.
Das würde mich auch interessieren. Vielleicht können die geübten Contao4-Extension-Enwickler hier ein paar hilfreiche Inputs geben