Size: a a a

2019 August 27

D

DK in PHP DevConf
User
Опять перешагнули за 2008
источник

AM

Alex Molchanov in PHP DevConf
Kайржан Турмагамбетов
А расширить родительский класс?
Да, я уже понял. Что технические вопросы лучше тут не спрашивать. Поржать. Посрать друг на друга - пожалуйста! Открыть код, посмотреть тест на две строки и понять суть вопроса - сложна!!! (с) 🤷‍♂️
источник

O

Olzhas in PHP DevConf
можешь поныть про генерики
источник

O

Olzhas in PHP DevConf
превратимся в гоферский чатик
источник

U

User in PHP DevConf
@quadrogod надо перезаписать функцию?
источник

U

User in PHP DevConf
Я сути не понял
источник

AM

Alex Molchanov in PHP DevConf
Не, я просто не знаю как правильно сформулировать. Можно ли было просто use другая модель в классе который наследует родителя и все функции внутри работали с новой моделью. Сейчас она жёстко передается приватной переменной класса
источник

U

User in PHP DevConf
Так, все функции чего
источник

AM

Alex Molchanov in PHP DevConf
Alex Molchanov
вся соль, хочется избавится от protected $_item = Item::class;
источник

O

Olzhas in PHP DevConf
Ты хочешь реализовать какую-то дичь
источник

O

Olzhas in PHP DevConf
Я не могу понять
источник

Kайржан Турмагамбетов in PHP DevConf
интересно попробую вечером
источник

Kайржан Турмагамбетов in PHP DevConf
хотя нет. родителя нельзя. оно не идет снизу верх
источник

AM

Alex Molchanov in PHP DevConf
Пример из ларавеля могу привести, я там не совсем понимаю как DI работает. Но например, есть экшн отображающий конкретный элемент модели. Например: showItem(User $user) {логика}

Потом мне надо аналогичный метод для другой модели. Смотрю, что все везде дублируют метод в дочерний класс, меняя (User $user) на (Page $page).

Вот и вопрос, как это можно обойти? Я это ранее обходил через DB а не конкретные модели, что бы можно было наследовать. В нове тоже передают в приватную переменную класс с которым он будет работать. Вот и вопрос, почему нельзя было сделать замену класса на уровне use секции. Я думал, что это возможно, оттого и родился этот код для теста. Ибо было проще проверить и понять, что это не работает, чем в мануале рыться. Отсюда и вопрос, как можно ещё решить такую задачу
источник

U

User in PHP DevConf
Не знаю как сделать. Но мои пять копеек:

Лучше написать читабельный код, чем пытаться все сократить. А общую функцию можно сделать через тот же __call, если приспичило. Но мне кажется дублировать лучше.
источник

O

Olzhas in PHP DevConf
Alex Molchanov
Пример из ларавеля могу привести, я там не совсем понимаю как DI работает. Но например, есть экшн отображающий конкретный элемент модели. Например: showItem(User $user) {логика}

Потом мне надо аналогичный метод для другой модели. Смотрю, что все везде дублируют метод в дочерний класс, меняя (User $user) на (Page $page).

Вот и вопрос, как это можно обойти? Я это ранее обходил через DB а не конкретные модели, что бы можно было наследовать. В нове тоже передают в приватную переменную класс с которым он будет работать. Вот и вопрос, почему нельзя было сделать замену класса на уровне use секции. Я думал, что это возможно, оттого и родился этот код для теста. Ибо было проще проверить и понять, что это не работает, чем в мануале рыться. Отсюда и вопрос, как можно ещё решить такую задачу
public function controllerAction(BaseModel $model)
   {
источник

O

Olzhas in PHP DevConf
class ChildModel extends BaseModel
источник

U

User in PHP DevConf
Kайржан Турмагамбетов
хотя нет. родителя нельзя. оно не идет снизу верх
Кстати, в одной книже по UML видел, что классы наследуют друг-друга. Видимо это ошибка или очень высокий уровень, где еще нет жестких правил ООП
источник

O

Olzhas in PHP DevConf
источник

O

Olzhas in PHP DevConf
нихуя не понял
источник