Ubuntu, KnpConsoleAutocompleteBundle и php 5.3.10

Есть такой клёвый бандл KnpConsoleAutocompleteBundle от KnpLabs, суть которого заключается в автоподстановке команд для скрипта консоли Symfony2.

Т.е. набираешь “./app/console doc” жмешь [Tab] и получаешь “./console doctrine:”. Жмешь [Tab] ещё два раза и получаешь все варианты комманд:

$ ./app/console doctrine:
doctrine:cache:clear-metadata        doctrine:generate:form
doctrine:cache:clear-query           doctrine:mapping:convert
doctrine:cache:clear-result          doctrine:mapping:import
doctrine:database:create             doctrine:mapping:info
doctrine:database:drop               doctrine:query:dql
doctrine:ensure-production-settings  doctrine:query:sql
doctrine:generate:crud               doctrine:schema:create
doctrine:generate:entities           doctrine:schema:drop
doctrine:generate:entity             doctrine:schema:update

Вобщем удобно очень :).

Одна проблема — не работает под Ubuntu )). Есть даже тикет соотвествующий от Люиса Кордовы “does not work on ubuntu debian“. В тексте issue он дает ссылку на translate моей темы “проблема с ConsoleAutocompleteBundle” с форума zf.ru.

Так к чему я это пишу? Прошел почти год с того момента как я столкнулся с этой проблемой. Ну, думаю, должны были за это время все разрулить и баг пофиксить. Разворачиваю тестовое приложение, настраиваю, ставлю бандл, настраиваю, пробую автокомплит и разочаровываюсь — проблема осталась (((.

Показал ссылку на обсуждение бага Жене (наш админ) и он посоветовал мне установить php 5.3.10 с ppa. И вот когда я его поставил, то все заработало! Ура 🙂

PS. На всякий случаю запишу, что ставил я его вот так:

$ sudo add-apt-repository ppa:nginx/php5.3
$ sudo aptitude update
$ sudo aptitude upgrade --full-resolver

iForum 2011

1го апреля участвовал в круглом столе “Битва фреймворков”, который проходил в рамках конференции iForum 2011. Я отдувался за PHP и фреймворки Zend Framework / Symfony2. Сегодня смотрел видеозапись — вроде нормально получилось :).

Видео под катом Continue reading

Поговоримо про Zend_Navigation

Вихід ZF 1.8 порадував нас низкою нових, корисних компонентів. У цій статті я хочу розповісти про практику використання Zend_Navigation для побудови простого меню сайту, карти сайту і хлібних крихт. Особливо хочеться звернути увагу на використання Zend_Navigation в парі з Zend_Acl.
Continue reading

Антиплагіат модуль

Антиплагіат модульДесь з місяць назад в мене замовили скрипт антиплагіат модуля. Спочатку я зробив його по алгоритму схожому на текстброкерівський. Але через кілька днів замовник знайшов програму Advego Plagiatus і захотів такий алгоритм як там…
Continue reading

Zend Framework і фільтр для задання файлові унікального імені

Renames file assigning it a unique nameВ процесі роботи над створенням FOSS двигунця для портфоліо (на основі Zend Framework) в мене виникла потреба задавати завантажуванним на сервер файлам унікальні імена. Для цього я створив фільтр на зразок Zend_Filter_File_Rename, який генерує унікальне ім’я файлу і перейменовує початковий файл.

Код фільтру і приклад його використання ви знайдете одразу під катом.
Continue reading

WinXP, regedit and “Open with…”

Ключ на 36Теорія

Ця стаття про те як у Windows XP можна змінити програму, що за замовчуванням відкриває той чи інший тип файлів. З інструментів знадобиться regedit і F3.

Практика

Минулого тижня NetBeans 6.5 повідключав половину модулів після закачки апдейтів. Я довго з тим не грався, просто скачав з сайту 6.5.1 для php, деінсталював 6.5, видалив з “Documents and Settings” папки налаштувань “.nbi”, “.netbeans”, “.netbeans-registration” (інакше реінстал не допомагав) і встановив 6.5.1.

Після цього файли з розширенням .php перестали за замовчуванням відркриватися в NetBeans. Попереднього разу асоціацію я задавав вручну через “Open with…”. Тепер же NetBeans просто не з’являвся в списку аплікух. Тобто я тикав WinXP носом в його netbeans.exe, тиснув ОК і спостерігав як нічого не відбувалося :).

Continue reading

6-ть способів отримати розширення файлу в PHP

$filename = 'mypic.gif';
 
// 1. The "explode/end" approach
$ext = end(explode('.', $filename));
 
// 2. The "strrchr" approach
$ext = substr(strrchr($filename, '.'), 1);
 
// 3. The "strrpos" approach
$ext = substr($filename, strrpos($filename, '.') + 1);
 
// 4. The "preg_replace" approach
$ext = preg_replace('/^.*\.([^.]+)$/D', '$1', $filename);
 
// 5. The "never use this" approach
//   From: http://php.about.com/od/finishedphp1/qt/file_ext_PHP.htm
$exts = split("[/\\.]", $filename);
$n = count($exts)-1;
$ext = $exts[$n];

Ці 5-ть способів я чисто випадково побачив тут. І 6-й спосіб від мене:

$pathInfo = pathinfo($filename);
$ext = $pathInfo['extension'];

Ну, хто більше :)?

UPD. Можна сказати 6.2 від KAndy і VadimVoituk:

$ext = pathinfo($filename, PATHINFO_EXTENSION);

Самий класний спосіб :)!

Rotate transparent image в PHP

Жодна тварина в результаті роботи скрипта не постраждала :)От не спиться мені і баста :).
На форумі zf побачив запитання “Як засобами php повернути png з прозорістю так, щоб після повороту прозорість зберігалася?”. Через деякий час знайшов два вирішення цієї задачки.
Continue reading

Як запускати дебаг з браузера? FireFox + NetBeans + xDebug

Що мені дуже подобалося в Zend Studio так це Zend Toolbar. Він давав мені змогу “сухо і комфортно” відлагоджувати скрипт, при цьому передаючи йому необхідні набори вхідних даних. І от якось знадобилася мені щось схоже в NetBeans – а нема :(.

На оф. сайті xDebug я знайшов згадку про плагін для Firefox xDebug helper. В коментарях до плагіну писали, що його можна використовувати для Eclipse та Notepad++. Значить з NetBeans теж повинен працювати. Витративши ще трохи часу я знайшов статтю “Debugging tip: Xdebug Helper in Firefox w/ NetBeans“, в якій все детально розписано.

Якщо коротко, то:
1. Ставимо плагін xDebug helper.
2. Перезапускаємо браузер і заходимо в налаштування плагіну. В полі idekey вказуємо ‘netbeans-xdebug’.
3. В статусбарі браузера з’являється іконка хелпера “Start/stop xDebug session”. По дефолту вона неактивна. Якщо її включити і перезавантажити сторінку, то в NetBeans почнеться дебаг. Єдине що перед цим потрібно стартанути дебаг в самому NetBeans.

Це все :). Юзайте на здоров’я!

UPD. Я бачу люди заходять сюди по запиту “netbeans xdebug“. В такому разі раджу прочитати розділ “Установка и включение отладчика XDebug” з статті “Настройка среды разработки PHP в Windows“.

UPD2. Сьогодні 25 лютого 2010 року і я натрапив на свою ж статтю написану більше року назад :).

Значить, щоб це все працювало в php.ini мають бути прописані наступні налаштування для xdebug:

xdebug.remote_enable=1
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_handler=dbgp