Category Archives: php
Организация очередей на PHP
Решили использовать Pheanstalk, который представляет собой PHP-клиента для Beanstalk. Простой, чётко работает, всё построено на иерархии исключений, т.е. легко применять. Всё сводится к следующему: $this->queueManager = new Pheanstalk( ‘127.0.0.1’ ); $this->queueManager->useTube(‘my_jobs_1’)->put( $JobData ); $this->job = $this->queueManager->watch(‘my_jobs_1’)->ignore(‘default’)->reserve( 0 ); // 0 — чтобы не ждать, когда появятся новые джобы (чтобы запускать php-скрипт кроном, а не требовать …
Новое в PHP 5.4 — трейты (traits)
Вкратце: трейт (аналог mixin в Ruby) — возможность в классе использовать функционал нескольких классов в обход традиционного наследования (по-моему, костыль, чтобы не реализовывать множественное наследование). Всё сводится к новой инструкции use внутри класса, при этом класс, функциональность которого нужно подмешивать. объявляется инструкцией trait. trait Singleton { public static function getInstance() { … } } class …
Паттерны проектирования на PHP
http://css.dzone.com/books/practical-php-patterns
Использование Twitter-API в PHP
Есть такая библиотека — twitter-async (лицензия — свободное распространение и использование). Из неё нужно включить в проект файлы EpiCurl EpiOAuth EpiSequence EpiTwitter Далее на twitter.com нужно завести приложение. После успешной регистрации Twitter выдаст полезные данные для oAuth-авторизации, нужны из них два: Consumer key и Consumer secret — это авторизационные данные приложения, их нужно сохранить где-нибудь, …
Как правильно установить xdebug для удобной работы
1. Скачиваем расширение — http://www.xdebug.org/download.php (я качаю ts) и копируем в папку с расширениями php. 2. В php.ini пишем zend_extension_ts = «/php_xdebug.dll» xdebug.remote_enable=1 xdebug.remote_handler=dbgp xdebug.remote_mode=req xdebug.remote_port=9000 xdebug.remote_host=localhost xdebug.idekey=bullgare ;ну или другой ;это для профилирования xdebug.profiler_enable=Off xdebug.profiler_output_dir=»c:\traces» xdebug.profiler_enable_trigger=On xdebug.profiler_output_name = cachegrind.out.%t.%p После перезапуска апача phpinfo будет содержать раздел xdebug.
Трассировка PHP-приложений с помощью xdebug
Вот достаточно подробная статья на эту тему. В принципе достаточно написать xdebug_start_trace(‘<Путь-к файлу>.html’, XDEBUG_TRACE_HTML); … … xdebug_stop_trace();
Полезные вещи в phpUnit
Ниже приведён код теста
Генерация моделей в Symfony 1.4
Я пользуюсь Doctrine. Генерация из созданного ранее файла /config/doctrine/schema.yml состоит из трёх команд: symfony doctrine:build —model symfony doctrine:build —sql symfony doctrine:insert-sql Если изменялись названия моделей, то надо запустить ещё и symfony doctrine:clean-model-files Кстати, при генерации может выводиться ошибка There are no tasks defined in the «doctrine» namespace. Нигде толком не написано, отчего она возникает. Возникает …
Внутренняя переадресация в nginx (красивые урлы)
В апаче есть есть замечательная библиотека — mod_rewrite. При переносе проекта на nginx для сохранения интерфейса и структуры сайта необходимо использовать что-то подобное. Соответствующий модуль для nginx называется ngx_http_rewrite_module. Вот пример использования: location ~ \.php { if ( !-e $request_filename ) { rewrite ^(.+)$ /index.php break; } fastcgi_pass 127.0.0.1:9900; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $fastcgi_script_name; include …
Создание Excel-файла на php
Допустим, есть массив значений $exportData.