Laravel,没有Shell Access的dump-autoload

Jus*_*tin 6 php shell laravel composer-php laravel-4

我有两个同名的控制器:

app\controllers\CareersController.php(供公众使用) app\controllers\Admin\CareersController.php(适用于管理员)

由于命名冲突,我添加namespace admin;到管理控制器.

一切都在本地工作正常,但当我将新的管理控制器上传到我的服务器时,我收到一个错误: Class Admin\CareersController does not exist

根据我的理解,修复是: php artisan dump-autoloadcomposer dump-autoload

但是,我没有Shell访问权限来运行这些命令,并且无论如何都没有在服务器上安装composer.那么,有没有办法在没有Shell访问的情况下重新加载自动加载文件?

小智 13

composer dump-autoload本地运行。然后,在您的托管站点中,您可以手动更新文件夹中的两个文件autoload_classmap.php和。我更喜欢将添加的类从本地复制并粘贴到托管服务器。autoload_static.phpvendor/composer


Lau*_*nce 5

您不需要外壳访问。工匠包括dump-autoload功能。您可以通过应用内的PHP调用来完成此操作:

Route::get('/updateapp', function()
{
    \Artisan::call('dump-autoload');
    echo 'dump-autoload complete';
});
Run Code Online (Sandbox Code Playgroud)

编辑:刚注意到您写了“反正没有在服务器上安装composer”。不知道会发生什么-尝试上面的命令并告诉我们。

如果它不起作用-那么只需在本地运行composer dump-autoload-然后上传新的autoload.php。

附带说明一下-是否可以选择切换服务器?如果您没有命令行和作曲者访问权限,那么您将不断遇到各种问题。您可以使用Forge并在DigitalOcean,Linode等服务器上启动新服务器,所需的时间少于解决此问题所需的时间:)

  • 如果服务器上未安装 Composer,则会显示 `The command "dump-autoload" does not exist.` (3认同)