2014-04-10 89 views
0

我有一个网站有一个后台从其他网站下载“zip文件”。每个zip包含一个控制器的php文件(从BaseController延伸)。一旦控制器被下载,它将被内部移动到/app/controllers文件夹以准备好请求。但是,这不会工作,因为它没有在/app/routes.php登记。如何动态添加路由规则?

我的问题是,我怎么能注册这个控制器动态routes.php而不明确添加它?

回答

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更新类映射

现在我不需要点燃蜡烛,并做了祈祷,以laravel的神。