Илья Кантор делится опытом использования «честного» FastCGI в PHP на примере sandbox-а Symfony. Результат — рост скорости в 1,5—2 раза.
Все заметки с тегом «PHP»
-
True FastCGI для PHP - миграция и тесты
9 сентября 2010
-
Yii: параметры для действия контроллера
30 августа 2010
В стремительно приближающемся релизе Yii 1.1.4 будет довольно приятная возможность. Теперь можно будет использовать $_GET-параметры как параметры действия контроллера.
Теперь вместо:
class PostController extends CController { public function actionCreate() { if(isset($_GET['category'])) $category=(int)$_GET['category']; else throw new CHttpException(404,'invalid request'); if(isset($_GET['language'])) $language=$_GET['language']; else $language='en'; // ... действительно полезная часть кода ... } }
можно будет так:
class PostController extends CController { /** * Создание поста. * @param integer $category ID категории нового поста * @param string $language язык нового поста */ public function actionCreate($category, $language='en') { // ... действительно полезная часть кода ... } }
При этом, если в $_GET не оказалось указанного параметра и для параметра нет значения по умолчанию, будет выброшено исключение CHttpException.
Если в PhpDoc метода присутствуют типы параметров (поддерживаются integer
(
int),
boolean(
bool),
float(
double) и
string`), происходит автоматическое приведение типа из $_GET к указанному.UPD: после пары дней внутренних и внешних обсуждений было решено выкинуть приведение типов.
-
Traits в trunk PHP
26 августа 2010
Вот и traits попали в транк PHP.
Данная возможность была придумана как альтернатива множественному наследованию и mixin-ам. trait представляет собой набор PHP-кода (обычно это методы), который можно использовать в своём классе. Фактически trait — поддерживаемый на уровне языка умный copy-paste.
trait Dumper { public function dump($var){ echo '<pre>'.print_r($var, true).'</pre>'; } } class MyClass { use Dumper; } $myClass = new MyClass(); $myClass->dump('test');
MyClass в итоге будет выглядеть как:
class MyClass { public function dump($var){ echo '<pre>'.print_r($var, true).'</pre>'; } }
Это самый простой случай. Более сложные и интересные вещи, такие как подмена имени метода при подключении, разрешение конфликтов, trait-ы из trait-ов, требования к классу, описаны на английском в wiki.
-
EAP PhpStorm 2.0 стартанул
24 августа 2010
Вот и случилось. В данной версии:
Рефакторинг smart introduce.
Внушительный набор новых проверок кода.
Переработанный интерфейс.
GUI для Git.
Редактор фрагментов кода.
Множество других улучшений и исправлений.
Пробуем и не забываем постить найденные баги в трекер
UPD: Подоспел билд с фиксами.
-
Скоро стартует EAP PhpStorm 2.0
19 августа 2010
Следующая версия и так уже очень хорошей IDE обещает быть не менее революционной, чем первая. Самое вкусное:
Поддержка Zend framework и Zend debugger.
Возможность самостоятельно прикрутить поддержку любого фреймворка через описание метаданных «магических» мест вроде загрузчика классов.
Дополнительные возможности рефакторинга.
Улучшения в поддержке пространств имён.
Улучшения в инспекторе кода.
Поддержка Mercurial, UI для Git и Mercurial.
LESS/SASS 3.
Softwrap (wordwrap?!).
Улучшенный интерфейс самой IDE.
EAP обещают открыть в течение недели.
Если вы не нашли в планах чего-то очень важного, об этом можно написать в багтрекер.
-
Шевчук про рефакторинг
19 августа 2010
Довольно интересный рассказ про рефакторинг плохого тормозящего PHP кода.
-
PhpStorm 1.0.2
17 августа 2010
Вышел релиз IDE PhpStorm.
Изменения по сравнению с предыдущим билдом неплохие. Среди них такие, как:
Улучшения инспектора кода.
Улучшение производительности дополнения кода.
-
PHP, шаблоны и короткий синтаксис
11 августа 2010
Одним из самых частых аргументов, приводимых в пользу шаблонизаторов по сравнению с голым PHP, является более красивый синтаксис:
{$code}
вместо
echo $code
На самом деле этот аргумент, хотя и самый часто используемый, является полностью необоснованным.
Если включить в php.ini short_open_tag, можно вместо действительно громоздкого кода, приведённого выше, писать:
$code
При использовании альтернативного синтаксиса управляющих конструкций, код будет гораздо понятней, чем шаблон того же Smarty:
<ol> <?foreach($users as $user): <li> <h2><?=$user->username</h2> <p><?=$user->notes</p> </li> <?endforeach </ol>
-
PhpStorm 1.0.2 RC build 95.480
6 августа 2010
После небольшого затишья выложен свежий билд IDE PhpStorm, являющийся RC 1.0.2.
Исправлены почти все ложные срабатывания «Unused local variable».
Поправили ошибку с неработающим HTML5 при наличии пробелов в пути к установленной IDE.
Исправления в дополнении. См. Code | Code Completion | Cyclic Expand Word (Alt + /) и Cyclic Expand Word (Backward) (Alt + Shift + /).
Улучшено обнаружение ошибок в коде и их подсветка.
-
JAXL 2.0
3 августа 2010
Вышла вторая версия JAXL — объектно-ориентированного XMPP-фреймворка для PHP, о котором я упоминал ранее.
В лучшую сторону изменилась архитектура.
Событийная модель.
Поддержка XEP:
0004 – Data Forms 0030 – Service Discovery 0045 – Multi-User Chat 0050 – Ad-Hoc Commands 0085 – Chat State Notification 0092 – Software Version 0114 – Jabber Component Protocol 0133 – Service Administration 0249 – Direct MUC Invitation