Рейтинг
0.00
голосов:
0
avatar

PHP  

Позднее статическое связывание в PHP (Часть I)

phpПозднее Статическое Связывание (Late Static Binding, LSB) является бурно темой обсуждений последние три года в кругах разработчиков PHP (и наконец мы его получили в PHP 5.3). Но зачем оно нужно? В данной статье, как раз и будет рассматриваться, как позднее статическое связывание может значительно упростить ваш код.

На встрече разработчиков PHP, которая проходила в Париже в ноябре 2005 года, тема позднего статического связывания официально обсуждалась основной командой разработчиков. Они согласились реализовать его, наряду со многими другими темами, которые стояли на повестке дня. Детали должны были быть согласованы в ходе открытых дискуссий.


( Читать дальше )

Страшные сказки про PHP5, рассказанные на ночь…

1) Какой бы ерундой вы не занимались с PHP, узкое место _всегда_ — БД. PHP — он как Буратино — тупОЙКАк… дрова. Lighttpd и Nginx позволяют разнести его по множеству физических серверов на раз без шума и пыли. Зарплата адекватного спеца по PHP в Москве — 30-45 тыс. рублей в месяц, стоимость аренды нормального сервера — от 3 тыс. рублей в месяц. А вы не знали ;) ?

2) Какой бы ерундой вы не занимались — 30-60% производительности (возможно и больше) PHP-кода решит правильно выбранный и настроенный акселератор.

3) Серебряной пули нет. Не важно, какой концепт вы применяете — строгое ООП (в стиле Zend Framework), функции в стиле PHP4 (или ограниченное ООП) или вообще лапшу в стиле «PHP для чайников» — ни одна из этих парадигм не даст ощутимый прирост производительности, если конечно ваши программисты не выше как минимум на голову.


( Читать дальше )

40 советов по оптимизации вашего PHP-кода

Всем доброго времени суток.

Перевод заметки "40 Tips for optimizing your php code". Автор — Reinhold Weber.


  1. Если метод может быть статическим, объявляйте его статическим.

  2. echo быстрее, чем print.

  3. Передавайте в echo несколько параметров, вместо того, чтобы использовать конкатенацию строк.

  4. Устанавливайте максимальное количество проходов ваших циклов for до цикла, а не во время его выполнения.

  5. Удаляйте свои переменные для освобождения памяти, тем более, если это большие массивы.

  6. Остерегайтесь магических методов, таких как __set, __get, __autoload.

  7. require_once дорого обходится.

  8. Указывайте полные пути в конструкциях include/require, меньше времени будет тратится на поиск файла.

  9. Если вам необходимо определить время, когда скрипт был запущен, используйте $_SERVER[’REQUEST_TIME’] вместо time().

  10. Старайтесь использовать strncasecmp, strpbrk и stripos вместо регулярных выражений.



( Читать дальше )

frontier — фреймворк для php 5.1

В общем, начинаю постепенно выкладывать троды плудов на суд общественности. На http://www.frwk.net появились уже трак проекта и блог, куда я мало-помалу буду постить информацию о фреймворке.
Вкратце: Frontier предоставляет связи между компонентами, легко помогает подключать различные прикладные библиотеки, а сам предлагает только структуру приложения, общую конфигурацию и т.п. Краткое описание оформлено одним из постов там же: http://www.frontierframework.net/blog/20

Фрагментарное кэширование в MVC веб-фреймворках

Наверняка большинство программистов, работающих с современными веб-фрейворками, реализующими схему MVC, сталкивалось с таким небольшим затруднением: кэширование фрагмента View.

Хорошие фреймворки предлагают инструменты для полного кэширования страниц, фрагментарного, или кэширования экшенов. Недавно я посмотрел 90 выпуск подкаста Railscasts, посвященный именно фрагментарному кэшированию в Ruby on Rails и уважаемый автор решал проблему, как мне показалось, неоптимально.

Опишу ситуацию.
Мы в шаблоне страницы и хотим закэшировать ее часть, например, список новых товаров. Пока все хорошо, мы пользуемся встроенными во фреймворк удобными средствами и в две-три строчки окружаем блок — ура, он кэшируется. Но — чу!, контроллер-то об этом ничего не знает и продолжает выполнять свою работу по подготовке данных для View. Естественно, ведь проверка наличия кэша осуществляется уже из шаблона, а контроллер к тому моменту отработал.


( Читать дальше )

Собеседования на должность PHP разработчика


Довольно часто (постоянно) мне приходиться проводить собеседование людей желающих устроитсья в мой отдел на должность «junior PHP developer» и «PHP developer». И, с завидным постоянством, я и team-lead отдела задаем одни и те же вопросы...


( Читать дальше )

Стираю языковые барьеры. Бесплатно

Примерно так можно озаглавить вещи, которые я делаю в свободное время вот уже несколько месяцев. После руссификации мануала по CakePHP я занялся переводом на русский язык документации по другому фреймворку.


( Читать дальше )