Задать вопрос
@IsaevDev

Как вам такой autoload для PHP?

Уделите минутку небольшому велосипеду для небольшого проекта

Есть файлы
/Core.php
/Map.php
/custom/Class.php

Определена функция autoload, которая будет брать путь до файла класса из Map.php

При разработке Map.php имеет вид:
<?
class Map
{
public static $inited = false;
}
?>


Суть подхода такова:
После загрузки файлов на сервер, при первом запуске, Core.php проверяет переменную Map::$inited
Обнаружив там false, Core.php рекурсивно обходит все файлы и папки в /custom и составляет массив вида
$map = [
'Class' => '/custom/'
];

После чего перезаписывает класс Map с $inited = true (пересохраняет как файл).
Таким образом при следующем запуске, будет использована созданная карта классов.

PS. Да, я знаю о composer и namespace. Я хочу услышать ваше мнение о моем подходе с технической точки зрения
  • Вопрос задан
  • 545 просмотров
Подписаться 1 Оценить 5 комментариев
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 3
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
За вас уже все придумали www.php-fig.org/psr/psr-4
Ответ написан
DevMan
@DevMan
таковой (по принципу, не реализации) подход вполне себе использовался раньше, да и сейчас используется.
но постепенно идет тенденция на использование composer/psr.

фактически, нужно каждый раз вспоминать где лежит файл (в каком namespace)
имхо - не аргумент, от слова совсем:
- нормальная ide сама подскажет где лежит файл
- рекурсивный grep никто не отменял
Ответ написан
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
Imho подход плохой.
а) рекурсивно обходить папки - это ооочень долго
б) в нормальной ситуации, у скрипта не должно быть прав на изменение исполняемых файлов.

Собственно для этого и придумали PSR4 (хотя нечто похожее можно и без namespace использовать легко)
Главная идея - по названию класса должно быть однозначно понятно где он лежит.
Если вдруг есть любимый класс у которого название не совпадает с местоположением - вот тогда на сцену выходит map файл который заранее заполняется ручками разработчика.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
IT ATLAS Москва
от 250 000 до 500 000 ₽