【问题标题】:Creating Modules on Laravel 5.2 Outside App在 Laravel 5.2 外部应用程序上创建模块
【发布时间】:2016-07-14 07:44:46
【问题描述】:

我目前正在创建一个模块化 laravel 项目,这是我的参考链接

Creating a Modular Application in Laravel

现在我想创建一个与我的应用文件夹相同目录的模块文件夹

我还创建了一个 ModuleServiceProvider.php

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;

class ModuleServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap the application services.
     *
     * @return void
     */
    public function boot()
    {

        $modules = config('modules');

        if (ENVIRONMENT != 'local') {

        } else {

            foreach ($modules as $key => $module) {

                // Load the routes for each of the modules
                if(file_exists(__DIR__ . "../../../modules/{$module}/routes.php")) {
                    require __DIR__ . "../../../modules/{$module}/routes.php";
                } else {
                    echo "{$module} Module Not found"; die;
                }

                // Load the views
                if(is_dir(__DIR__ . "../../../modules/{$module}/views")) {
                    $this->loadViewsFrom(__DIR__ . "../../../modules/{$module}/views", $module);
                } else {
                    echo  "{$module} Module View Not found"; die;
                }
            }

        }

    }

    /**
     * Register the application services.
     *
     * @return void
     */
    public function register()
    {
        //
    }
}

我将 ModulerServiceProvider 类添加到我的

配置/app.php

providers' => [
    App\Providers\ModuleServiceProvider::class,
]

这是正在添加的modules/yinyang/route.php下的路由

Route::group(['prefix' => 'yinyang', 'namespace' => 'Modules\Yinyang\Controllers'], function () {

    Route::get('/', 'GameController@index');
});

这里是模块/yinyang/controller/GameController.php

namespace Modules\Yinyang\Controllers;

use App\Http\Controllers;

class GameController extends Controller {


    public function __construct() {

    }

    public function index() {

    }

}

这是我尝试访问 yinyang 模块下的路由时的问题http://192.168.200.30/try/sample/public/yinyang

Class Modules\Yinyang\Controllers\GameController does not exist

任何人都对如何解决这个问题有任何意见/建议。谢谢。

【问题讨论】:

    标签: php laravel laravel-5.2


    【解决方案1】:

    我在帮助下解决了问题

    Modular Structure Laravel 5

    为我访问模块目录 我需要在我的 composer.json 上添加新实例 psr-4 的模块

    "psr-4": {
        "App\\": "app/",
        "Modules\\": "modules/"
    }
    

    然后运行 ​​composer dump-autoload 来创建一个新的构建。

    【讨论】:

      猜你喜欢
      • 2016-09-08
      • 1970-01-01
      • 2016-04-11
      • 2013-08-17
      • 2020-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多