>> Нет, это идея снимать права с другого пользователя при назначении новому ущербна.
Где вы это вычитали, я этого не предлагал. Суть была в том, что у пользователя есть роли, которые кешируются. Если мы изменяем ему роли, то кеш ролей надо инвалидировать, иначе у него 1-2 часа до следующего обновления ролей на сайте будут старые полномочия висеть. Можно это хранить в обычном сервисе кеширования, но скажите, нафига тогда нужна сессия, если мы ее не используем.
Да, это можно сделать, но такая архитектура - костыль. Для хранения данных аутентифицированного пользователя существует специальная вещь - сессия. Другое дело, что в PHP ее реализация ущербна.
@Fortop Вот пример. Роли хранятся в БД. Кешируем у пользователя в сессии его роли, чтобы не грузить БД на каждый запрос. Заходит модератор и назначает новые роли другому пользователю. Этому пользователю теперь надо как-то сбросить сессию, чтобы при его следующем заходе ему пересчитались роли.
Да, и на Yii не ориентируйтесь, архитектура там гавно. Если интересно устройство фреймов, начните с Kohana. Поймете MVC и напишите свой. Потом приложите DIC и Composer и познаете дзен.
> Можно ссылку на тесты?
Тесты не нужны. Просто посмотрите, во что компилируется шаблон твига в кэше. Разница с нативным шаблоном только в том, что твиговский скомпилированный хранится в виде класса. Поэтому оверхед шаблонизаторов по сравнению с голым PHP такой же, как оверхед ООП по сравнению с процедурным стилем, т.е. совершенно незначительный.
Можно немного по-другому переопределить проблему. В Propele есть методы Query preSelect(), preUpdate(), preDelete() и т.д. Проблему можно было бы легко решить, если возможно было переопределять эти методы динамически в коде. Но, насколько я понял из документации, эти методы жестко прописываются в классе. Дальше их нельзя изменить
Аналог Repository есть в Propele, но документированных возможностей не хватает, чтобы провернуть такую операцию. Про ObjectManager и что он умеет я почитаю, но вообще с Doctrine я работал, и как-то не вдохновило
Почему же не совсем уровень ORM? Можно же с помощью preSelect() задать какие угодно дефолтные условия выборки. Но с preSelect() можно задать условия только с заранее известными параметрами. То, что я спрашиваю, это тот же preSelect() только с возможностью его динамически изменять в коде. Вполне себе уровень ORM. Очень жалко, что такие фичи не встраивают в ORM.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
grub-install /dev/sda
grub-install /dev/sdb
Достоточно ли это для того, чтобы система загружалась?