Исправлено внушительное количество ошибок, закрыты дыры в безопасности и введены некоторые незначительные улучшения.
Все заметки с тегом «PHP»
-
PHP 5.3.1
20 ноября 2009
-
Web IDE build 722
12 ноября 2009
Свежий билд многообещающей IDE для PHP и веб в общем.
Уже сливаю себе и очень надеюсь, что, наконец, можно будет ощутить весь прогресс, начиная с #613 без критичных багов, вроде тех, что были в #701.
-
inPHP.org, уровень 7
10 ноября 2009
Спустя год на inphp.org, в спорном, но всё-таки полезном тесте по PHP, стал доступен седьмой уровень.
-
Фреймворки
6 ноября 2009
Довольно долго я пытался подобрать себе PHP-фреймворк. И, разочаровываясь в некоторых из кандидатов, задумывался о необходимости фреймворка как такового. Приведу некоторые очевидные, не очень очевидные и, надеюсь, полезные факты.
-
Web IDE build 701
3 ноября 2009
И ещё один билд Web IDE. На этот раз с официальным анонсом.
В этом билде поработали над производительностью, а также реализовали вкусности:
Навигация по глобальным переменным.
Улучшенная генерация и дополнение по PhpDoc (об этом я упоминал ещё в прошлый раз).
ALT+ENTER позволяет быстро вставить комментарий с @var для определения неизвестного типа переменной.
Дополнение после new.
Пространства имён в навигаторе.
Дополнение __magic-методов без дополнительного описания (WI-349).
Пробуем и не забываем писать об ошибках в трекер
-
PHP, валидация и массивы
2 ноября 2009
Наверное, многие сталкивались с задачей ввода произвольного числа одноимённых полей через форму. В PHP это сделано довольно удобно: в форме к имени поля добавляется [] и на стороне сервера в $_POST, $_GET или $_REQUEST мы получаем уже массив.
В любом коде необходимо проверять данные, пришедшие из форм и адресной строки. В любом хорошем коде они проверяются. Но вот про эту особенность с квадратными скобками очень часто забывают.
http://example.com/list.php?q=test http://example.com/list.php?q[]=test
Довольно безобидный код, в котором нет проверки:
$q = null; if(!empty($_GET['q'])) { $q = $_GET['q']; } // тут начинаем работать с $q как со строкой
А вот менее безобидный пример: в WordPress до версии 2.8.4 можно было таким вот образом сгенерировать новый пароль администратора без отсылки ему каких-либо писем.
-
Yii framework 1.1 beta
1 ноября 2009
Вышла бета линейки 1.1 PHP-фреймворка Yii.
Что нового:
Исправления некоторых ошибок, найденных а 1.1 alpha.
Поддержка префиксов таблиц в DAO и ActiveRecord.
Более гибкий код CSort (можно сортировать по нескольким полям и по сложным выражениям).
Возможность использования своих региональных данных.
Также есть ощутимый прогресс по проекту zii, официальному набору расширений для Yii. Разработан полный набор виджетов для использования jQuery UI.
-
Web IDE build 613
30 октября 2009
Очередной билд Web IDE.
Исправления касаются:
Генерации и использования phpDoc.
Автодополнения.
Подсветки кода.
Модульных тестов.
Также добавили возможность хранить настройки проекта не в директории проекта.
-
Drupal: вывод данных с постраничной разбивкой
29 октября 2009
Довольно типичная для Drupal задача, которая частенько ставит новичков в тупик.
// Пишем SQL без LIMIT. Не думаем о постраничной разбивке вообще. $sql = "select title, type from {node}"; // Заголовок таблицы $header = array( t('Заголовок'), t('Тип') ); // pager_query добавит в SQL LIMIT без нашего непосредственного участия $result = pager_query($sql, 10); // собираем данные для таблицы из результата запроса $rows = array(); while($row = db_fetch_object($result)){ $rows[] = array( $row->title, $row->type ); } // выводим таблицу echo theme('table', $header, $rows); // выводим постраничную навигацию echo theme('pager');
-
Yii framework 1.0.10
19 октября 2009
Обновилась стабильная ветка PHP-фреймворка Yii.
В этот раз изменений довольно много.
Была исправлена серьёзная ошибка: при выполнении SQL-запросов через CDbCommand последующие запросы через ActiveRecord могли не срабатывать.
В виджете CAPTCHA была добавлена возможность использовать прозрачный фон.
Добавлена возможность добавлять свои автозагрузчики через Yii::registerAutoloader().
Добавлена поддержка анонимных функций (PHP 5.3+) в качестве обработчиков событий.
Улучшена работа CPhpMessageSource с модулями.
Добавлен валидатор CBooleanValidator для проверки логических значений.
Обновление с 1.0.9 до 1.0.10 можно осуществить заменой директории фреймворка. Обратная совместимость полная.