2015-10-04 38 views
0

\我聽說Laravel是用symfony,php框架製作的。 所以,我認爲symfony包也會在Laravel工作。如何將symfony包應用於Laravel?

IgorwFileServeBundle github

我想將它安裝到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, 
]; 

但是當我保存並轉到我的應用程序在布勞爾,FatalErrorException在Bundle.php線29: 班 '的Symfony \分量\ DependencyInjection \ ContainerAware' 未找到中出現。

我錯了什麼?

+0

Symfony包與laravel無法正常工作。 Laravel使用symfony中的組件,主要是http內核,但除此之外還有很多不同 –

回答

6

Symfony和Laravel是2個完全不同的框架。 Symfony構建在20多個(甚至30多個)Symfony組件(由Symfony團隊創建的獨立庫)之上。這些組件通過框架綁定在一起,創建的框架稱爲Symfony全棧框架。

Laravel還使用了其中一些組件。 Laravel框架是將這些組件粘合在一起的另一種方式。另一個框架Silex是另一種綁定這些組件的方法。

Bundle是來自Symfony 全棧組件(實際上是HttpKernel組件)的一個概念。 Laravel不使用這個,所以你不能在Laravel中使用任何包。

如果您需要使用Symfony包,則需要安裝Symfony應用程序。幸運的是,Laravel也有一個很大的社區。 Laravel框架很可能有一個Laravel包實現了相同的功能。

+0

Symfony團隊已經構建了許多捆綁,這些捆綁大多不相互依賴,因此理論上可以在Laravel中使用Symfony捆綁包,但這取決於。 –

相關問題