0

私は小さなphp mvcフレームワークを書いています.Controller、Modelなどのクラスを自動ロードしたい.そのために、SymfonyのUniversalClassLoaderを使用しようとしています.

Fatal error: Class 'APP\Libraries\Controller\Controller' not found in /opt/lampp/htdocs/web/globeapi/Bootstrap.php on line 24

ここにBootstrap.phpがあります

require('../libraries/loader/UniversalClassLoader.php');
use Symfony\Component\ClassLoader\UniversalClassLoader;

class Bootstrap
{
    function Bootstrap()
    {

    }

    public static function run()
    {
        $auto = require('../config/Auto.php');



            $SPL = new UniversalClassLoader();
            $SPL->registerNamespace('APP\Libraries\Controller', '../libraries/controller/Controller.php');
            $SPL->register();



        APP\Libraries\Controller\Controller::test();

    }
}

ここにController.phpがあります

namespace APP\Libraries\Controller;

class Controller
{
    function __construct()
    {
        echo 1;
    }

    public static function test()
    {
        echo 1;
    }
}

MapClassLoader も試しましたが、結果は同じです。

4

1 に答える 1

0

メイン名前空間を登録するだけでよいと思います。2 番目のパラメーターは、ファイルではなくパスである必要があります。また、相対パスではなく絶対パスで試してください。次の問題は、ディレクトリが小文字であることです。したがって、オートローダーはLIB_FOLDER/APP/Libraries/Controller名前空間のパスを期待していますAPP\Libraries\Controller。小文字を大文字に変換するためのエイリアスを設定できるかどうかはわかりません。しかし、そうではないようです。

そのようなことを試してください:

$SPL->registerNamespace('APP', __DIR__.'/../LIB_FOLDER');
于 2013-05-12T12:49:04.383 に答える