类文件如何包含在另一个使用名称APCE和Use的php文件中?
我在Errors.php中有一个名为Errors的类类文件如何包含在另一个使用名称APCE和Use的php文件中?,php,class,namespaces,composer-php,Php,Class,Namespaces,Composer Php,我在Errors.php中有一个名为Errors的类 namespace MyClass; class Errors { private $_CODES = array( 301 => array( "code"=> 301, "message"=> "User With ID Not Found", "type"=> "
namespace MyClass;
class Errors
{
private $_CODES = array(
301 => array(
"code"=> 301,
"message"=> "User With ID Not Found",
"type"=> "Error"
)
);
public static function getError($code)
{
return $this->_CODES[$code];
}
在Myclass.php中,我有
namespace MyClass;
use MyClass\Errors;
require'vendor/autoload.php';
在Myclass中,我有一个函数,我正在检查错误
echo Errors::getError(301);
它显示类Myclass not found错误
Fatal error: Class 'Myclass\Errors' not found in /var/www/Myclass/Myclass.php
我在这里遗漏了什么?您必须包括您的
错误。php
composer autoloader与标准兼容。在当前解决方案中,文件Errors.php
必须放在名为MyClass
的子文件夹中 似乎您正在使用Composer的自动加载器。
您是否修改了“composer.json”以使其为您加载
可能是这样的:
“自动加载”:{“classmap”:[“path/to/your/source/directory”]}
或者这个问题解决了。Errors.php如下所示
class Errors{
private static $_CODES = array(
301 => array(
"code"=> 301,
"message"=> "User With ID Not Found",
"type"=> "Error"
)
);
public static function getError($code) {
return self::$_CODES[$code]['message'];
}
}
我还添加了require_once“Errors.php”;在MyClass.php文件中,现在我可以调用函数
echo Errors::getError(301)
您在哪里存储了Errors.php
?在autoload.php
require\u once DIR中显示代码/作曲家“/自动加载_real.php';返回Composer AutoloaderInitDDB04CF330F79DFB9CB9654960258D63::getLoader();他使用composer的Autoloader Autoloading是为了避免在类加载中显式使用include
,require
,这是毫无疑问的。尽管如此,Errors.php
还是必须包括在内,但目前看来似乎没有。