2016-09-18 131 views
0

我無法理解,因爲Composer沒有自動加載我需要的軟件包。已安裝Autoload Composer軟件包

我現在composer.json文件有以下幾點:

{ 
    "require": { 
     "atlas/orm": "@dev" 
    }, 
    "require-dev": { 
     "atlas/cli": "@dev" 
    } 
} 

它應該產生在/vendor/composer/autoload_namespaces.php文件中的命名空間。但事實並非如此。該文件只能有以下幾點:

// autoload_namespaces.php @generated by Composer 

$vendorDir = dirname(dirname(__FILE__)); 
$baseDir = dirname($vendorDir); 

return array(
    'Psr\\Log\\' => array($vendorDir . '/psr/log'), 
); 

當然,當我嘗試使用「需要DIR‘/vendor/autoload.php’;」自動加載軟件包然後使用它的類,它不起作用。 關於如何解決這個問題的任何想法?

+0

您是否發出「作曲家安裝」或「作曲更新」命令生成自動裝載機? – vascowhite

+0

@vascowhite,是的,我發佈了一個作曲家安裝命令。它確實生成了autoload文件,但是例如autoload_namespaces.php文件只包含上面的信息。 –

回答

1

對於要求安裝的所有依賴項,您必須要求'autoload.php'。對於自動加載(PSR-4),在composer.json文件中,您必須給出一個名稱,在該名稱下將命名空間以及將自動加載文件的文件夾名稱。

"Namespace_name\\":"folder_name" 

注意:namespace_name後面的反斜線需要被轉義,因此需要額外的反斜槓。

然後運行composer dump-autoload -o