Intereting Posts
Автоматическое распознавание лиц с использованием API Picasa для извлечения отдельных изображений Поиск и замена нескольких значений несколькими / разными значениями в PHP5? Передача массива PHP во внешнюю функцию Javascript как массив doctrine: schema: обновление не учитывает порядок столбцов как php не записывает содержимое изображения на диск? Пунктуация полосы пропускания PHP PHP – Создание всех возможных комбинаций заданных символов Laravel 4 построитель запросов – со сложными левыми соединениями Подключение к базе данных SQL Server с помощью PHP laravel возвращает строку json на локальном компьютере, но целое число на экземпляре экскаватора beanstalk Как отсортировать массив PHP объектов по значению внутри объекта в каждом элементе? Параметры функции обратной связи PHP USOR Форма не сохраняется в базе данных Печать результатов немедленно (php) Ошибка обработки для повторяющихся записей – PHP MySQL

Кэширование отношения ORM

Без неиспользуемых слов мне нужен совет.

Я создаю еще одно приложение, основанное на структуре KohanaPHP 3.0.9, влюбленный в ORM (реальный усилитель производительности!).

Я получил модель Model_User:

class Model_User extends ORM { protected $_table_name = 'users'; protected $_primary_key = 'id'; protected $_has_many = array( 'articles' => array( 'through' => 'users_articles', ), ); protected $_ignored_columns = array('articles'); } 

Я пошел с тонкой философией контроллера / толстой модели, поэтому правильное место для данных является моделью в моем развитии.

Что такое $_ignored_columns ? В нескольких местах мне нужно вернуть объект $user поэтому я возвращаю его со статьями (когда это необходимо) в виде $ user method: $user->articles->find_all() ;

Пока все хорошо, все работает отлично. Я не совсем уверен, правильный ли мой подход с $_ignored_columns , если нет, сообщите мне, как его решить.

Однако я столкнулся с проблемой кэширования. Как правило, все работает правильно ожидать статей. Он просто игнорируется кешем (не сохраняется в файле кеша). Я также попытался кэшировать его отдельно – все равно не повезло.

Какие-либо предложения?

Игнорируемые столбцы – это всего лишь несколько «воображаемых» полей, которые вы можете иметь в модели, которую ORM не будет пытаться сохранить на save () (например, поле password_confirm в Model_Auth_User)

Я действительно не понимаю, почему вы будете кэшировать статьи, поскольку это не имеет особого смысла, хотя вам придется делать это вручную (например, добавить дополнительный метод get_articles (), который будет проверять, есть ли кэш для загруженной в данный момент статьи и возвращать это), но вы будете просто получать головную боль без особых причин (насколько медленный запрос на самом деле, это выбор по первичному ключу через сводную таблицу?).

ORM не поддерживает кэширование по умолчанию (кроме столбцов таблицы).