Автозагрузка php-классов

257
27 февраля 2017, 14:20

Переписываю движок с процедурного метода на ООП. Создаю несколько классов в начале каждого пишу

namespace ...
use ...

Мне выпадают ошибки class not found. Подскажите, как организовать автозагрузку классов, например, с помощью Composer. Можно ли автоматически сформировать composer.json по своему проекту?

До этого использовал его только для подключения сторонних библиотек.

Answer 1

При подключении composer к своему проекту вместо

require "../vendor/autoload.php";

пишите

$loader = require "../vendor/autoload.php";
$loader->setPsr4('ВАШ_NameSpace\\', 'ПУТЬ_ДО_КОРНЯ_ВАШЕГО_NameSpace');

После этого composer подхватывает и ваши классы.

Answer 2

Если используете Composer, то и настройки подключаемых файлов или папок пишите в composer.json.

Официальная документация:

  • https://getcomposer.org/doc/01-basic-usage.md#autoloading
  • https://getcomposer.org/doc/04-schema.md#autoload

Есть на русском языке небольшая статья на эту тему:

  • https://habrahabr.ru/post/149678/
READ ALSO
Постраничный вывод запроса php

Постраничный вывод запроса php

ЗдравствуйтеПомогите с таким кодом

223
Роутинг в Codeigniter

Роутинг в Codeigniter

Есть маршруты по которым при переходе страница отображается нормально, например $route['about-us'] = "main/about_us"; Пытаюсь создать новый урл $route['new_about_us']...

232
WP_Query вместо шорткода

WP_Query вместо шорткода

Подскажите, как заменить нижеприведённый код вызова шорткода на аналогичный код, в котором используется WP_Query? Сам цикл я смогу построить...

207