2014-05-05 29 views
0

我正在嘗試在Laravel 4.1中創建模塊化系統。如何在laravel中製作模塊化系統

我有類似的文件夾下面的:

app 
app/controllers 
app/controllers/BaseController.php 
app/views/ 
app/modules/ 
app/modules/moduleName/ 
app/modules/moduleName/routes.php 
app/modules/moduleName/controllers/ 
app/modules/moduleName/controllers/module.php 

當我儘量延長BaseController,我使用的命名空間,我得到以下錯誤:

Symfony \ Component \ Debug \ Exception \ FatalErrorException 
Class 'Illuminate\Session' not found 

這裏是我的module.php代碼:

<?php namespace App\Modules\Twitter\Controllers; 

use Illuminate\Routing\Controllers\Controller; 

class Modulename extends Controller { 

} 

我有兩個問題。

  1. 如何在模塊中調用會話類?
  2. 我在每個模塊都有route.php文件,但仍然無法路由 模塊。因此,我應該使用laravel默認routes.php文件。 我該如何解決這個問題?

無論如何。

+0

你的樹還不夠,我們需要看一些代碼,試着理解你是如何做事情的,以及可能發生的事情。 –

+0

我剛剛添加了我的模塊的介紹代碼。 –

回答

1

Laravel庫全部存在於全局命名空間中,所以如果您使用任何類型的命名空間代碼,則需要指定要調用的庫。

使用你提供的代碼,它會是這樣的:

<?php namespace App\Modules\Twitter\Controllers; 

use Controller, Session; 

class Modulename extends Controller { 

} 

這樣可以節省你不必鍵入出整個命名空間。

+0

太棒了!它爲我工作。謝謝。但是路由呢? (第二個問題) –

+0

好吧,路由很簡單,Laravel作爲一個模塊化系統工作,所以只需正確命名所有內容就足夠了。究竟是什麼問題? – ollieread

+0

我想添加模塊自己的routing.php例如 app/modules/moduleName/routes.php 不是默認的laravel routes.php –