我会使用教义注释创建我自己的自定义注释,但我正面临这种例外:
“ [语义错误]方法Core \ Components \ FilesManagerComponent \ SubComponent \ FilesReader :: readXML()中的注释” @Core \ MetaData \ Annotations \ FilesReader \ File“不存在,或者无法自动加载”
这是注释类
<?php
namespace Core\MetaData\Annotations\FilesReader ;
/**
* @Annotation
*/
class File
{
public $extention ;
}
这是我使用注释的地方
<?php
namespace Core\Components\FilesManagerComponent\SubComponent;
use Core\MetaData\Annotations\FilesReader\File ;
class FilesReader
{
/**
* @File(extention="xml")
*/
public function readXML($path)
{
return (array) simplexml_load_file($path);
}
}
我还通过使用AnnotationRegistry :: registerLoader方法来配置注释自动加载器,如下所示:
<?php
$autoloader = require 'vendor\autoload.php' ;
\Doctrine\Common\Annotations\AnnotationRegistry::registerLoader(array($autoloader, 'loadClass'));
\Doctrine\Common\Annotations\AnnotationRegistry::registerLoader(function ($class){
$file = str_replace("\\", DIRECTORY_SEPARATOR, $class) . ".php";
if (file_exists($file))
require $file;
});
function autoloader($class_name)
{
require $class_name . '.php';
}
spl_autoload_register('autoloader');
但问题仍然存在
感谢帮助