Php Composer psr-0自动加载自定义名称空间无效

Php Composer psr-0自动加载自定义名称空间无效,php,composer-php,autoload,autoloader,psr-0,Php,Composer Php,Autoload,Autoloader,Psr 0,我无法使用PSR-0将自己的名称空间添加到composer。我读了很多书,但还是没法让它发挥作用 composer.json { "require": { "klein/klein": "2.0.x", "doctrine/orm": "2.4.4" }, "autoload": { "psr-0": { "mynamespace": "src/" } } } src文件夹与composer.json src目录具有以下结

我无法使用PSR-0将自己的名称空间添加到composer。我读了很多书,但还是没法让它发挥作用

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");
?>

您只能通过自动加载加载类、接口和特性

因为您所要做的就是添加一个
use
子句,该子句本身在自动加载时不做任何事情(即,它不加载任何东西),并且您不使用类,所以不会发生任何事情

我建议使用类常量。它们可以放在类或接口中:

namespace mynamespace;

interface Keys {
    const API_KEY = 'XXXXXXXX';
}

use mynamespace/Keys;
echo Keys::API_KEY;

PSR-x自动加载器仅“理解”单个命名空间单个类包含脚本。即使PHPs current spl_autoload()提供了完整的语言支持,也无法识别常量或普通函数查找。
echo API_键
不会触发任何东西,
也不会使用..\Keys
声明。@mario所以我必须使用require来加载我自己的名称空间?
namespace mynamespace;

interface Keys {
    const API_KEY = 'XXXXXXXX';
}

use mynamespace/Keys;
echo Keys::API_KEY;