Разбор ООП с Delphinum

11.18K
.
╭∩╮ (`-`) ╭∩╮
# Delphinum (17.11.2016 / 13:05)
В остальном, если таковое не нужно или нужно частично - да, проще реализовать свой миникласс
Запись вообще реализуется несколькими строчками (включая сообщения об ошибках): https://github.com/john-cms/jo ... 3-L41
Особое внимание я хочу уделить данной строке: https://github.com/john-cms/jo ... p#L41
Так, как конфиг у нас находится в РНР коде, то тейстувют все возможные OpcodeCache, с чем я и столкнулся. При записи конфига. еще несколько секунд (зависит от настроке конкретной системы) не будет эффекта.
Посему, после факта записи, применение opcache_reset(); обязательно
.
AlkatraZ, пара строк для записи конфига из PhpArray, а если тебе нужно конфиг в Json писать и передавать в браузер? ) Ну опять таки, если таковое необходимо, в чем я лично сомневаюсь.
.
╭∩╮ (`-`) ╭∩╮
# Delphinum (17.11.2016 / 13:16)
в PHP проекте нужно использовать PhpArray в качестве конфига
Более того, насколько ты помнишь, в PhpArray и в качестве ключа и кае значение можно использовать объект
Сам понимаешь, какие крылья это отращивает и какие возможности потом открываются.
Про многоуровневые массивы я уже молчу...
.
╭∩╮ (`-`) ╭∩╮
# Delphinum (17.11.2016 / 13:23)
AlkatraZ, пара строк для записи конфига из PhpArray, а если тебе нужно конфиг в Json писать и передавать в браузер? ) Ну опять таки, если таковое необходимо, в чем я лично сомневаюсь.
Теоретически, в серьезных продуктах (в том же новом Zend), если тебе надо отдавать клиенту что-то в виде JSON, там уже для этого есть готовый объект к тому же PSR-7 совместимый.
Городить велосипед нет смысла.
.
AlkatraZ, я один раз сталкивался с проектом, в котором нужно было чтить конфиги из XML файла, проект был нужен для работы со сложным Java-фреймворком со своей архитектурой и конфигами в пачке XML файлов, потому привести добротные примеры использования каких нить, отличных от PhpArray конфигов я не могу )
.
Некоторые фреймворки и библиотеки очень уж много всего переносят в конфигурации, в результате имеем то, что называется "программирование массивами".
На пример, тот же роутинг в зенд или yii.
Роутинг - это не крнфиг, это уже логика приложения, и для неё нужно использовать DSL.
.
L!MP, по поводу "программирования массивами" эт крайне холиварный вопрос, я боюсь его обсуждать без должной подготовки ) Лично я не люблю использование массивов везде где можно, но с другой стороны, это "декларативное программирование", а оно имеет массу выгод по сравнению с обычным. Более того, тот же зенд позволяет настроить роутинг и не используя массивы, а через классические вызовы методов роутера, массивы это как бы удобная надстройка над ними.
.
L!MP
Тот же симфони, можно зайти и глянуть доки, там все примеры есть в виде ямла и нативного РНР, но на то что они предлагают делать нативный способом нельзя смотреть без боли и унижения.
Создается такое впечатление, что РНР апи своих библиотек они разрабатывали с мыслью что живой человек ими пользоваться никогда не будет, и так оно в результате и получилось.
А сделали бы нормальный DSL, и не нужен был бы никакой ямл и прочее.
.
╭∩╮ (`-`) ╭∩╮
# Delphinum (17.11.2016 / 13:33)
AlkatraZ, я один раз сталкивался с проектом, в котором нужно было чтить конфиги из XML файла, проект был нужен для работы со сложным Java-фреймворком со своей архитектурой и конфигами в пачке XML фай
Ну когда подсоединяешься к готовому проекту, там уже давит груз наследствия. так, или иначе придется соблюдать. "В чужой монастырь со своим уставом не ходят".

Но хуже того, что глядя на свои же старые проекты, тоже (меня лично глядя на свою историю часто) передергивает
Но тут есть оправдание: как говорил Энгельс: "Марксизм не догма, а руководство к действию".
технологии развиваются и нет ничего удивительного, что глядя на свой же код 3-4 летней давности, я в 70% обнаруживаю быдлокод. Это ХОРОШО, значит мозги развиваются и есть движение вперед
.
╭∩╮ (`-`) ╭∩╮
# L!MP (17.11.2016 / 13:33)
Некоторые фреймворки и библиотеки очень уж много всего переносят в конфигурации
Знаешь, тут ты затронул очень интересную тему, которую (пардон за тафтологию) мы потом обязательно поднимем в отдельной теме, ибо грядущий mobiCMS как раз и планируется на конфигах.
И этому есть серьезные аргументы со ссылками на авторитетные первоисточники (на английском).
В johnCMS-7 была слабая попытка "пробы пера" с использованием config-driven-DI
Всего: 713