簡體   English   中英

自定義名稱空間的Composer psr-0自動加載不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM