Category Archives: Programming

Проверка идентичности двух плоских массивов в jQuery

arraysAreEqual: function( Arr1, Arr2 ) { var equal = ( Arr1.length == Arr2.length ); if ( equal ) { $.each( Arr1, function ( key, val ) { if ( $.inArray( val, Arr2 ) == -1 ) { equal = false; return false; } } ); } return equal; },

Как правильно установить 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.

Контролируемое скачивание (ограничение скорости отдачи файлов)

Наткнулся в сети на интересную статью о том, как ограничить скорость скачивания файлов с сервера. Код на Python (Django), но если язык не знаком, то в качестве алгоритма почитать тоже полезно. Ссылка.

Трассировка PHP-приложений с помощью xdebug

Вот достаточно подробная статья на эту тему. В принципе достаточно написать xdebug_start_trace(‘<Путь-к файлу>.html’, XDEBUG_TRACE_HTML); … … xdebug_stop_trace();

Greasemonkey-скрипт для Redmine

Redmine, конечно, настраиваемый и гибкий, но иногда очень не удобный. Захотелось сделать кнопочку «Взять в работу», которая появлялась бы на странице тикета. Делать плагин долго, просто подключить яваскрипт в шаблон — плохо, проблемы при обновлении Redmine. В итоге решил написать Greasemonkey-скрипт: // ==UserScript== // @name Redmine Ticket // @namespace hc // @include [урл к Redmine]/issues/* …

Read more

Как написать плагин для jQuery

Перепечатка статьи, ссылка на оригинал в конце статьи. За последнее время было много просьб рассказать о том, как написать свой собственный плагин к jQuery. Идя навстречу пожеланиям трудящихся бескрайних полей Интернета – выполняю эти просьбы… Для того, чтобы лучше понять принципы, поставим себе какую-нибудь несложную задачу, имеющую хотя бы минимальную практическую пользу. Давайте вместе напишем …

Read more

Полезные вещи в phpUnit

Ниже приведён код теста

PostgreSQL EXPLAIN

При работе с MySql’овским EXPLAIN’ОМ всё просто (а может просто привычно). Postgres предоставляет больше информации, но с ним сложнее разобраться. Далее — вольный перевод статьи про PostgreSQL EXPLAIN (ссылка на оригинал в конце статьи).

Генерация моделей в 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. Нигде толком не написано, отчего она возникает. Возникает …

Read more

Внутренняя переадресация в 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 …

Read more