1
이 모듈 솔루션이 함께 제공되었는데 문제가 있는지 궁금합니다.Laravel modules
composer.json이
"autoload" : {
"classmap" : [
"....",
"app/modules"
],
"psr-4" : {
"modules\\" : "app"
}
}
응용 프로그램/설정/app.php
'provider' => array(
'....',
'Modules\ServiceProvider\ModulesServiceProvider'
응용 프로그램/모듈/ModulesServiceProvider.php
<?php
namespace Modules\ServiceProvider;
use Illuminate\Support\ServiceProvider;
class ModulesServiceProvider extends ServiceProvider
{
public function register() {
$this->app->bind('modules', function()
{
return new Modules;
});
}
public function boot() {
// set modules path
$modules_path = __DIR__ . '/';
// scan modules directory
$modules = scandir($modules_path);
foreach($modules as $module)
{
if($module === '.' || $module === '..') continue;
// check if module exist
if(is_dir($modules_path) . '/' . $module)
{
// set routes.php path
$routes_path = $modules_path . $module . '/routes.php';
// set modules views path
$views_path = $modules_path . $module . '/views';
// if routes.php exists
if(file_exists($routes_path))
{
// required routes.php
\View::addNamespace($module, $views_path);
require_once($routes_path);
}
else
{
// else do ... what ??
continue;
}
}
}
}
}
모든 것이 잘 작동, 나는를 호출 할 수 있습니다 View :: make ('moduleName :: viewName')를 사용하면 각 모듈에 경로가 정의되어 쉽게 유지 관리 할 수 있습니다.
좋은 해결책이 아닌 경우 설명해주세요. 여기
나에게 잘 보이는,하지만,이 라인 : '.''경우 ($ 모듈 === || $ 모듈 === '..') 계속됩니다. ','평등하지 않습니까? ' 이렇게 :'if ($ module! = '.'&& $ module! = '..') {// 처리하지} else {// process};'그런 식으로'.' &'. '은 포함되지 않습니다. - 편집자 - 모든 것을 잊어 버리십시오, 반복 루프 반복자에 대해 완전히 잊어 버렸습니다. –
감사합니다 @ 스티브 베만이 여기 있습니다. 하지만이 솔루션을 사용할 때마다 컨트롤러에 use 문을 포함 시켜서 사용하고 싶을 때마다 (예 : View 사용); 입력을 사용하십시오; BaseController를 사용하십시오. ....이 기술은 성능 관점에서 어떤 문제가 있습니까? – lesandru