【发布时间】:2023-12-18 06:51:01
【问题描述】:
我创建了一个自定义 php 帮助器类,用于我的 Laravel 4 项目。
SASHelper.php 文件位于 app/libraries/elf/sas 中,在将库添加到 composer.json 文件后,我完成了 composer dumpautoload。
autload_classmap(仅最后一行):
'elf\\sas\\SASHelper' => $baseDir . '/app/libraries/elf/sas/SASHelper.php',
Helper 类(为简洁起见):
<?php
namespace elf\sas;
class SASHelper
{
static public function SupportIntToText($status)
{
return 'Supported';
}
static public function LicTypeToText($lic)
{
return '32-Bit';
}
}
当我尝试从我的控制器调用任一静态方法时:
$statustext = SASHelper::SupportIntToText($client->SupportStatus);
此时 Fiddler 正在报告:
“找不到类 SASHelper。”
【问题讨论】:
-
你试过 global.php 了吗?它不需要composer dump-autoload,轻松加载类
-
我刚刚尝试过: (app_path() .'/libraries' 和 app_path() .'/libraries/elf/sas') 到 ClassLoader::addDirectories 但没有任何效果区别。
-
尝试评论命名空间行
-
@TryingTobemyselfRahul - 有效(添加了 /libraries/elf/sas 路径)!如果您添加这是一个我会接受的答案,只是好奇,知道它为什么起作用(或者为什么另一个不起作用)?
-
最好的猜测是当你使用命名空间时它只对那个命名空间可用,所以当直接使用类名时它会抛出错误