Как стать автором
Обновить
-1
0

Пользователь

Отправить сообщение
Писать качественный кодж и говнокод — это почти одинкаковые затраты. Вы наверно путаете overengineering с качественным преоктирование. Качественное проектирование позволяет делать большее меньшим количеством строк. Особенно это будет заметно, если захотите значителньо изменить структуру. Хорошо организованый код надо будет либо донастроить, говнокод — переписать.
Ходят слуши что в Yii 2 будет нечто подобное.
Может ли idiormandparis создавать структуру базы данных не лету?
Забегу вперед и опишу как содается модель в RedBeanPHP.

В начале вы работаете с bean, без привлечения моделей. Когда вам нужна модель, вы создаете класс вида Model_BeanName, в нашем случае Model_User, и там описываете дополнительную логику. Связывание bean и модели происходит автоматически.
То есть:

$user = R::dispence('user');
$user->modelMethod();

То есть, начинаем с ActiveRecord, и при необходимости расширяемся до моделей. Мы всегда работаем по одной схеме.
В idiormandparis мы можем отказать от моделей так же, но в этом случае мы работаем с ActiveRecord.
Пример из приведенного фреймфорка:

class User extends Model {
}

$user = Model::factory('User')
->where_equal('username', 'j4mie')
->find_one();
$user->first_name = 'Jamie';
$user->save();

Аналогичный функционал на RedBeanPHP

$user = R::findRow('user',' username =? ',
array( 'j4mie' )
);
$user->first_name = 'Jamie';
R::store($user);

Как мы видим, в RedBeanPHP можно не описывать класс модели. О том, как создаются модели в RedBeanPHP я опишу в второй части.
Проверяет или нет зависит от режима работы — fluid или frozen.
В комментарии выше Mox предоставил ссылку, из которой следует что ORM реализует паттер ActiveRecord.

http://en.wikipedia.org/wiki/Active_record_pattern

http://habrahabr.ru/post/150023/#comment_5079253
В этом смысле ORM подмножество ActiveRecord.

Из приведенной ссылки:
This pattern is commonly used by object persistence tools, and in object-relational mapping (ORM).

Данный паттерн используеться средствами управления объектами, и ORM.
Есть ли ORM в которой создание новой таблицы и новой записи сводиться к нескольким строкам?

require('rb.php');
$book = R::dispense( 'book' );
R::setup('mysql:host=localhost;dbname=mydatabase', 'user','password');
$book->title = 'Gifted Programmers';
$book->author = 'Charles Xavier';
$id = R::store($book);
Это полноценный ORM.
Дополнил статью:

ORM поддерживает SQL запросы.

R::exec( 'update page set title=«test» where id=1' );

Так же присуствует построитель запросов:

R::$f->begin()
->select('*')->from('bean')
->where(' field1 =? ')->put('a')->get('row');

Возможно это будет ответом на ваше замечание.
Я ответил вам ниже.
Таких тестов я не проводил. Некоторая информация есть на сайте RedBean Performance

Сам автор верит, ORM работает настолько быстро, насколько правильно вы позволяете это ей делать.
Данная статья только первая в цикле из 3 частей, описыващая только самые базовые вещи.

" И опять же странно почему нет такой простой вещи как namespace, вроде уже «немодно» давно писать MyClass_Is_Here"

Тут я отвечу переводом раздела PHP 5.3 namespaces на официфльном сайте.

«Я не люблю PHP namespaces, они имеют некоторые проблем. Есть ряд причин почему я не использую namespace в RedBeanPHP.

Я хочу оставить совместимость с 5.2.
Я не хочу заставлять пользователей использовать namespace, схема с синголтоном R::doSomething() достаточно мощная
Хотя я ценю работу команды PHP, я считаю выбор символа \ ошибкой. Это как эхо MSDOS в PHP.
Мне кажется, чем меньше синтаксических конструкций, тем лучше.

12 ...
10

Информация

В рейтинге
Не участвует
Откуда
Stockholm, Stockholms Län, Швеция
Дата рождения
Зарегистрирован
Активность