配置注释原则自动加载

时间:2018-08-05 12:11:08

标签: php annotations doctrine autoloader

我会使用教义注释创建我自己的自定义注释,但我正面临这种例外:

“ [语义错误]方法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');

但问题仍然存在

感谢帮助

0 个答案:

没有答案