我有一个带有后端的网站,可下载" zip文件"从另一个网站。每个zip都包含一个php文件,它是一个Controller(从BaseController
扩展而来)。下载控制器后,它将在内部移动到/app/controllers
文件夹以准备好请求。但是,这不起作用,因为它未在/app/routes.php
注册。
我的问题是,如何在routes.php中动态注册此控制器而不明确添加它?
答案 0 :(得分:3)
好的,我发现了一个非常好的答案,我想......
为新控制器创建新目录/app/forms
。因此,每个下载包都会将其移入其中,具有以下结构:
/app/forms/
form1/
Form1Controller.php
routes.php
form2/
Form2Controller.php
routes.php
将/app/forms/
添加到composer.json
的自动加载类地图。
修改/app/routes.php
以制作动态包含:
foreach (File::directories(app_path('forms')) as $formDir)
File::requireOnce("{$formDir}/routes.php");
composer dump-autoload
更新类映射现在我不需要点燃蜡烛并向laravel之神祈祷。