Статья

DEV: Перейдем на Composer?

На GitHub появится файл composer.json и сайт надо будет собрать. А очередной архив (уже собранный) у кого нет возможность использовать composer видимо надо и на этом сайте размещать.

Релизы новые. А если размещать тут собранный архив, то логично начать писать, что было сделано, какие изменения внесены. Создать Тему  — Релизы.

Систематизировать всё это дело.

Сейчас много дополнений появляется, миграция, например, локализация и др. Они большие. Сложно становится поддерживать и прописывать все эти классы.

Composer многое упростить.

Compose LibArea
Сайт переверен, теперь предстоит заняться организацией структуры.

Ведь многое поменялось и будет далее сделано по другому.

После того, как убрал автозагрузчик фреймворка:

define( 'HLEB_PROJECT_CLASSES_AUTOLOAD', false );

и раз есть композер, то пусть он и работает, расход памяти стал меньше 1МБ.

Фактически, если отключить DEBUG (хотя бы ради безопасности) все показатели ещё улучшатся.

13 Ответов

  1. Моё мнение вы знаете, это надо было сделать ещё вчера. )

    1. Сопротивлялся до последнего. Чес слово :)

  1. Когда нам ждать новой версии? :)

    1. Как ошибки будут исправлены, логи смотрю и если что-то всплывет, исправлю.

  1. Ошибки которые были найдены, исправлены. Спасибо всем за тестирование, много ошибок исправлено ➕

    Релиз готов:

    https://github.com/LibArea/libarea/releases/tag/v0.3.8

    Перед началом обновления обязательно сделайте резервную копию своего сайта и дамп базы данных!

    Замене подлежат директории: app, modules, resources и routes.

    P.S. Далее версии будут использовать Composer. (если не будут найдены ещё ошибки в текущем)

  1. Если переделывать локализацию, то хотел обратить внимание на синтаксис. Сейчас это выглядит так:

    // file en.php
    'choose.lang' => 'Choose your language'
    
    __('choose.lang');

    Используются точки для разделение слов. Мне ближе формат, когда точка показывает название файла:

    // file app.php
    'chooseLang' => 'Choose your language'
    
    __('app.chooseLang');

    А сам ключ является составным используя разный регист, как в примере выше.

    Если использовать строковые значения:

    // file en.php
    'chooseLang' => 'Choose your language'
    
    __('chooseLang');

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

    1. Да, я согласен по поводу точек. Изучил Symfony, Laravel, как там сделано и ряд ещё других продуктов. По разному, ваш подход использует Codeigniter 4, в нём что-то есть, но мне более привычно первые два. кстати, глянул вообще код и подходы.

      Вот все Laravel, Laravel, а Symfony то почетче будет, ИМХО. И конечно сам код, крутой, тут нечего сказать. Красивый даже!

      Laravel, мне вообще показалось, что они пишут, как можно меньше в плане боятся напортачить. Чем меньше строк в методе, тем потенциально ошибок меньше )) а Symfony по другому как-то, не могу объяснить это дело.

  1. У меня он есть, но я не понимаю, как с ним работать. Сколько бы не пытался, не даётся, все эти контейнеры и прочее, нет)

    1. Архив я буду формировать для скачки на этом сайте. Каждый релиз публиковать с собранным архивом и описанием изменений.

  1. Переход начался. Буду делать поэтапно. На данный момент изменения такие: 602 changed files with 1,837 additions and 125,420 deletions. Работы достаточно много. Часть пернес в Libraries, но они подлежать удалению, плюс локализация только рус. и англ. На GitHub разместил, т.к. это необходимо для некоторых совместных действий. Одному долго локализацию делать, например.

    И теперь, когда часть (а скоро все) библиотеки будут вынесены, то можно хорошо почистить код. Я не занимался рефакторингом и некоторыми другими вещами потому, что был вопрос — переходить или нет, т.к. от этого зависело многое. Теперь вопрос закрыт, назад пути нет :) работаем далее, вот и всё.

    1. Хорошая новость! Возможно далее дело пойдет ещё быстрее.

  1. packagist.org сайт еще учёбы подкинул. По поводу создания новых релизов. Интересно, в ранних был файл composer.json, потом он был убран. А нового релиза нет с этим файлам. Весь файл composer.json переделывал 100 раз, хотя логи, прямо говорят, что он ищет его.

    Создал новую тему: v0−4-0

    1. Не могу в этом случае подсказать, говорил вам, на GO писать надо было. :)