Записи с меткой «php»
Паттерн проектирования Прокси (Proxy) на PHP 21.08.2011 PHP, Паттерны проектирования
Перед прочтением ознакомьтесь с введением в паттерны проектирования на PHP, в котором описаны принятые соглашения и понятия. Данная статья дополняется с некоторой периодичностью, так что если вы ее читали ранее, не факт что данные не изменились.
Прокси (Proxy, Заместитель) относиться к классу структурных паттернов. Является суррогатом другого объекта и контролирует доступ к нему. читать дальше»
Вышел PHP 5.4a1 29.06.2011 PHP
Команда разработчиков новую версию PHP, которая включает в себя несколько новых фич и удаление устаревших. Список изменений
- Добавлены Traits
- Добавлена поддержка DTrace
- Улучшена производительность и оптимизирована потребляемая память Zend Engine
- Расширение sqllite перенесено в PECL
Были удалены
- синтаксис break/continue $var
- ini директивы register_globals, allow_call_time_pass_reference и register_long_arrays
- session_is_regisitered(), session_registered() и session_unregister()
Следующая альфа версия должна появится в течении 4 недель
Как закрыть соединение и продолжить выполнение скрипта 08.04.2011 PHP
Порой перед разработчиком встает задача проделать действительно долгую операцию после отображения страницы, как например рассылка почтовых сообщений или обмен данными с удаленным сервером. Можно положить эту задачу на плечи крона, но если это не удобно/медленно/кошерно, приходится выкручиваться и изобретать странные решения. Одним из таких решений является выполнение долгой операции непосредственно после рендеринга страницы, что может подвесить соединение на пару (десятков, сотен) секунд, или, если поступить добросовестно и оборвать соединение, пройдет незаметно для пользователя. Об этом методе сегодня и поговорим.
Если обратится к спецификации HTTP, можно найти пару замечательных заголовков:
Connection: close - говорит браузеру оборвать соединение при достижении конца файла Content-Length: n - устанавливает длину документа
Посмотрим реализацию на PHP
-
(0);
-
(true);
-
-
(); // start buffer
-
-
// out page content
-
"This make take some time, please wait";
-
-
$length = ();
-
-
// magic
-
('Connection: close');
-
("Content-Length: " . $length);
-
("Content-Encoding: none");
-
("Accept-Ranges: bytes");
-
-
();
-
();
-
();
-
-
// background
-
-
"if you see this, i am not working =(";
-
-
//long, long operation
-
-
for ($i = 0; $i <= 100000; $i++) {
-
("me@localhost", "spam", $i);
-
}
Не забывайте про параметр max_execution_time в php.ini, которым ограничено время выполнения вашего скрипта. Content-Encoding установлен в none для того, что бы исключить изменения размера gzip модулями сервера, что приведет к неверной работе. Впрочем это не гарантирует 100% решение проблемы, так что используйте этот трюк с умом.
Встроенный Web сервер в PHP 04.03.2011 PHP
Вчера в rfc попало предложение встроить в интерпретатор PHP собственный WEB сервер, что позволило бы сделать php скрипты более удобными для использования на системах без установленного веб-сервера. Запускать такой сервер предлагают из командной строки:
-
php -S localhost:8000 docroot
а в качестве замены к mod_rewrite использовать:
-
if (('/\.(?:png|jpg|jpeg|gif)$/', $_SERVER["REQUEST_URI"]))
-
return false; // отдаем файл как есть
-
else
-
...
Для желающих, на выложен готовый патч, с помощью которого можно попробовать сие чудо в действии уже сейчас. Судя по положительной реакции разработчиков, можно в скором времени ожидать данную фичу в релизных сборках.
Вышел NetBeans 7 Beta 2 17.02.2011 PHP
Вышла вторая бета версия замечательной IDE. Обо всех внесенных изменениях вы можете почитать на официальном сайте
Что важного появилось для PHP разработчика:
- Поддержка git 1.7.x
- Поддержка HTML 5
- Рефакторинг названий переменных, функций, методов, классов и интерфейсов
- Улучшен механизм определения внешних изменений (родное (нативное) прослушивание файловой системы)
- Улучшена работа с базами данных Oracle
Рефакторинг имен работает просто замечательно. Если в функции поставить курсор на какую-либо переменную, дождаться когда ide подсветит эту переменную, а затем нажать CTRL+R, то случится локальная магия =)
Встроенная поддержка git на порядок лучше плагина nbgit: работает быстрее, показывает текущую ветку, позволяет довольно удобно делать чекауты
Качаем, наслаждаемся
PS: если у вас после обновления интерфейс стал русским, и вам это не нравится, добавьте в ярлык параметр --locale en, чтобы получилось примерно так:

