我是Laravel框架的新手,所以请对我很轻松!
我开发了一个应用程序,我使用Helper类来实现一些方便的功能,例如从字符串生成slug。我在app目录的classes文件夹中创建了一个helper.php类,然后在我的global.php文件中,我将classes文件夹添加到" ClassLoader"。
您可以按如下方式查看我的设置:
网站结构
-site
-app
-classes
-helpers.php
-controllers
global.php
ClassLoader::addDirectories(array(
app_path().'/commands',
app_path().'/controllers',
app_path().'/models',
app_path().'/database/seeds',
app_path().'/classes',
));
helpers.php
class Helpers {
public static function slug($url_to_encode) {
$slug = urlencode($url_to_encode);
$slug = preg_replace('~[^a-z0-9]++~i', '-', $slug); $slug = trim($slug, '-');
return $slug;
}
}
在我当地的Mac测试环境中一切正常,我可以打电话给我的" slug"辅助函数没有问题。
$slug = Helpers::slug($article->name);
我遇到的问题是当我将我的网站移动到我的实时服务器上时,我的应用程序的所有部分都与我称之为" Helpers"类。
网站中断,我收到以下错误消息:
Symfony \ Component \ Debug \ Exception \ FatalErrorException
Class 'Helpers' not found
我有点困惑为什么这不起作用。
答案 0 :(得分:1)
最好直接使用composer autoloader而不是laravel;所以在你的情况下会是。
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/classes",
"app/database/migrations",
"app/database/seeds",
]
},
在项目根目录下的composer.json文件中,然后通过ssh在生产服务器上运行composer dump-autoload或php artisan dump-autoload,如果你没有ssh访问权限只需在本地转储自动加载机器,测试然后传输文件。