\我听说Laravel是用symfony,php框架制作的。 所以,我认为symfony bundle也将在Laravel工作。
我想将它安装到Laravel“5.1。*”。所以我在composer.json编辑了这一行。
"require": {
"php": ">=5.5.9",
"laravel/framework": "5.1.*",
"igorw/file-serve-bundle": "~1.0"
},
然后我执行了composer update
。
readme.md说我必须将它添加到我的应用内核。
public function registerBundles()
{
$bundles = array(
// ...
new Igorw\FileServeBundle\IgorwFileServeBundle(),
// ...
);
// ...
}
所以我把它添加到了我的内核。
protected $middleware = [
\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Igorw\FileServeBundle\IgorwFileServeBundle::class,
];
但是当我在浏览器中保存并转到我的应用程序时,Bundle.php第29行中的 FatalErrorException: 出现了类'Symfony \ Component \ DependencyInjection \ ContainerAware'未找到。
我错了什么?
答案 0 :(得分:7)
Symfony和Laravel是两个完全不同的框架。 Symfony构建于20多个(甚至30多个)Symfony组件之上(由Symfony团队创建的独立库)。这些组件由框架bundle绑定在一起,创建的框架称为Symfony全栈框架。
Laravel也使用了其中一些组件。 Laravel框架只是将这些组件粘合在一起的另一种方式。 Silex,另一个框架,是绑定这些组件的另一种方式。
Bundles是Symfony 全栈组件(实际上是HttpKernel组件)的概念。 Laravel不使用它,所以你不能在Laravel中使用任何捆绑包。
如果您需要使用Symfony软件包,则需要使用Symfony应用程序。幸运的是,Laravel也有一个很大的社区。很可能有一个Laravel软件包为Laravel框架实现了相同的功能。