主な問題は、Symfonyの変更が速すぎて、トランク/メインブランチに基づいて機能するソリューションを維持できないことです。
たぶん私はどのように始めるかについて最善のアプローチを持っていませんでしたが、いくつかの検索の後、私は解決策に到達しました:
私はついに私の問題を見つけました:
私の問題はすべてDI関連でした。
最初の問題は、ControllerLoaderListenerが「core.load_controller」イベントを監視していなかったことです。
config.ymlでWeb拡張機能を非アクティブ化したためです(恥ずかしいですが...テストしていました!)
その後、「ルーター」サービスで別の問題が発生しました。どちらもロードされていません!
ここを見て:
src/vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/skeleton/application/yml/config/config.yml
このconfig.ymlによってルーターサービスがアクティブ化されていることがわかりました。
parameters:
kernel.include_core_classes: false
kernel.config: ~
web.config: #enables the Web DI extension
router: { resource: "%kernel.root_dir%/config/routing.yml" } #enables the Routing DI extension
web.templating: ~
doctrine.dbal: ~
doctrine.orm: ~
私が皆さんにこれを言うなら、それは私が他の人々へのいくつかの頭痛を節約したいと思っているからです:)
そして、誰かが興味を持っているなら、ここに最新のfabpot/Symfonyリポジトリで動作する動作中のカーネルがあります。
<?php
require_once __DIR__.'/../src/autoload.php';
use Symfony\Framework\Kernel;
use Symfony\Components\Routing\Loader\YamlFileLoader as RoutingLoader;
use Symfony\Components\DependencyInjection\Loader\LoaderInterface;
class ECommerceKernel extends Kernel
{
public function registerRootDir()
{
return __DIR__;
}
public function registerBundles()
{
$bundles = array(
new Symfony\Framework\KernelBundle,
new Symfony\Bundle\FrameworkBundle\FrameworkBundle,
new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle,
new Symfony\Bundle\DoctrineBundle\DoctrineBundle,
new Symfony\Bundle\DoctrineMigrationsBundle\DoctrineMigrationsBundle,
new Application\ECommerceBundle\ECommerceBundle,
);
if ($this->isDebug()) {
}
return $bundles;
}
public function registerBundleDirs()
{
$bundles = array(
'Application' => __DIR__.'/../src/Application',
'Bundle' => __DIR__.'/../src/Bundle',
'Symfony\\Framework' => __DIR__.'/../src/vendor/symfony/src/Symfony/Framework',
'Symfony\\Bundle' => __DIR__.'/../src/vendor/symfony/src/Symfony/Bundle',
);
return $bundles;
}
public function registerContainerConfiguration(LoaderInterface $loader)
{
return $loader->load(__DIR__.'/config/config_'.$this->getEnvironment().'.yml');
}
public function registerRoutes()
{
$loader = new RoutingLoader($this->getBundleDirs());
return $loader->load(__DIR__.'/config/routing.yml');
}
}