All streams
Search
Write a publication
Pull to refresh
160
1.5
Кирилл Мокевнин @toxicmt

Программист & Предприниматель

Send message
При этом нужно учитывать, что в python глобальная функция это не тоже самое что в php из-за пространств имен. В zf это можно оформить в виде хелпера. В разных проектах я использовал оба подхода.
В общем то не вижу никакой магии. Этот метод давно и успешно применяется не вызывая ни у кого никаких противоречий. Если Вам нужно что то более очевидное то можно его переназвать так: fetchRowAndThrowExceptionIfNotExists(), ну или по короче).
Зачем каждый раз? Этот метод используется только в тех случаях когда нужно показать страницу с ошибкой 404. Во всех остальных случаях используется простой fetchRow.
Он не возвращает строку ошибки, а выкидывает исключение. Очень, кстати, удобный метод, который имеет аналоги во всех фреймворках (правда реализация может отличаться). После написания в тысячный раз
$row = где то взяли
if (!$row) throw exception <класс для 404 ошибки> // а еще все забывают это делать

мозг начинает искать способы упростить задачу.
Хотя действительно, внутри же используется тот же самый селект. Этот пункт можно вычеркнуть).
100 процентной абстракции от базы никогда не получится, но в моем случае проще разобраться и поменять что то. Однажды мне пришлось переезжать с mysql на postgresql, когда уже было создано больше сотни таблиц и моделей. Благодаря использованию Zend_Db_Table_Select, многое не пришлось переписывать, хотя бы из-за автоматического квотирования селектом под каждую базу.
А вот это другой разговор). У меня реализован метод selectBy($field, $value), который делает то что вы говорите. И это действительно удобно.
Не лучше. Сложнее в тестировании и сопровождении, запутанный код, завязка на конкретную базу, невозможность учесть всех вариантов, тот кто будет пользоваться вообще не поймет что может этот код, отсутствие автокомплита.
А еще Вы забыли учесть IS NULL, >, <, BETWEEN и много чего другого).
Да такой метод habrahabr.ru/blogs/zend_framework/86353/ можно комбинировать с тем что описано в статье, но он никак его не заменяет. Тут habrahabr.ru/blogs/zend_framework/98877/#comment_3048351 я написал почему. Добавьте сюда еще автокомплит.
Тут допущена грубая ошибка. Вы в своих методах возвращаете селект, а методы определены в шлюзе. Как Вы будете строить цепочки?
Можно использовать Zend_Db_Table_Select и не заморачиваться,
будет что то типа $select->where('sex = ?', 'female')->order('id DESC') и т.д.
Такой код больше подвержен ошибкам, потому что его нельзя атомарно протестировать. Так же он поощряет писать запросы прямо в контроллерах, что в итоге ведет к каше и при рефакторинге базы данных Вам придется переписывать все места, а не один select.
Yii это вообще очень хороший способ познакомиться с фишками rails для тех кто не знает ruby или некогда его учить.
Скорее всего жара теперь будет до конца лета, так что надо либо совсем рано, что поддерживаю только я), либо с шести.
Был в отпуске, матч пропустил(. Давайте каждую неделю собираться, лето не бесконечное.
В смысле на следующую игру)
На игру надо будет брать шиповки, без них при больших скоростях как на льду.
Черт, мне все говорят что я родственник), осталось подкачаться и побриться.
площадка maps.yandex.ru/-/CFtIumq
Рядом есть баскетбольное поле.
О мячике я уже писал выше.

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

Я за утро (10 ~ 11).

Information

Rating
1,416-th
Location
Miami Beach, Florida, США
Date of birth
Registered
Activity

Specialization

Fullstack Developer, Chief Technology Officer (CTO)
Lead