簡體   English   中英

作曲家不會自動加載

[英]Composer won't autoload

我有一個新項目,從一開始我就想與Composer站在一起,[我是一個很晚的采用者],但是自動加載無法正常工作 ,我不知道為什么,這使我發瘋。

字面意思就是現在的項目:[不包括/ vendor /]

/
    lib/
        Client.php
    composer.json
    test.php

composer.json

{
    "autoload": {
        "psr-0": {
            "Openstack\\": "lib/"
        }
    }
}

LIB / Client.php

<?php
namespace Openstack;

class Client {
    public function __construct() {
        echo "hello world";
    }
}

test.php的

<?php
require('vendor/autoload.php');
$foo = new Openstack\Client();

嘗試運行test.php給我:

PHP Fatal error:  Class 'Openstack\Client' not found

即使:

# grep -r Openstack vendor/composer/
vendor/composer/autoload_namespaces.php:    'Openstack' => array($baseDir . '/lib'),

這東西想要我什么?

使用psr-0時,需要為每個名稱空間級別都有一個目錄。 因此,您的目錄結構應為:

/
    lib/
        Openstack/
            Client.php
    composer.json
    test.php

另外,您可以在composer.json使用psr-4。

{
    "autoload": {
        "psr-4": {
            "Openstack\\": "lib/"
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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