Паттерн проектирования Приспособленец (Flyweight) на PHP 11.02.2011 PHP, Паттерны проектирования

Перед прочтением ознакомьтесь с введением в паттерны проектирования на PHP, в котором описаны принятые соглашения и понятия. Данная статья дополняется с некоторой периодичностью, так что если вы ее читали ранее, не факт что данные не изменились.
Приспособленец (Flyweight) относиться к классу структурных паттернов. Он используется для эффективной поддержки множества мелких объектов. читать дальше»
Паттерн проектирования Фасад (Facade) на PHP 08.01.2011 PHP, Паттерны проектирования

Перед прочтением ознакомьтесь с введением в паттерны проектирования на PHP, в котором описаны принятые соглашения и понятия. Данная статья дополняется с некоторой периодичностью, так что если вы ее читали ранее, не факт что данные не изменились.
Facade (Фасад) относиться к классу структурных паттернов. Представляет собой унифицированный интерфейс вместо набора интерфейсов некоторой подсистемы. Паттерн фасад определяет интерфейс более высокого уровня, который упрощает использование подсистем. читать дальше»
Паттерн проектирования Bridge (Мост) на PHP 02.01.2011 PHP, Паттерны проектирования

Перед прочтением ознакомьтесь с введением в паттерны проектирования на PHP, в котором описаны принятые соглашения и понятия. Данная статья дополняется с некоторой периодичностью, так что если вы ее читали ранее, не факт что данные не изменились.
Bridge (Мост) относиться к классу структурных паттернов. Он используется для отделения абстракции от ее реализации так, чтобы то и другое можно было изменять независимо. читать дальше»
Вышел NetBeans 7.0 beta 19.11.2010 Без рубрики
NetBeans — это интегрированная среда разработки для PHP/C/C++/Java/Python/Ruby/JS/etc. под платформы Windows, Mac, Linux и Solaris с открытым исходным кодом.
Сегодня увидела свет седьмая редакция NetBeans (пока еще beta, но думаю не на долго), предоставляющая поддержку JDK7.
Changelog
- Улучшенная поддержка авто завершения кода для JDK 7
- Упрощенный менеджер для подключения к базе данных Oracle
- Туториал по установке JDBC драйверов
- Поддержка GlassFish 3,1
- Поддержка Maven 3
- Интеграции и различные улучшения JUnit
- Поддержка HTML 5
- Добавлено JSON авто форматирование
- Генерация PHPDoc
- Рефакторинг PHP (безопасное переименовывание и удаление)
- Поддержка псевдонимов (aliases) в PHP 5.3
- Простой импорт проекта для C/C++ из существующих бинарников
- Новый тип проекта для C/C++, который находится на удаленной машине
- Повышение производительности и степени интегрированности с профайлером
- Менее навязчивая проверка на изменение файлов внешними программами (о чудо)
Скачать можно тут:
Введение в MongoDB 26.09.2010 PHP
Не реляционные базы данных все больше набирают популярность, и все чаще их можно встретить в проектах с высокой нагрузкой, как решения для увеличение производительности. В этой статье я попытаюсь раскрыть основы работы с MongoDB через расширение в php. О том как установить эту базу данных и настроить к ней доступ, вы можете прочитать здесь.
Установление соединения
После установки расширения pear, в своем проекте мы можете использовать ряд новых классов, таких как Mongo, MongoDB, MongoCollection, MongoCursor и прочие читать дальше»