如何动态添加路由规则?

时间:2014-04-10 03:08:45

标签: controller laravel-4

我有一个带有后端的网站,可下载" zip文件"从另一个网站。每个zip都包含一个php文件,它是一个Controller(从BaseController扩展而来)。下载控制器后,它将在内部移动到/app/controllers文件夹以准备好请求。但是,这不起作用,因为它未在/app/routes.php注册。

我的问题是,如何在routes.php中动态注册此控制器而不明确添加它?

1 个答案:

答案 0 :(得分:3)

好的,我发现了一个非常好的答案,我想......

  1. 为新控制器创建新目录/app/forms。因此,每个下载包都会将其移入其中,具有以下结构:

    /app/forms/
        form1/
            Form1Controller.php
            routes.php
        form2/
            Form2Controller.php
            routes.php
    
  2. /app/forms/添加到composer.json自动加载类地图

  3. 修改/app/routes.php以制作动态包含:

    foreach (File::directories(app_path('forms')) as $formDir)
        File::requireOnce("{$formDir}/routes.php");
    
  4. 运行composer dump-autoload更新类映射
  5. 现在我不需要点燃蜡烛并向laravel之神祈祷。