我如何从另一个班级加载自动加载的课程



如何从另一个类(API{})加载 COMPOSER autoloader.php

的类(Connect{})(CC_1)

我的文件层次结构

main.php
composer.json
src
------ Database
---------- Connect.php
------ API
---------- API.php
vendor
------ [...]

作曲家自动加载

"autoload": {
        "psr-4": {
            "App\": "src/"
        }
    }

main.php

require_once __DIR__.'/vendor/autoload.php';
new AppAPIAPI();

api.php

namespace AppAPI;
class API {
    function __construct (){
        echo '( ';
        new AppDatabaseConnect; //THE CODE STOPS HERE
        echo ' )';
    }
}

connect.php

namespace AppDatabase;
class Connect {
    function __construct () {
        echo('Connecting...');
    }
}

问题是我无法从另一个类访问任何类,我知道使用global变量或在__construct中通过类可能是很好的解决方案,但是我需要直接从另一个人实例化新类。

答案是放回斜线...

new AppDatabaseConnect;

应该是

new AppDatabaseConnect;

在名称空间下方的类外部键入use AppDatabaseConnect;,然后像往常一样构建类。


说明

在课堂内,名称空间行为就像这样

namespace AppAPI;
class API {
    function __construct (){
        // WRONG : PHP will look for AppAPIAppDatabaseConnect
        new AppDatabaseConnect; 
        // RIGHT : PHP will look for AppDatabaseConnect
        new AppDatabaseConnect; 
    }
}

或其他解决方案:

namespace AppAPI;
use AppDatabaseConnect;
class API {
    function __construct (){
        new Connect; 
    }
}

相关内容

  • 没有找到相关文章

最新更新