Hallo Leute,
ich spiele gerade mit Symfony rum und wollte die erste Seite jetzt mal live sehen.
Dabei kommt es aber zum Fehler.
Ist jetzt nichts besonders, da das anscheinend häufiger auftritt und eigentlich ganz einfach behoben werden sollte.
http://symfony.com/doc/current/book/page_creation.html
Das Problem ist nur, dass es durch den Befehl:
$ php app/console cache:clear --env=prod --no-debug
nicht behoben wird, sondern ich einen Fehler bekomme.
Ich habe mich aber eins zu eins an das Tutorial gehalten und Symfony sogar noch neu installiert (natürlich vorher ordentlich entfernt).
In der Entwicklungsumgebung (app_dev.php) geht es einwandfrei.
Was mache ich falsch?
Anmerkung:
Ubuntu ist echt toll Danke nochmal für den Tipp! Die Installation war kinderleicht und mit nur wenigen Befehlen realisiert!
Entweder du hast app/config/routing.yml oder app/AppKernel.php nicht aktualisiert.
In der Fehlermeldung wird sogar darauf hingewiesen.
Vielleicht liegt es aber auch nur noch so im Cache.
Wenn es mit der app_dev.php funktioniert, liegt es wohl daran.
Versuch mal app/cache/* manuell zu löschen:
$ rm -rf app/cache/*
Also ich denke, dass was in der Fehlermeldung steht, sollte doch schon stimmen, da cache:clear nichts gebracht hat.
Hier der Code der AppKernel.php
[PHP]
<?php
use Symfony\Component\HttpKernel\Kernel;
use Symfony\Component\Config\Loader\LoaderInterface;
class AppKernel extends Kernel
{
public function registerBundles()
{
$bundles = array(
new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
new Symfony\Bundle\SecurityBundle\SecurityBundle(),
new Symfony\Bundle\TwigBundle\TwigBundle(),
new Symfony\Bundle\MonologBundle\MonologBundle(),
new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(),
new Symfony\Bundle\AsseticBundle\AsseticBundle(),
new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),
new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(),
new AppBundle\AppBundle(),
);
if (in_array($this->getEnvironment(), array('dev', 'test'))) {
$bundles[] = new Symfony\Bundle\DebugBundle\DebugBundle();
$bundles[] = new Acme\DemoBundle\AcmeDemoBundle();
$bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle();
$bundles[] = new Sensio\Bundle\DistributionBundle\SensioDistributionBundle();
$bundles[] = new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle();
}
return $bundles;
}
public function registerContainerConfiguration(LoaderInterface $loader)
{
$loader->load($this->getRootDir().'/config/config_'.$this->getEnvironment().'.yml');
}
}
[/PHP]
Und das steht in der Routing.yml
[CODE]
app:
resource: "@AppBundle/Controller/"
type: annotation
# app/config/routing.yml
acme_website:
resource: "@AcmeDemoBundle/Resources/config/routing.yml"
prefix: /[/CODE]
Füge ich diesen Code der AppKernel.php hinzu, geht dann zwar die app.php, aber die app_dev.php geht dafür nicht mehr:
[PHP]
$bundles = array(
// ...
new Acme\DemoBundle\AcmeDemoBundle(),
);
// ...
[/PHP]
Und da ich jetzt das Problem selbst gelöst habe, hier die Lösung für eventuelle Googler, die auf den Thread stoßen:
Dieser Code musste der AppKernel.php manuell hinzugefügt werden:
[PHP]$bundles = array(
// …
new Acme\DemoBundle\AcmeDemoBundle(),
);
// [/PHP]
Das steht ja so noch im Tutorial.
Dafür steht folgendes nicht in den Docs:
In der AppKernel.php steht folgender Code:
[PHP]
if (in_array($this->getEnvironment(), array(‚dev‘, ‚test‘))) {
$bundles = new Symfony\Bundle\DebugBundle\DebugBundle();
$bundles = new Acme\DemoBundle\AcmeDemoBundle();
$bundles = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle();
$bundles = new Sensio\Bundle\DistributionBundle\SensioDistributionBundle();
$bundles = new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle();
}
[/PHP]
Dabei muss dann dieser Schnipsel entfernt werden:
[PHP]
$bundles = new Acme\DemoBundle\AcmeDemoBundle();
[/PHP]
Und dann geht sowohl die „app.php“ als auch die „app_dev.php“.