mr.
enableSchemaCache => true shemaCachDuration => 300
mr.
в db connection
Vadim
Включи кеширование схемы, ну минут на 5
Работает, спасибо! А на какое время можно кешировать? Пусть бы оно вечно хранилось, а не 5 минут. Или при следующем запросе используется старый кэш и потом перезаписывается?
mr.
Вечно не надо, особенно на дев
Vadim
Ну дев понятно, я про прод
mr.
Если схему поправишь, то будешь долго не понимать, от чего свежедобавленное поле не видит ORM
mr.
Я на проде минут 5-10 делаю, на дев 1
Borys
ребят
Borys
html в модели это ок?
Yura
Не)
Yura
Ну если очень прям надо то никто не побьет(наверное)
Borys
это не просто шыт
Borys
это шытише
Yura
Скорее всего побьет
Yura
А зачем там?
SiZE
Сделай декоратор
Borys
да это не мне, с челиком общаюсь, пишет мне что это ок
Borys
и модель может содержать все что угодно
Borys
включая html
Dmitriy
да это не мне, с челиком общаюсь, пишет мне что это ок
все так говорят =). Это не мне это другу
Borys
Да и видео для друга просят, а не для себя :)
Konstantin
@ExileeD я кстати так и не понял, почему ты так осуждаешь наследование
Dmitriy
@ExileeD я кстати так и не понял, почему ты так осуждаешь наследование
надеюсь о вреде наследования не нужно говорить.
Dmitriy
и какие подводные камни могут быть
Павел
Не устаем говорить о вреде наследования
Dmitriy
они сами
Konstantin
я серьезно, вроде ж нормальная парадигма
Dmitriy
Наследование не учитывает будущие изменения родительского класса.
Konstantin
гм
Konstantin
а просто использование родительского класса учитывает будущие изменения в нем?
Konstantin
ну вот для примера, есть \yii\db\ActiveQuery
Konstantin
я от него унаследовался и добавил ему методов (всяких скоупов)
andrew
Ого
andrew
Какие люди
Konstantin
и теперь что, мой код сломается, если разработчики фреймворка радикально изменят \yii\db\ActiveQuery?
Dmitriy
ну вот для примера, есть \yii\db\ActiveQuery
Ну фреймворки без этого жить не могут. Там это оправданно
Konstantin
фреймворки не могут без чего?
Konstantin
это ж я сам от базового класса унаследовался
andrew
Без php
Dmitriy
а просто использование родительского класса учитывает будущие изменения в нем?
Одно дело когда кто-то в команде изменил род. класс и у нас полетело все к чертям. А интерфейс как раз не дает изменять методы класса
Dmitriy
фреймворки не могут без чего?
без наследования. иначе они бы были слишком сложны для 90% населения
Konstantin
а интерфейс, значит, мы запретили менять каким-то волевым решением?
Dmitriy
а интерфейс, значит, мы запретили менять каким-то волевым решением?
Не запретим. но наш скласс реализующий этот интерфейс скажет нам об этом если интерфейс поменяется
Konstantin
ну просто если какой-то болван решил покалечить какой-то класс в проекте, то сломаются все места, где этот класс используется
Konstantin
то есть если покалечить некий класс не запрещено, то почему пользоваться этим классом нормально, а наследоваться от него ненормально?
Konstantin
чем наследование от класса хуже использования?
Dmitriy
ну просто если какой-то болван решил покалечить какой-то класс в проекте, то сломаются все места, где этот класс используется
Ну не только покалечить. он может просто что-то изменить и пофиксить багу. а мы от этого метода зависим в дочернем классе
Konstantin
а если от этого метода зависит что-то еще в проекте?
Konstantin
ну вот на конкретном примере, раньше метод возвращал boolean, а начал возвращать массив
Dmitriy
Все поломается. и мы узнаем поздно. А интерфейс с бережет от этого
Dmitriy
ну вот на конкретном примере, раньше метод возвращал boolean, а начал возвращать массив
интерфейс не допустит этого как минимум. если допустит мы до компилятора еще узнаем о этом
Konstantin
ну какие компиляторы в интерпретируемом языке? :)
Konstantin
все равно как-то странно получается
Konstantin
объявляем интерфейс, в котором заявляем, что метод возвращает boolean
Konstantin
создаем класс, который реализует интерфейс
Konstantin
окей
Konstantin
если балбес в классе поменял возвращаемый тип, получил ошибку
Konstantin
что мешает балбесу изменить интерфейс?
Dmitriy
ничего. но мы это поймем в своем классе
andrew
Что мешает балбесу случайно удалить весь проект
Dmitriy
у нас тоже реализует интерфейс класс
Konstantin
а у нас класс сломается...
Konstantin
ну вообще да
Konstantin
только для этого интерфейс необязателен
andrew
Что мешает балбесу уронить стойку с сервером
Dmitriy
а у нас класс сломается...
Так мы это поймем. а при наследовании нет.
Konstantin
а если мы хинт приделаем к этому классу?
Konstantin
что метод возвращает конкретный тип
Konstantin
неужели у нас интерпретатор не ругнется, что мы его теперь переопределяем?
Dmitriy
а толку ? я в родительском могу его изменить
andrew
Интерфейс еще нужен для принципа подстановки solid. И чтобы можно было адаптеры прикручивать
Dmitriy
не для солид. а для контейнера
Konstantin
я ж не против интерфейсов
Konstantin
просто не понимаю этой панической боязни наследования