如何从另一个类(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;
}
}