Как да направите модулна система в laravel

Опитвам се да създам модулна система в Laravel 4.1.

Имам следните папки:

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 във всеки модул, но все още не мога да маршрутизирам модулите. Следователно трябва да използвам файла routes.php по подразбиране на laravel. Как мога да разреша този проблем?

Благодаря все пак.


person Onur Göker    schedule 05.05.2014    source източник
comment
Вашето дърво не е достатъчно, ще трябва да видим някакъв код, за да се опитаме да разберем как правите нещата и какво може да се случи.   -  person Antonio Carlos Ribeiro    schedule 05.05.2014
comment
Току-що добавих въвеждащи кодове на моя модул.   -  person Onur Göker    schedule 05.05.2014


Отговори (1)


Всички библиотеки на Laravel съществуват в глобалното пространство от имена, така че ако използвате какъвто и да е вид код с пространство от имена, ще трябва да посочите библиотеките, които извиквате.

Използвайки предоставения от вас код, това би било така:

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

 use Controller, Session;

 class Modulename extends Controller {

 }

Това ви спестява необходимостта да въвеждате цялото пространство от имена.

person ollieread    schedule 05.05.2014
comment
Страхотен! При мен се получи. Благодаря. Но какво да кажем за маршрутизирането? (2-ри въпрос) - person Onur Göker; 06.05.2014
comment
Е, маршрутизирането е доста лесно и Laravel така или иначе работи като модулна система, така че просто правилното пространство на имената трябва да е достатъчно. Какъв точно е проблемът? - person ollieread; 06.05.2014
comment
Искам да добавя собствен routing.php на модулите Напр. app/modules/moduleName/routes.php Не е по подразбиране laravel routes.php - person Onur Göker; 06.05.2014
comment
просто включете файловете с маршрути за всеки модул в основния routes.php? - person Hop hop; 24.08.2016