QuickBook

Блоки

· 2008/12/09 09:48 · root

Модели и работа с БД

Модели

Работа с БД. DBSimple

Общее описание библиотеки

Чтобы указать настройки соединения с базой данных используется DSN - строка в виде URL определяющая базу данных

«driver://user:pass@host:port/database?prefix=<prefix>&enc=<encoding>»

'pgsql://root:root@localhost:5432/base_name?prefix=prj_&enc=utf8';

$config['database'] = 'mysql://root@localhost/base';

Кеширование

Бэкенды кеширующей системы

Файловый кеш

Файловый кешер основан на переписанной библиотеке CacheLite из комплекта Pear.

Данные сохраняются в файлах по одному файлу на значение. Присутствует возможность разбивать по подкаталогам с помощью хеш функции.

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

$options = array(
	'cacheDir' => '',
	'caching' => true,
	'prefix' => 'cache_',
	'lifeTime' => 3600,
	'fileLocking' => true,
	'writeControl' => false,
	'readControl' => false,
	'fileNameProtection' => true,
	'automaticSerialization' => true,
	'automaticCleaningFactor' => 0,
	'hashedDirectoryLevel' => 0,
	'hashedDirectoryUmask' => 0777,
);

По умолчанию кеш хранится в папке tmp/cache, однако можно переопределить это значение. Указание другого префикса позволит хранить в одной папке несколько кешеров с различными параметрами.

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

Сейчас исправлено и хранить можно, неизвестно правда как будет реагировать система на файлы и будущего

· 2008/12/13 13:28 · Ivan Borzenkov

Berkeley DB

Бэкенд кеша, основанный на файловой нереляционной БД. BDB может обслуживать тысячи процессов или потоков, одновременно манипулирующих базами данных размером в 256 терабайт. Berkeley DB поддерживает многие передовые возможности баз данных, такие как ACID-транзакции, детальные блокировки, горячие бэкапы и репликацию.

Более подробно - wikipedia, Oracle

С файлом может параллельно работать много процессов - блокировки не требуется.

Кешер имеет единственную опцию - файл, в котором хранится кеш - по умолчанию tmp/cache.db4

· 2008/12/13 14:07 · Ivan Borzenkov
· 2008/12/09 09:49 · root

Сессии

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

Для того чтобы стартовать сессию не привязывая ее к конкретному пользователю нужно прямо или косвенно наследовать контроллер от класса QuickFW_Auth и для старта сессии вызвать $this→session(); После вызова $this→session(); с сессями можно работать через стандартный механизм - массив $_SESSION и функции session_*

Сессионные данные сохраняются в кеше, указанном по умолчанию в секции $config['cacher'], ключами являются строки sess_<id сессии>, пустые сессии автоматически удаляются из хранилища и с помощью механизма очистки сессий также производится чистка кеша.

· 2008/12/09 09:49 · root

Новые возможности

  1. В PlainPHP поддерживаются обработка блоков как в Smarty
  2. Поддержка стандартных сессий (не только кеш)
  3. Модуль для шаблонизатора Twig
  4. Добавлены FormPersister и MetaForm
  5. Класс Curl, хорошо эмулирующий браузер
  6. Класс для отправки Email (с html и вложениями)
  7. Класс логирования в файл, на мыло, в jabber
  8. Консольный демон, стартующий задачи (под win работает криво)
  9. Скафолдинг
  10. Класс для сохранения состояния шаблонизатора
  11. Хелперы для меню и пейджинатора
  12. Объект QFW::$ajax и автоинициализация JsHttpRequest
  13. класс блокировок
  14. QFW::$userdata для удобного доступа к данным пользователя
  15. Поддержка вызова из PlainPHP блока в формате $this→block('[M.]C.A', p1, p2, …);
  16. Много допилок дбсимплы
 
quickbook.txt · Последние изменения: 2010/03/09 08:55 texhapb
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki