[英]Composer psr-0 autoloading of custom namespaces does not work
我在将我自己的名称空间添加到PSR-0作曲家时遇到麻烦。 我已经读过这个和这个,但是我仍然无法使它工作
composer.json
{
"require": {
"klein/klein": "2.0.x",
"doctrine/orm": "2.4.4"
},
"autoload": {
"psr-0": {
"mynamespace": "src/"
}
}
}
src
文件夹与composer.json
放在同一目录中
src
目录具有以下结构
src
└── mynamespace
├── Keys.php
Keys.php
<?php
namespace mynamespace\Keys;
define ("API_KEY", "XXXXXXXXXXXX");
?>
的index.php
use Klein\Klein;
use mynamespace\Keys;
require_once __DIR__ . '/vendor/autoload.php';
$klein = new Klein(); // works
echo API_KEY; // Undefined constant
您只能通过自动加载来加载类,接口和特征。
因为您要做的只是添加一个use
子句,该子句本身不会自动加载任何操作(即,它不会加载任何内容),并且您不使用类,因此不会发生任何事情。
我建议使用类常量。 它们可以放在类或接口中:
namespace mynamespace;
interface Keys {
const API_KEY = 'XXXXXXXX';
}
use mynamespace/Keys;
echo Keys::API_KEY;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.