Pull to refresh
23
0
Слава @slavcopost

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

Send message
Мелкое уточнение $x instanceof \Closure не проверяет является ли переменная функцией. Она проверяет является ли переменная анонимной функцией.

<?php
$x = function() {
};
$y = 'trim';

var_dump($x instanceof Closure); // true
var_dump($y instanceof Closure); // false
var_dump(is_callable($x)); // true
var_dump(is_callable($y)); // true
СActiveRecord::find() также подразумевает наличие дополнительных условий установленные критериями, scopes и прочими. Так что все аналогично, find может вернуть найденную строку либо не найдя строку вернул null.
С чего вы решили что СActiveRecord::find() должен всегда что-то вернуть? мне кажется она должна «найти» или «не найти», обе ситуации не исключительные. Может и MySQL на SELECT должен бросать исключение при пустом результате?
Браво, хорошая статья, и главное редко затрагиваемая тема.

Хотел бы добавить пару моментов:

1) Никогда не бросайте базовый Exception, лучше использовать собственные исключения, либо на крайний случай один из SPL. Т.к. базовое исключение сложно словить.

2) В дополнении 1) Используйте Композицию вместо Наследования. В статье эта мысль присутствует, я лишь хочу уточнить. Вместо своего нового базового класса для исключения, используйте интерфейсы. Например

class InvalidArgumentException extends \InvalidArgumentException implements MyApplicationExceptions {
}

теперь ваш обработчик ошибок и исключений будет проще.

3) Обработчик ошибок и исключений, не обязательно должен быть один в приложении. Особенно если вы используйте слоистую систему, вполне возможно Вам будет полезно иметь отдельный обработчик в каком-то слое, например вы захотите для Presentation layer выловить все кроме Http exceptions и сделать их таковыми.

4) Если Вам позволяет версия php, в 5.5+ не забывайте про finally, на ряду с try/catch является очень удобной, работая с исключениями.

<чуть чуть сарказма>Автор, в 4 абзаце речь идет о стандартах и лучших практиках, как насчет PSR1,2? :)</чуть чуть сарказма>
wow. Вот это новость, спасибо. Оказывается даже `use Namespace\Class` не дергает автозагрузчик :)
Удобно, но нужно ли autoloader'у подгружать каждый класс в конфиге?
А меня удивляет, зачем вообще искать кого очередной телефон пытается убить?
Я как потребитель, могу просто посмотреть тех. данные, внешний вид и сделать свой выбор?
Нет же надо в каждом обзоре раздуть холивар. :(
Пусть производители решают кто кого убил, им баталии в судах вроде доставляют удовольствия.
1) Очень странно что твой браузер определит китайский, если ты его не знаешь
2) Рекомендуется делать смену языка на самом видном месте, чтоб его можно сменить язык совсем не знаю текущего.
В современном мире поисковые роботы умеют индексировать мультиязычный контент, нужно всего лишь пару мета-тегов добавить
Это никак не противоречит моим ожиданием. В моем первом предложении базой является «и скрывать эту информацию». Лаборатории по поиску уязвимостей, отлично. Нашли, сделали всему человечеству доброе дело, опубликовав ее. С покупкой сложнее, поддерживая спрос они тем самым поддерживают предложение. Но с другой стороны уязвимость может быть серьезной, на которую и денег не жалко. Так что тут решается для каждого частного случая. В любом случае, купили, опубликовали. Ведь изучать ее можно и после как она станет публичной? Скрывать зачем? Я думаю только чтобы пользоваться ее в своих нуждах. Я против этого. Всем все равно на мое мнение, но я и свободно могу о ней говорить :)
Наверное я романтик, но да, я думаю что государственная организация не должна тратить мои деньги на покупку уязвимостей, которые могут мне принести вред и скрывать эту информацию. Теоритетически я (гражданин страны) заплатил за информацию об уязвимости, значит я должен эту информацию получить.
И почему о событии узнаю постфактум :( Где можно подписаться, чтоб знать о таких ивентах в Кишиневе заранее?
Т.е. он проснулся пришел на работу и приказал всем упасть, отжаться делать социальную сеть плохо? Или все таки, у них ведется обсуждения, анализ конкурентов, фокус-группы и т.д.?
Как же все таки по разному люди толкуют услышанное.
Я например, не услышал что G+ провал, Брин всего лишь сказал что его работа, его потраченное время на проект который не интересен ему — это ошибка.

Ни у кого не бывало работать над чем-то не интересным? А в его случае, он мог бы отказаться. Но продолжал работать, может это он считает ошибкой?

Почему столько паники о провале? Я отказываюсь верить что на подобных проектах работает один человек, и раз он ничего не понимает в социальных..., то и весь проект провал :(
Менять клавиатуру я не из-за износа имел виду (или твой комментарий к предыдущему сообщению?). Если я поменяю подружку с Katie на Mary, мне нужен новый телефон? Было бы намного удобнее, заказать новую клавиатуру. Но думаю они к этому прийдут, ведь модульный телефон в тренде :)
Интересная идея. А если у них появятся сменные клавиатуры, будет вообще круто. Ведь часто нужно будет менять набор кнопок, не хотелось бы каждый раз новый телефон заказывать.
Возможно все таки производство такой клавиатуры более дорогое? Ведь одно дело напечатать фотку или буквы и другое дело кнопки с выступами. Которые еще и не должны быстро стираться.
Атрибут это не только столбцы таблицы ведь, поэтому ничего не мешает использовать виртуальный атрибут.
class Blog extends CActiveRecord {
    public function checkPrivacyCreate() { // Проверяем, может ли пользователь написать коммент
           ...
            $parent_post = $this->getPost($this->parent_post_id);
            if (empty($parent_post)) {
                $this->addError('privacy', Yii::t('blog', 'post_not_found'));
                return false;
            }
           ...
        return true;
    }
}

// использование в контроллере
public function actionAddPost() {
      ....
      if (!$model->addPost())
                Tools::jsonError($model->getErrors()); // или конкретные ошибки $model->getErrors('privacy');
      ...
}

KISS!
Insert-клавиша присутствует или я не понял вопроса

Information

Rating
4,223-rd
Location
Испания
Date of birth
Registered
Activity