我是使用命名空间的新手,但我真的不明白为什么这个简单的代码无法正常工作。
protocoloWt / schemas / AuthorSchema.php
namespace protocoloWt\schemas;
class AuthorSchema
{
protected $resourceType = 'people';
function __construct()
{
}
public function getId($author)
{
/** @var Author $author */
return $author->authorId;
}
public function getAttributes($author)
{
/** @var Author $author */
return [
'first_name' => $author->firstName,
'last_name' => $author->lastName,
];
}
}
protocoloWt / App.php
namespace protocoloWt;
use protocoloWt\schemas\AuthorSchema;
$a = new AuthorSchema();
我收到以下错误:
严重错误:找不到类'protocoloWt \ schemas \ AuthorSchema' C:\ xampp \ htdocs \ wt.uptkd \ protocoloWt \ app.php
我认为代码正确无误,对吗?但是为什么我会收到该错误?
答案 0 :(得分:0)
如果您不使用(PSR0 / 4)自动加载器(例如作曲家),则必须在app.php文件中导入文件protocoloWt / schemas / AuthorSchema.php。
自动载入作曲家的文档: https://getcomposer.org/doc/01-basic-usage.md#autoloading
答案 1 :(得分:0)
命名空间并不意味着自动加载,这意味着您必须包含/要求该类
require_once('protocoloWt/schemas/AuthorSchema.php');
或设置自动装带器。如果您想这样做,我可以给您一个代码示例! :)