Обновить
128K+

PHP *

Скриптовый язык общего назначения

55,72
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

А так ли нужен static?

Время на прочтение3 мин
Охват и читатели21K
Довольно часто в последнее время читал разные статьи на тему оптимизации, во многих из них писалось о том, что если функция используется как статическая, то с точки зрения оптимизации лучше перед ее объявлением написать модификатор static.
Читать дальше →

Debugging PHP applications with xdebug

Время на прочтение8 мин
Охват и читатели46K
Добро пожаловать на 4 часть повествования о xdebug. Сегодня мы попытаемся разобраться в отладке PHP кода с помощью xdebug. В данной статье мы полагаем, что вы уже давно установили xdebug на вашу систему, если нет первая статья серии опишет вам как это сделать.
Читать дальше →

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

Время на прочтение3 мин
Охват и читатели11K
phpПервую часть читайте здесь.

Теперь приступим к практике. Наиболее показательным примером использования LSB, по-моему, является случай, когда у вас есть набор классов выполняющих похожие действия. В терминах веб-разработки мы часто встречаемся с такими задачами при обращениях к таблицам базы данных, особенно в ORM системах. Все ваши объекты для работы с таблицами будут похожи по сути, но при этом будут иметь собственный функционал ( и, соответственно, свои подклассы).
Читать дальше →

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

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

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

Эхо или печать?

Время на прочтение3 мин
Охват и читатели38K
Вопрос: «Что быстрее — echo или print?» не перестаёт будоражить умы тех, кто считает себя профессиональным программистом на PHP. Руководство пользователя осторожно упоминает об имеющемся различии, но отсылает к статье стороннего авторства; та, в свою очередь, утверждает, что echo быстрее, но не приводит доказательств; трудно найти объективное сравнение, и всё это придаёт проблеме некий мистический ореол, на что клюют многие и многие.

Так не будем же оставаться в стороне и постараемся раз и навсегда разгадать эту загадку!

Читать дальше →

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

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

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

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

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

Время на прочтение4 мин
Охват и читатели58K
Всем доброго времени суток.

Перевод заметки "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 вместо регулярных выражений.

Читать дальше →

Делаем свой webfile

Время на прочтение4 мин
Охват и читатели13K
Отчего-то всегда хотел сделать свой сервис для загрузки файлов. Всевозможные slil/zalil не устраивали своей скоростью. ifolder — обилием рекламы. Пользовался не очень популярным (от этого он ни чуть хуже не становился) сервисом up.spbland.ru. Но это как-то не правильно. И тут я решил написать свой сервис. Не буду вдаваться в подробности и рутину, только концепция.
Читать дальше →

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

Время на прочтение1 мин
Охват и читатели903
В общем, начинаю постепенно выкладывать троды плудов на суд общественности. На www.frwk.net появились уже трак проекта и блог, куда я мало-помалу буду постить информацию о фреймворке.
Вкратце: Frontier предоставляет связи между компонентами, легко помогает подключать различные прикладные библиотеки, а сам предлагает только структуру приложения, общую конфигурацию и т.п. Краткое описание оформлено одним из постов там же: www.frontierframework.net/blog/2008/03/29/the-travel-begins

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

Буду рад всяческим комментам.

По просьбе: www.frontierframework.net/release/hello.tar.gz — это минимальное приложение с комментариями на русском.

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

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

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

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

Ближайшие события

PHP 5.3. Что нас ожидает?

Время на прочтение1 мин
Охват и читатели1.2K
Два дня назад один из разработчиков PHP Дмитрий Стогов (dmitry+at+zend+dot+com) опубликовал результаты тестов новой версии php 5.3

Он не описывает какие именно тесты он производил, но статистика впечатляет
Drupal 20% быстрее
Qdig 2% быстрее
typo3 30% быстрее
wordpress 15% быстрее
xoops 10% быстрее

PHP 5.3 станет быстрее (http://news.php.net/php.internals/36484)

CakePHP: Добавляем «каменты» в блог.

Время на прочтение4 мин
Охват и читатели2.1K
<p />Итак, мы решили начать программировать «по понятиям» и наконец разобраться с каким-нибудь фреймворком.
<p />Перед нами встаёт мучительный выбор, какой же фреймворк для этого использовать. Для этого можно найти кучу статей, обзоров, сравнительных анализов скорости, производительности, удобства использования и установки, а можно просто набрать в гугле «php framework» и кликнуть
Читать дальше →

Несколько полезных сайтов-каталогов со скриптами

Время на прочтение1 мин
Охват и читатели3.4K
Поискал ссылки поиском по хабру, не нашел.

Итак, прежде чем изобретать велосипед, у разработчика часто возникает необходимость посмотреть, какие же продукты уже были реализованы.
Кто-то начинает гуглить — что же, наверное, это правильно.

Но считаю, что будет полезным также знать некоторые сайты-каталоги скриптов.

Итак, вот они:
www.hotscripts.com
www.planet-source-code.com
php.resourceindex.com
cgi.resourceindex.com
www.scripts.com/php-scripts
www.phpclasses.org
mymans.org/category/php

Посоветуйте систему полнотекстового поиска

Время на прочтение1 мин
Охват и читатели3.8K
Гуглил, нашел много разных вариантов, но ни один не удовлетворял простым условиям:
— Легкость установки. Простота настройки (не более 4х часов с момента начала чтения документации).
— Поддержка русской морфологии. Как плюс — английской.
— Возможность индексации по Веб.
— Выдача результатов по релевантности. Хорошая ранжировка по релевантности

Risearch.org — хорошая, полная версия на Перле и платая. MnogoSearch — очень громоздкая в настройке, мне столько опций не нужно. В ряде других вариантов — простые стеммеры, либо вообще отсутсвие любой поддержки русского языка. Ладно, пусть будет даже стеммер, но у результатов должна быть высокая релевантность.

Сессии — всегда ли они нужны?

Время на прочтение5 мин
Охват и читатели18K
Хочу еще раз поднять тему использования сессий для аутентификации пользователей. Надеюсь услышать критику приведенного в статье метода с высоты вашего опыта.

Читать дальше →

Zend Framework 1.5.0 Release отличия от RC3

Время на прочтение1 мин
Охват и читатели639
Несколько дней назад скачал ZF 1.5.0 RC3 и собирался его использовать в живом проекте, несмотря на RC3.
Естесвенно вчерашняя новость о релизе ZF очень порадовала. И перед тем как заменить файлы я решил посмотреть, чем собсвтенно релиз отличается от релиз кандидат (я думал, что особо ничем), который я уже закинул в проект.
В общем сделал диф, и так как на Хабре уже стал вопрос о отличиях релиза от кандидата, то решил запостить этот диф. Изменилась регулярка и версия.
Команда
diff -r ZendFramework-1.5.0/library/Zend/ ZendFramework-1.5.0RC3/library/Zend/ > zend_diff
Результат ниже.

Читать дальше →