Если говорить о классах собственного проекта, то еще куда

не шло. Но если о библиотеках или фреймворке, где мне нужно что-то изменить для себя? Или каждый раз форкать?)

Помню, не единожды был гемор через то, что в библиотеке некоторый код в private-методе, а не в protected

29 ответов

12 просмотров

через композицию

Матвій-Year Автор вопроса
Сергей Предводителев
через композицию

А технически как реализовать?

Ага, вот последний пример: я использовал компонент Process симфонии, всё было хорошо пока не понадобилось вывод одного процесса направить в другой. Через симфони это работает вместо 10 секунд больше часа... А исправить не возможно, нужный метод где можно исправить проблему private... Финиш... Надо либо форк делать, либо другой компонент искать и много чего переписывать...

Матвій-Year Автор вопроса
mj4444
Ага, вот последний пример: я использовал компонент...

Читал где-то рекомендацию использовать private в своих проектах, а в опенсорсных или просто в библиотеках - protected

Как ты относишься к final в коде фреймворка Yii 3?

Матвій-Year Автор вопроса
Nex Otaku
Как ты относишься к final в коде фреймворка Yii 3?

Хз, не смотрел) Будем на практике шатать

Ну вот мне кажется final как раз и нужен в основном фреймворкам и внешним компанентам, дабы оградить компонент от внешнего (глупого) вмешательства. В своём приложении особого смысла его использовать нет. Но опять же не всегда это нужно. Потом PHP это одно, а yii3 это другое. Что хорошие для yii3, не обязательно должно быть хорошо всем остальным. Тут то все началось именно с PHP, а не с yii.

mj4444
Ну вот мне кажется final как раз и нужен в основно...

Убрать final при необходимости просто - убрал и все работает, ничего не сломалось. Поэтому мне нравится принцип "делаем всё финальным по умолчанию, если появятся веские причины его убрать - уберем“.

Да, там сложнее, но тут нужно рассматривать конкретный кейс: - возможно, действительно нужно убрать final и выпустить новую версию - но чаще нужно доработать библиотеку.

Сергей Предводителев
Да, там сложнее, но тут нужно рассматривать конкре...

Библиотеки используются кардинально разными проектами, с разными релизными циклами. И некоторые просто не станут ждать новой версии если их релизный цикл это 5 минут.

Aleksey Apache
Библиотеки используются кардинально разными проект...

Да, это минус. Но, для меня, этот минус перекрывается плюсами.

Сергей Предводителев
через композицию

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

Дмитрий Герасимов
Композиция тоже зачастую не панацея. Есть у меня п...

Nothing is a panacea, it all depends on the case you want to solve, there is never a single solution :)

su root
Nothing is a panacea, it all depends on the case y...

But rewrite all AssetPublisher becouse of $published is private - i think it's bad idea for me )

Дмитрий Герасимов
But rewrite all AssetPublisher becouse of $publish...

Basically the user only sees its advantages, but does not see the maintenance that any package carries.

Дмитрий Герасимов
Композиция тоже зачастую не панацея. Есть у меня п...

Да, серебряной пули нет. Но взвешивая плюсы и минусы подхода "final по умолчанию" для меня вывод однозначен — подход правильный.

Сергей Предводителев
Да, серебряной пули нет. Но взвешивая плюсы и мину...

Ну имхо - часть этих проблем решилась-бы геттерами для приватных свойств, или php 8.1 readonly - о последнем правда пока только мечтать

Дмитрий Герасимов
Ну имхо - часть этих проблем решилась-бы геттерами...

Новые пакеты, скорей всего, будут уже идти с минимальной версией 8.1. И уже зарелизенные скоро подтянутся.

Сергей Предводителев
Новые пакеты, скорей всего, будут уже идти с миним...

Ларавел и симфони повлияли? Когда писал про 8 версию, в никакую не хотели поднимать минимальную версию.

Махмуд
Ларавел и симфони повлияли? Когда писал про 8 вер...

Многие из зарелизенных пакетов уже используются в текущих проектах, которые ещё не переехали на 8.1.

Сергей Предводителев
Многие из зарелизенных пакетов уже используются в ...

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

Ну а что в этом такого? Когда 3 версия начиналась, было последняя версия 7.4. сейчас она не поддерживается и много людей уже переехали на 8 и 8.1. В свою очередь мы тоже обновляем минимальные требования. Через год-второй глядишь и 8.1 не будет поддерживаться и это совершенно нормально.

Дмитрий
Ну а что в этом такого? Когда 3 версия начиналас...

Когда я предлагал поднять требования фреймворка до последней недавно релизнутой 8 php, до релиза самого фреймворка было еще далеко. Релиз фреймворка примерно ожидался к срокам приближения к RC 8.1, поэтому не видел никаких причин писать фреймворк под 7.4. В новых релизах фреймворка тратить время на изменения под новые версии php, которого у core разработчиков и так нет, и плюс оглядываться на приложения, которые уже зависят от фреймворка. Учитывая почти маниакальную зависимость на обратной совместимости у всех фреймворков, из-за которого не могут вносить изменения в свои пакеты ломающие обратную совместимость, когда могли сразу писать под последнюю версию php не имея таких проблем до релизов. Ссылаются на то что мало еще людей используют последнюю версию php, поэтому не видят смысла пока писать под нее. Как приложения должны попробовать новую версию, если фреймворки от которых они зависят не имеют ее поддержки? Сейчас же получается, что приложения и фреймворк пинают мяч друг другу, сначала вы начните использовать последнюю версию, а потом и мы подтянемся. Как по мне фреймворк должен двигать сообщество к развитию и использовать лучшие практики на данный момент в программировании. "Через год-второй глядишь и 8.1 не будет поддерживаться и это совершенно нормально." Зачем быть в роли догоняющих, отставать на 1-2 года, что в it может быть критично, если можно предлагать современные "прогрессивные" решения. А то получается все сидят на старых версиях, еле шевелятся с переходом на новые версии php, из-за чего rfc для изменений самого php с выбросом легаси и других изменений не могут пройти голосование, поэтому программисты уже предпочитают перейти на go или другой язык, пока в php, что-то с места сдвинется.

Похожие вопросы

Обсуждают сегодня

Всем привет) Я попробовал турбо роутер октябрьский. Вроде доволен, но возникла проблемка) Бутстраповские модалки плодят .modal-backdrop элементы Если модалка открыта, должне...
Виталий
3
Так а кто может спарсить всех участников чата? Идишники
Magic
18
да пофиг на капчу зашел в чат и молчишь при этом ты нонейм? пошел вон
Magic
17
Как удалить health check в Consul? Казалось бы, это должно быть не сложно, но я не могу найти в документации ничего про это, только про добавление service с health check "в н...
Roman
2
Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
13
Хотя вроде админка показывает удаленные модели, да? @dblackCat
Виталий
2
Privet! Mozhet jesti ideji - nemogu sdelatj upload backup s filestore cerez WEB. Fail okolo 450mb, eto mozhet bitj prichinoi? Nemogu ponjatj..kak zagruzitj backup... Poluchaju...
Matiss 🤘 Black Oak IT 🌳 Batumi 🌴 Latvija
5
Нужно магазин с тильды на опен кат перенести Есть кто умеет? В лс
Magic
8
Всем доброго вечера! Хочу поделиться своим злоключением с человеком, который, как оказалось сюда тоже скидывал свое резюме. Жаль, что я вашу группу не нашел раньше… человек ки...
Роман Ахмедзянов
4
А кто знает в тейлоре до сих пор есть конфликты слагов или поправили уже?
Black Cat
5
Карта сайта