четверг, 17 сентября 2009 г.

Сборка KDevelop 4 с PHP-плагином в OpenSUSE

Когда я пользовался KDE3 редактор Quanta Plus был моим основным средством разработки. Но с переходом на KDE4 я обнаружил, что эта замечательная программа так и не была портирована на новую версию рабочего окружения. Можно было бы пользоваться старой версией, но решил попробовать новый Kate и так на нем и остался продолжая следить за развитием Quanta. И до недавнего времени все было очень печально.

Но совершенно случайно, читая новости по новой версии KDevelop, наткнулся на запись в блоге о том, что ведется разработка PHP-плагина для этой IDE и, вроде как, он уже достаточно стабилен для того, чтобы попробовать. И я решил посмотреть можно ли пользоваться тем, что уже есть.

Поскольку у меня стоит OpenSUSE 11.0, то и инструкция будет даваться именно для него, но сборка в других дистрибутивах не должна сильно отличаться.

Установка зависимостей

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

  • libkde4-devel,
  • kdebase4-workspace-devel,
  • boost1_36-devel
  • subversion,
  • subversion-devel

Установка kdevelop4 и kdevplatform

На следующем шаге установим платформу для разработки kdevplatform и саму IDE. Все манипуляции будем производить в каталоге ~/build/kdevelop4:

mkdir -p ~/build/kdevelop4/
cd ~/build/kdevelop4/

Загружаем последнюю версию платформы из SVN:

svn co svn://anonsvn.kde.org/home/kde/trunk/extragear/sdk/kdevplatform

Создаем каталог для сборки:

cd kdevplatform
mkdir _build
cd _build

Собираем платформу:

cmake ../ -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix`
make

И устанавливаем ее:

su -c "make install && /sbin/ldconfig"

Аналогичным образом собираем и устанавливаем KDevelop:

cd ~/build/kdevelop4/
svn co svn://anonsvn.kde.org/home/kde/trunk/extragear/sdk/kdevelop
cd kdevelop
mkdir _build
cd _build
cmake ../ -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix`
make
su -c "make install && /sbin/ldconfig"

Сборка и установка плагина для поддержки PHP и документации по PHP

Сборка плагина практически ничем не отличается:

cd ~/build/kdevelop4
svn co svn://anonsvn.kde.org/home/kde/trunk/extragear/sdk/kdevelop-plugins/php
cd php
mkdir _build
cd _build
cmake ../ -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix`
make
su -c "make install && /sbin/ldconfig"

Единственное отличие — необходимо после успешной установки выполнить

kbuildsycoca4

иначе поддержка PHP в KDevelop не появится.

И повторяем для документации:

cd ~/build/kdevelop4
svn co svn://anonsvn.kde.org/home/kde/trunk/extragear/sdk/kdevelop-plugins/php-docs
cd php-docs
mkdir _build
cd _build
cmake ../ -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix`
make
su -c "make install && /sbin/ldconfig"

Параметры компиляции

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

Для включения отладочной информации необходимо вызывать cmake с такими параметрами:

cmake ../ -DCMAKE_BUILD_TYPE=debugfull -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix`

Ну и пример строки с оптимизацией под процессор Pentium4:

cmake ../ -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` -DCMAKE_C_FLAGS:STRING="-march=pentium4 -O3 -pipe -fomit-frame-pointer -ffast-math -funroll-loops"

Что имеем в результате

Автодополнение

Автодополнение в KDevelop работает в двух режимах: перебор слов уже набранных в текущем документе и автодополнение имен переменных, методов, классов и свойств. Если первый режим работает и в Kate, то второй делает KDevelop удобным инструментом для разработки на PHP. Причем плагин знает обо всех классах, используемых в проекте и следит за типами значений, присваиваемых переменным.

Кроме того, автодополнение работает и со стандартными функциями и классами PHP. Причем выводит и их описание и перечень аргументов. Кстати, если в коде использоваться комментарии в стиле PHPDoc, то автодополнение пользовательских классов и функций также будет несколько расширенным ;)

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

KDevelop автоматически проверяет код на корректность и подчеркивает ошибки. Использование не объявленных переменных, констант и незакрытые скобки теперь видно прямо в окне редактора.

Интеграция с системами контроля версий

Для каждого проекта можно указать какую систему контроля версий он использует и KDevelop проедоставляет визуальный интерфейс, доступный по контекстному меню проекта. Я пробовал работать с SVN, но реализация оказалась достаточно сырой. Впрочем, это не вина PHP-плагина.

Автодополнение путей в include и required

Для include и required выводится подсказка по существующим каталогам. К сожалению, в настоящий момент не поддерживается задание части пути с помощью переменной, но авторы обещают что-нибудь придумать по этому поводу.

Библиотека классов проекта

Для всего проекта создается библиотека классов с перечнем всех свойств и методов. В библиотеке реализован быстрый поиск и переход в один клик на объявление необходимого метода или свойства.

Подытожим

PHP-плагин для KDevelop уже может многое, но его развитие не останавливается и разработчики будут рады багрепортам и дельным предложениям по развитию столь полезного для веб-разработчика продукта. Связываться с ними можно по IRC (irc://irc.freenode.net/#kdevelop), искать пользователей milian или leinir. Или же непосредственно на сайте.

Ссылки

http://milianw.de/blog/news-for-php-in-kdevelop
http://milianw.de/blog/progress-in-non-cpp-kdevelop4-land
http://milianw.de/blog/building-kdevplatform-kdevelop-and-the-php-plugin-from-svn
irc://irc.freenode.net/#kdevelop

Комментариев нет: