Обновить
64K+

PHP *

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

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

Релиз PHP 5.2.12

Время на прочтение2 мин
Охват и читатели1.5K
Команда разработчиков PHP анонсировала выход PHP 5.2.12. Этот релиз делает акцент на улучшении надежности PHP ветки 5.2.X, добавляя в нее больше 60 исправлений, некоторые из которых связаны с безопасностью. Всем пользователям PHP ветки 5.2 рекомендуется перейти на эту версию.
Читать дальше →

Пишем свою реализацию сессий для обработки мертвой сессии перед зачисткой

Время на прочтение3 мин
Охват и читатели5.3K
Мой первый хабратопик, надеюсь, что не последний.

Представим ситуацию: есть корзина покупок на сайте, при добавлении в корзину мы ставим на товар т.н. lock, исключающий его из списка доступных для покупки товаров. Когда клиент удаляет товар из корзины — lock снимается. Но что делать, если пользователь просто закрыл браузер? В таком случае сессия будет удалена сборщиком мусора, а локи так и останутся.

Когда я столкнулся с такой ситуацией, первое что мне пришло в голову — хранить локи и дату доступа в БД и периодически дергать её кроном. Но костыльность этого решения очевидна. А вот ещё бред, с которым я столкнулся при решении сабжа: для сериализации и десереализации сессий используются функции и формат, отличные от функций serialize и unserialize. Приходится делать велосипеды для ансериализации сессии.

Ближе к телу: как решил проблему я…
Читать дальше →

Профилирование PHP-кода

Время на прочтение3 мин
Охват и читатели37K
Профилирование PHP-кода

Рано или поздно каждый из нас сталкивается с унаследованным кодом и его оптимизацией. Дебаггер и профилировшик в такой ситуации — лучшие помощники программиста. У тех кто работает с PHP, благодаря Дерику Ретансу (Derick Rethans) есть хороший инструмент — xDebug. Информации касательно xDebug много даже в рунете, поэтому речь в этой статье пойдет не о нем.

Наткнувшись на упоминание о профилировщике для PHP я сразу подумал об xDebug ( о проприетарных инструментах от Zend я давно уже успел позабыть ), но на этот раз ошибся — речь пойдет об XHProf.
XHProf

Этот профилировшик был разработан специально для Facebook, а исходный код его был открыт в марте 2009 года.
Читать дальше →

Magento. Пишем свой модуль. Добавляем CAPTCHA и дополнительные поля в регистрацию

Время на прочтение11 мин
Охват и читатели17K
Хочу поделится опытом программирования модулей для Magento. Большое спасибо пользователю jeje за приглашение.
В статье подробно описано создание модуля, реализующего допольнительные функции регистрации клиентов. Цели — дать представление о разработке под Magento на конкретном примере от начала до конца, показать основные подходы, организацию кода, указать на некоторые особенности. Статья ориентирована скорее на новичков, но и знакомые с Magento могут вынести что-то полезное для себя. Конечно в одной статье всего описать невозможно, но если тема окажется востребованной, то это может стать началом цикла статей.
Затронуты следующие моменты:
  • создание модуля
  • работа с блоками, шаблонами и разметкой (layout)
  • переопределение контроллера
  • скрипты инсталляции модуля

В результате мы получим регистрацию с проверкой CAPTCHA, полем выбора группы и сохранением кода приглашения.

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

phpUnderControl 0.5.0

Время на прочтение3 мин
Охват и читатели2.3K
phpUnderControl нацелен упростить интеграцию CruiseControl и PHP сделав ее как можно проще. Он объединяет лучшие инструменты в сочетании с простой установкой. Так же позволяет просматривать отчеты от РНРunit, PHP_CodeSniffer и PHPDocumentor. ©

Если ваш опыт работы с PHP менее года или же если вы при отладке программ используете var_dump() / printr() и считаете что это единственно верный вариант — проходите мимо, все оскорбленные могут смело идти прямо в профиль и вымещать злобу на карме. Если вы действительно хотите узнать что это такое и для чего это нужно, то советую начать с установки phpUnderControl по этой статье желательно не на Windows платформе и параллельного изучения соответствующей статьи. Надеюсь что в ближайшем будущем на PHP будут создаваться более качественные и технологичные разработки благодаря популяризации современных методов разработки ПО.

После довольно продолжительного времени автор phpUnderControl выпустил очередную версию 0.5.0. Кроме незначительных изменений, исправлений и улучшений в этой версии содержится одна новая важная особенность: PHP_CodeBrowser (обзор на англ.).

phpUnderControl 0.5.0

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

SignalsyMQ — простая и быстрая очередь сообщений на PHP+Redis (и немножко Zend Framework)

Время на прочтение10 мин
Охват и читатели8.3K

Приветствую читателей. Сейчас я веду разработку собственного фреймворка, основанного, в противовес главенствующей сейчас модели MVC, на базе сигнальной архитектуры (signal/slot). Пока он проходит боевую обкатку в нашем стартапе, и за это время я понял, что просто библиотеки мало — реальные задачи и виденье будущего показывает, что необходим разный функционал, но объединенный одной темой — обработка и доставка информации множеству клиентов в реальном времени (да, в чем-то схоже с Comet-ом, он там тоже есть). Поэтому решено было попробовать реализовать основной компонент — очередь сообщений, которая бы стала основной для следующих проектов, быстрой, гибкой и масштабируемой.

Что получилось? Альфа-версия SignalsyMQ — очередь сообщений на базе PHP/Redis/Zend Framework.
Читать дальше →

Отвёртка для выражений

Время на прочтение5 мин
Охват и читатели3.4K
Область применения разбора математических выражений представить не сложно — это и всевозможные парсеры SQL-запросов, и обработчики формул, вводимых пользователем (то же построение графиков или фильтры к БД) — вплоть до создания собственных языков (намеренно не пишу слово «программирования», т.к. зачастую это языки описания данных и иже с ними).

Возможно, я не прав, но я не сумел найти на просторах сети более или менее юзабельный парсер выражений для PHP — и, как наверное уже привыкли те, кто периодически читает мои статьи, я отправился реализовывать это дело своими силами, т.е. изобретать велосипед. :^)

Результат моих потуг вы можете обнаружить здесь. В архиве вы найдёте скрипты, необходимые для функционирования библиотеки, и пример её работы (sample.php). Библиотека собрана как standalone.

Но, я полагаю, интересно было бы разобраться, что там к чему.

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

PHP closures и передача аргументов по ссылке

Время на прочтение8 мин
Охват и читатели4.2K
Ради интереса я решил сделать механизм замыканий (closures) на PHP. Я знаю, что в PHP 5.3 такой механизм есть, поэтому подчёркиваю — чисто из академического интереса. И моя любознательность дала (по крайней мере, для меня — кто-то с этим уже мог иметь дело) свои плоды — помимо собственно замыканий я получил интересный метод передачи аргументов.

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

Иной — PHPTAL

Время на прочтение7 мин
Охват и читатели1.8K
Для описания этого очень мощного и одновременно лаконичного шаблонизатора просто скопирую текст из мана
«PHPTAL is an implementation of the excellent Zope Page Template (ZPT) system for PHP. PHPTAL supports TAL, METAL, I18N namespaces» и «PHPTALES is the equivalent of TALES, the Template Attribute Language Expression Syntax. It defines how XML attribute values are handled»

Предлагается по LGPL лицензии тут http://phptal.org/.

Я делаю шаблоны на PHPTAL уже около года и считаю его «феерическим» :). В коде есть пара моих патчей, поэтому я знаю тему изнутри.

Далее я сделаю обзорную статью из которой вы точно поймете что я не писатель и почему всячески противился просьбам хабражителей «раскрыть тему» ну и надеюсь хоть чуть-чуть популяризирую данный шедевр.

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

Вышел SmartyPDT 0.9.0

Время на прочтение1 мин
Охват и читатели979
Ну наконец-то таки свершилось… для Zend 7.1, Eclipse последних версий и для Aptana 2.0 — вышел замечательный (и единственный) плагин подсветки синтаксиса SmartyPDT v.0.9.0.

Процесс установки:

1. Help -> Install New Software
2. Жмем кнопку «Add».., жмем кнопку Archive.., выбираем скачанный .zip-архив;
(!!!) Обязательно снимаем галочку на «Group items by category»;
И у нас появляется в списке выбор «Smarty Feature»
Далее по аналогии «next-next-finish».

Кричим «Ура!», и дальше продолжаем работать с повышенным комфортом.

Текст любой ценой: PPT. Дубль второй

Время на прочтение1 мин
Охват и читатели1.5K
Недавно я анонсировал свой вариант чтения презентаций PowerPoint с помощью чистого PHP. Тогда я с сожалением отметил, что класс сырой и нуждается в доработке. Долго ли, коротко ли, но ошибки были найдены — теперь файлы читаются заметно лучше, без всякой грязи. Надеюсь, вам пригодятся мои наработки.
Читать дальше →

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

прикручиваем плагины от Idea к WebIde

Время на прочтение2 мин
Охват и читатели995
Сегодня успешно закончив написание одного маленького, но очень полезного лично для меня плагина к IDEA, расстроился из-за невозможности прикрутить его к WebIDE, хотя в Idea 7/8/9 полет нормальный.
И вот, взрустнув и занявшись сравнительным анализом «старых» и «новых/кошерных» плагинов, обнаружил способ прикрутить к JetBrains WebIDE почти любой плагин от IDEA, коим и спешу поделиться :)
Читать дальше →

Поиск по сайту на основе Yandex.XML

Время на прочтение3 мин
Охват и читатели14K
Почему-то вебмастера ленятся сделать нормальный поиск по своему сайту. Особенно это касается высокопосещаемых сайтов, где качественный поиск был бы очень удобен для рядового пользователя.

Чаще всего прибегают к готовому решению от Google, с помощью которого можно еще и подзаработать на контекстной рекламе. Но для рунета я бы посоветовал сделать поиск при помощи сервиса Yandex.XML, потому что такой поиск больше адаптирован под морфологию русского языка. К тому же вы можете получить шанс получить самые жирные биды для контекста, если будете использовать поисковый директ.

В этом посте я хочу подробно показать вам, что подобный поиск организовать совсем не сложно. Это займет всего несколько минут и выльется в десяток строк на PHP.
Читать дальше →

Текст любой ценой: PPT

Время на прочтение3 мин
Охват и читатели5.3K
Некоторое время назад мы с вами обсуждали получение чистого текста из различных форматов данных: будь то PDF или DOC. В одном из обсуждений был высказано предположение, что при парсинге презентаций PowerPoint я заработаю геморрой или другую страшную болезнь мягкой точки. Что ж, волей судеб мне пришлось доставать текст и из этого «сладенького» формата. Скажу честно, геморрой заработать не удалось, а вот класс для парсинга презентаций вышел.
Читать дальше →

Перевод: Шаблонизаторы в PHP — подведение итогов

Время на прочтение7 мин
Охват и читатели12K
Перевод итога обсуждений поста в блоге Фабиена (Fabien Potencier) на тему PHP шаблонизаторов и Twig.
Читать дальше →

Перевод: Шаблонизаторы в PHP

Время на прочтение8 мин
Охват и читатели51K
Первод статьи, автором которой является Fabien Potencier, ведущий разработчик и идеолог Symfony. Статья поднимает обсуждение о шаблонизаторах PHP в целом и представляет Twig — быстрый и функциональный шаблонизатор.
Читать дальше →

Вышел долгожданный PHP 5.3.1 стабильный релиз

Время на прочтение1 мин
Охват и читатели3.9K
  • Добавлена директива max_file_uploads которая управляет максимальным количеством загружаемых файлов для избежания DDos (атака отказ от обслуживания) через переполнение каталога для временных файлом TMP.
  • Добавлены отсутствующие проверки для exif;
  • Исправлен режим Safe-mode в обход функции tempnam();
  • Исправлен параметр open_basedir в обход функции posix_mkfifo();

Список изменений в PHP 5.3.1

Скачать PHP 5.3.1

Это пока вся информация доступна на php.net этот топик(пост) будет обновлен, как только появится более полная информация

Наша команда разработчиков уже скачала эту версию и установила на внутриофисный сервер для тестирования.

К сожалению на этой версии PHP не работает наш регулярно используемый в разработках фреймворк CodeIgniter, так как была исключена функция для работы с регулярными выражениями (убрали ereg, оставили preg_match).

UPD: Проблема с CodeIgniter снята в CodeIgniter 1.7.2 разработчики фреймворка решили эту проблему и все теперь работает как часы.

Скачать CodeIgniter 1.7.2

Благодарность за информацию хабраюзерам: DenisO и @zzkey

В php5.3.1 проблемы с gettext под Windows (http://bugs.php.net/bug.php?id=49349) Благодарность хабраюзеру: grolse

PHP, MS SQL Server и UTF-8

Время на прочтение1 мин
Охват и читатели16K
По работе столкнулся с задачей настроить систему на работу с Microsoft SQL Server 2008. Система должна поддерживать мультиязычность, как следствие все строковые данные должна хранить в полях типа nvarchar и ntext. Проблема оказалась в том, что php_mssql.dll не умеет работать с этими полями, а для использования PDO и SQL Server Driver for PHP пришлось бы переписать очень много кода.

Решение проблемы оказалось не сложным…
Читать дальше →