Автозагрузка композитора

В настоящее время я пытаюсь использовать автозагрузку PSR-0 с Composer, но я получаю следующую ошибку:

Fatal error: Class 'Twitter\Twitter' not found 

Моя структура каталогов выглядит так:

 - Project - src - Twitter Twitter.php - vendor - Test index.php 

Мой файл index.php выглядит так:

 <?php use Twitter; $twitter = new Twitter(); 

Мой файл Twitter.php выглядит так

 <?php namespace Twitter; class Twitter { public function __construct() { // Code Here } } 

И, наконец, мой композитор.json выглядит так:

 { "require": { "phpunit/phpunit": "3.8.*@dev", "guzzle/guzzle": "3.7.*@dev" }, "minimum-stability": "dev", "autoload": { "psr-0": { "Twitter" : "src/Twitter" } } } 

Я немного запутался. Я исхожу из фона C #, и этот способ работы смущает меня. Каков правильный способ использования автозагрузки PSR-0?

Solutions Collecting From Web of "Автозагрузка композитора"

В вашем composer.json используйте:

 "autoload": { "psr-0": { "": "src/" } } 

или

 "autoload": { "psr-0": { "Twitter\\": "src/" } } 

а затем запустите php composer.phar dump-autoload

использование

 "psr-0": { "Twitter" : "src/" } 

Это инструктирует композитора создать автозагрузчик, который будет выглядеть в src для всего, начиная с пространства имен Twitter . И поскольку это PSR-0 , пространство имен рассматривается как папка и добавляется к объявленному пути, поэтому вы не должны включать его в часть пути в composer.json

Прежде всего,

Мой файл index.php выглядит так:

 use Twitter; $twitter = new Twitter(); 

Если это ваш index.php, вы забыли сначала включить сценарий автозагрузки композитора.

 require __DIR__ . '/vendor/autoload.php'; 

Подробнее см. https://getcomposer.org/doc/01-basic-usage.md#autoloading .

В вашем index.php есть ошибка: следует use Twitter\Twitter; $twitter = new Twitter(); use Twitter\Twitter; $twitter = new Twitter(); или $twitter = new Twitter\Twitter();

Это очень поздний ответ, но первое, что вам нужно сделать для «автозагрузки», – это иметь версию PHP версии 5.6 и выше.