На берегу Финского залива развернулась гигантская строительная площадка – на бывшей портовой ...
На берегу Финского залива развернулась гигантская строительная площадка – на бывшей портовой территории возводится новый жилой район Каласатама. Каласатама (Kalasatama, в переводе – Рыбный порт) – один из самых крупных новых застраиваемых районов Хельсинки, его площадь составляет 170 га. Порт покинул эту территорию в 2008 году, а строительство первых домов началось в в 2010 году [...]
ORM в Kohana очень удобная штука, но она постоянно выполняет запросы типа:
SHOW FULL COLUMNS FROM `users`
Запрос выполняется почти на каждое действие связанное с таблицей, в данном случае 'users'. Это происходит из-за того, что для выполнения различных операций с данными ORM необходимо знать структуру таблицы и наименование полей.
Что бы избавиться от таких запросов необходимо добавить модель описание структуры таблицы - массив $_table_columns. Думаю детально описывать стурктуру массива с данными не имеет смысла, так как в ниже приведённом примере всё хорошо понятно.
Например для модели User, расширим стандартную модель Model_Auth_User добавив описание столбцов таблицы:
<?php
defined('SYSPATH') OR die('No direct script access.');
class Model_User extends Model_Auth_User {
protected $_table_columns = array(
'id' => array(
'data_type' => 'int',
'is_nullable' => FALSE
),
'email' => array(
'data_type' => 'string',
'is_nullable' => FALSE
),
'username' => array(
'data_type' => 'string',
'is_nullable' => FALSE
),
'password' => array(
'data_type' => 'string',
'is_nullable' => FALSE
),
'logins' => array(
'data_type' => 'int',
'is_nullable' => TRUE
),
'last_login' => array(
'data_type' => 'int',
'is_nullable' => TRUE
));
}
Больше запросов SHOW FULL COLUMNS FROM `users` не будет, так как модель 'знает' поля таблицы и их свойства.


, несомненно, мощная и ... создании объекта модели
должен знать информацию ...
... об весьма интересном
фреймворке RedBeanPHP. Примечателен ...

В данном посте речь пойдет об весьма интересном ORM фреймворке RedBeanPHP. Примечателен он, прежде всего, возможностью создавать структуру базы данных на лету. К тому же фреймворк прост в использовании как две копейки. Моё повествование будет разделено на 3 части.
В второй части основная тема будет — модели. В третей — изменение логики работы фреймворка.
Перед написанием поста я потрудился и сделал тестовое приложение с 15 000 записей, для того, что бы убедиться на своем опыте в возможности невероятно облегчить работу. Ведь я наверно не один, кто прописывает поля в нескольких местах с жутким осознанием бессмысленности этой работы, особенно на начальном этапе разработки. Наконец появился аналог Entity Framework Code First из .NET, который в свое время вызвал у меня дикий восторг. Итак по порядку.
Читать дальше →
... данных. Такая недо-
На гитхабе ...
Общее описание
HyperActive Record – это надстройка над классом DB для фреймворка CodeIgniter 2.0 и выше, позволяющая получать значения полей связанных с записью объектов по внешним ключам (foreign keys) без дополнительного описания связей и данных. Такая недо-ORM
На гитхабе
Страница библиотеки
Зачем это надо и что оно умеет?