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

В настоящее время я пытаюсь использовать автозагрузку 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
    }
}

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

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

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

5 ответов

В вашем 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(); или же $twitter = new Twitter\Twitter();

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

Другие вопросы по тегам