Pull to refresh

Comments 11

HHVM Composer — Когда же они исправят работу с Timer'ом? К примеру установка ZF либо Symfony очень часто крашится из-за Первышения лимита микро-таймера (не Request Timeout).

Спасибо за полезный выпуск, много в избранное попало.
Отличные сслылки! Есть ли ещё что-нибудь подобное?
Сразу так и не припомню, если будет что появляться, буду просить автора включить в дайджест )
SQL-injection в Yii framework

Даже не знаю как прокоментировать…

Вообще же приведенный там код:
public function actionSqlView($id)
{
  $sql = 'SELECT * FROM news WHERE id = '. $id;
  $model = Yii::app()->db->createCommand($sql)->queryRow();
  $this->render('sqlView', array('model' => $model));
}

отличный пример того, как не надо делать

А если бы автор вместо замещения вакансии КО (сколько уже всего написано про SQL-injection), заглянул в код Yii, то увидел бы, что:
	public function createCommand($query=null)
{
$this->setActive(true);
return new CDbCommand($this,$query);
}


И соответственно вот этот говнокод из статьи:
$sql = 'SELECT * FROM news WHERE id = '. (int)$id; 

$sql = 'SELECT * FROM news WHERE id = :id';
$command = Yii::app()->db->createCommand($sql);
$command->bindParam(':id', $id, PDO::PARAM_INT);
$model = $command->queryRow();


Превращается в идеологически правильный и безопасный:
$model = Yii::app()->db->createCommand()
    ->select('*')
    ->from('news')
    ->where('id=:id', array(':id'=>$id))
    ->queryRow();
Да, эта статья отличная иллюстрация того, что говнокодить можно на любом языке с помощью любого фреймворка.
Очередные PHP — Best Practises, и в каждом посте одно и тоже.
Кто-нибудь должен написать пость «Лучшие практики, о которых вы еще не знали», иначе это все похоже на то, что каждый PHP-разработчик обязан написать свои «Best Practises».
Sign up to leave a comment.