Tag Archives: php

PHP coding style

Описал часть своего code style для PHP. To be updated.

PHP Fatal error: Exception thrown without a stack frame in Unknown on line 0

Отличная ошибка, на которую обычно просто «забивают», т. к. не понятно, где и что искать. А ошибка вызвана тем, что в кастомном обработчике исключений происходит исключение, после чего php прерывает процесс с таким замечательным и информативным сообщением об ошибке. В моём случае это было своё расширение для класса DateTime

Если не написать тот странный …

Read more

Бесплатный хостинг с Django

https://www.alwaysdata.com/plans/shared/ Языки: PHP, Python, Ruby, Perl, Java, Lua, OCaml, Erlang; фреймворки: Джанго, Рельсы и symfony (PHP). Сам не пробовал, но слышал. Минусы — под код дают целых 10 Мб дискового пространства и гигабайт трафика в месяц.

Познавательное обсуждение о том, почему всё нужно собирать руками

Тут у человека систематически виснет fpm, попытки это вылечить и самый дельный совет — «собирать нужный софт для production-сервера нужно руками». http://phpclub.ru/talk/threads/%D0%B7%D0%B0%D0%B2%D0%B8%D1%81-fpm.66810/

Проблема при работе с расширением memcached в php

Работал раньше сайт с memcache. Решили перейти на memcached. И повалились ошибки SERVER HAS FAILED AND IS DISABLED UNTIL TIMED RETRY, причём сначала одна CLIENT ERROR, а уже потом куча SERVER HAS FAILED AND IS DISABLED UNTIL TIMED RETRY. Гугление ничего не дало, а проблема оказалась в следующем: первая ошибка возникала из-за некорректного ключа (пробел …

Read more

Новое в PHP 5.4 — трейты (traits)

Вкратце: трейт (аналог mixin в Ruby) — возможность в классе использовать функционал нескольких классов в обход традиционного наследования (по-моему, костыль, чтобы не реализовывать множественное наследование). Всё сводится к новой инструкции use внутри класса, при этом класс, функциональность которого нужно подмешивать. объявляется инструкцией trait.

Подробнее: New to PHP 5.4: Traits

Трассировка PHP-приложений с помощью xdebug

Вот достаточно подробная статья на эту тему. В принципе достаточно написать

Заголовки на скачивание файла

Чтобы при обращении по данному урлу браузер выдавал запрос на сохранение файла, нужно передать заголовки. Для этого достаточно только одного заголовка «Content-Disposition: attachment; filename=\»myfile.csv\»\r\n»

Виртуальные хосты на nginx

В двух местах прописываем.

Дружим nginx и php-fpm

Мы уже установили nginx и php-fpm. К этому моменту при обращении к http://localhost/ выводится Welcome to nginx!, а через CLI запускаются php-скрипты. Самое время намекнуть nginx, где искать php-fpm.