Композитор и регистрация автозагрузчика

Согласно https://github.com/PHPOffice/PHPWord/tree/master это делает вывод Я не регистрирую автозагрузчик, если устанавливаю PHPWord через composer. Видеть:

It is recommended that you install the PHPWord library through composer. To do so, add the following lines to your composer.json.

{
    "require": {
       "phpoffice/phpword": "dev-master"
    }
}
Alternatively, you can download the latest release from the releases page. In this case, you will have to register the autoloader.

require_once 'path/to/PhpWord/src/PhpWord/Autoloader.php';
\PhpOffice\PhpWord\Autoloader::register();

(в частности, в этом случае вам придется зарегистрировать автозагрузчик).

Однако, если я устанавливаю через Composer, пропускаю эти строки

require_once 'path/to/PhpWord/src/PhpWord/Autoloader.php';
\PhpOffice\PhpWord\Autoloader::register();

Я получаю эту ошибку:

PHP Fatal error:  Class 'PhpOffice\PhpWord\Autoloader' not found in /Users/snowcrash/Developer/Code/PHP/PHPWord_Projects/test/basic_eg.php on line 3

Итак, мой вопрос: нужно ли мне требовать и регистрировать Autoloader в Composer?

Если да, то документация неверна или я что-то не понимаю?


person Snowcrash    schedule 20.03.2016    source источник


Ответы (2)


Если вы устанавливаете его через Composer, вам всегда нужно require_once 'vendor/autoload.php' в вашем проекте. Это автозагрузчик Composer.

Разница в том, что автозагрузчик Composer можно использовать для всех библиотек, которые вы включите позже, а не только для той, которую вы хотите прямо сейчас.

person Maciej Sz    schedule 20.03.2016

Прежде всего, проверьте файл index.php в публичном каталоге. Все, что вам нужно, это чистый файл index.php, поэтому вы можете создать новый каталог, в который вы сможете установить новый laravel. Из нового каталога laravel скопируйте файл index.php и замените его в исходном репозитории. Меня устраивает.. :)

person Saagar Dhome    schedule 24.04.2017