Pull to refresh

Comments 10

На мой взгляд Phalcon хорош с точки зрения скорости, но плох с точки зрения удобства API и использования привычных паттернов. Поэтому сидим ровно и ждем зефир)
По посту скорее читается «продолжаем страдать»
Не потестируешь — не узнаешь, нужно ли оно. Почему-то в обзорных статьях никто не пишет про станности фреймворков.
Вот, хорошая критика. Не совсем понятно зачем это на Хабре, но всё же.

По первому вопросу — phalcon проверяет свойства поле в бд, если там указано что оно не может быть null — то ругается и не даёт сохранить. Эта «фича» вполне отключаема, как через настройки в приложении:
\Phalcon\Mvc\Model::setup(array(    
    'notNullValidations' => false
));


Так и через php.ini, сразу для всей системы:
phalcon.orm.not_null_validations = On

Ну или указать у нужного поля указать разрешение NULL.
Недописал первый пример и получилось, что я жалуюсь на другой удивительный случай:)
Обновил его:
$user = new User();
$user->id = 1;
$user->name = 'Robot';
$user->comment= '';
$user->save();


По поводу not_null_validations — не находите странным это поведение? В БД есть значение по умолчанию, раз уж поле не определено и нет возможности напрямую в модели определить значение по умолчанию (как в django, например), то логично его использовать, а не вываливаться.
О, теперь все встает на свои места. Если comment NOT NULL, то записывая туда NULL я ожидаю увидеть ошибку, все верно. А вот запрещать класть пустую строку в NOT NULL поле это, как мне кажется, очень, оочень печально.
Мне кажется более странно в этом случае неявно изменить comment с NULL на пустую строку. Все-таки значение NULL и отсутствие значения это разные вещи, и их смешивать в рамках ORM опасно, поэтому в рамках ORM странно уметь заменять NULL на значения по умолчанию.
Тут какое дело. В идеально мире при создании сохранении нового экземпляра приведенный выше модели:
Если comment не был установлен вообще — пишем в бд '', т.к. есть значение по умолчанию (на самом деле не пишем, в insert пихаем только установленные поля, остальные БД дописывает)
Если comment был установлен в NULL — ругаемся, т.к. NOT NULL
Если comment Был установлен в '', пишем в бд ''

Сколько пунктов выполняется в phalcon orm?:)
использовал phalcon в нескольких проектах, выяснилось, что откровенных багов, недоработок и белых мест в нём очень много. Вот здесь я описал примерно с чем пришлось столкнуться habrahabr.ru/post/225851/#comment_7681777. Но ради скорости можно это потерпеть) по скорости среди своих братьев фалкон топ-1.
Sign up to leave a comment.

Articles

Change theme settings