Как подружить composer autoload с моим autoloader'ом

У меня есть такая структура

введите сюда описание изображения

В core.php у меня есть такой автозагрузка классов

<?php
    // auto load classes
    spl_autoload_register(function ($class_name) {
        include './classes/' . $class_name . '.php';
    });

А мне нужно использовать библиотеку Ratchet. Те нужно подключить файл require 'vendor/autoload.php'; НО если его подключить, то он конфликтует с моим загрузчиком


Ответы (1 шт):

Автор решения: ArchDemon

Правилом хорошего тона является включение в composer загрузка и собственных классов проекта. Composer поддерживает несколько стандартов именования (и расположения) файлов, но самый продвинутый - это PSR-4 (другие). Для подключения своих классов в файле composer.json необходимо сделать секцию autoload (пример ниже)

"autoload": {
    "psr-4": {
        "PAMI\\": "src/marcelog/PAMI"
    },
    "classmap": [
        "src/sibvision"
    ]
},

Для включения классов в загрузку достаточно выполнить команду composer dumpautoload

Пример пути: У нас есть файл-класс src/MyProject/MyClass.php (начала пути идёт от каталога с файлом composer.json) c cодержимым:

namespace MyProject;

class MyClass
{
    ...
}

Значит в автозагрузке пишем "MyProject\\": "src/MyProject" В своём коде вы будете писать new \MyProject\MyClass(); или с использование use

use MyProject\MyClass;

new MyClass();
→ Ссылка