Почему не подргужаются классы через composer?

150
27 декабря 2017, 21:47

Есть такая структура проекта:

common
    Component.php
web
    index.php
console.php

В composer.json:

"autoload": {
    "psr-4": {
        "common\\": "/common",
}

В console.php:

<?php 
require _DIR_.'/vendor/autoload.php';
$component = new \common\Component();
$component->run(); // Все ок, класс подгрузился, работает.

В web/index.php

<?php 
require _DIR_.'/../vendor/autoload.php';
$component = new \common\Component(); // Fatal error: Uncaught Error: Class 'common\Component' not found in web/index.php on line 3

Если перенести index.php в корень, то все работает. В чем может быть проблема?

Answer 1

Оказалось, если пути в composer.json начинаются со слэша, то в подпапках автолоадер работает не так, как я ожидал. Решение:

"autoload": {
"psr-4": {
    "common\\": "common",
}
READ ALSO
Преобразование массива php

Преобразование массива php

Как получить из массива:

384
В чём различия Pretty Url?

В чём различия Pretty Url?

Есть два вида pretty url:

180
настройка в netbeans + openserver xdebug

настройка в netbeans + openserver xdebug

Установил netbeans 82 + openserver 5

224
привести массив к нужной форме

привести массив к нужной форме

У меня на input весит обработчик с отправкой AJAX на сервер вот такого вида

182