ЕВГЕНИЙ ВОЯКИН
Zend Studio 4.0 – новая версия, новые возможности
Данный обзор посвящен рассмотрению функциональных возможностей одной из наиболее продвинутых интегрированных сред разработки приложений на языке PHP – Zend Studio версии 4.0, созданной самими разработчиками языка – компанией Zend. В январе 2005 года Zend объявила о доступности бета-версии Zend Studio четвертого поколения.
Zend Studio представляет собой среду разработки, отладки и оптимизации программного кода PHP-приложений. Как гласит краткая аннотация в справочной системе пакета, полностью интегрированный интерфейс предназначен упростить процесс разработки приложений как для начинающих, так и для опытных пользователей.
Новая, четвертая версия отличается от предыдущей целым рядом улучшений. В пакет добавлена возможность работы с базами данных напрямую из интерфейса среды. Поддерживаются такие наиболее популярные БД, как MySQL, PostgreSQL, Oracle, IBM DB2, MS SQL Server, SQLite. Теперь в распоряжении разработчика библиотека шаблонов программных фрагментов, средство документирования.
Рассмотрим, что же представляет собой Zend Studio, и что нового появилось в 4 версии. Программный пакет Zend Studio включает в себя два приложения – Zend Studio Server и Zend Studio Client. Zend Studio Server – это отладчик, управляемый средой Zend Studio Client и контролирующий процесс выполнения PHP-кода. При выполнении кода управляющие команды, например информация о точках останова (breakpoints), поступают от Zend Studio Client в Server. Последний, в свою очередь, управляет интерпретатором, выполняющим команды языка PHP. Кроме того, в интерпретаторе накапливается информация о работе программы, такая как результат выполнения, или вывод (output), значения переменных, стека и данные о возникших ошибках. Zend Studio Server отдает собранную информацию из интерпретатора в Client, где она отображается в соответствующих окнах. Пользовательский интерфейс Zend Studio Server представляет собой веб-оснастку, которая позволяет просматривать и изменять параметры настройки интерпретатора языка PHP и опции среды Zend. Пример вида оснастки приведен на рис.1.
Рисунок 1. Пользовательский интерфейс Zend Studio Server
Разработка программ пользователем осуществляется в Zend Studio Client. Наиболее существенные возможности этой среды включают в себя:
- управление процессом исполнения кода с возможностью просмотра значений используемых переменных, стека, ошибок и результата работы;
- средство анализа кода, позволяющее, например, отследить фрагменты кода, которые никогда не будут выполнены, или выявить объявленные, но неиспользуемые переменные;
- работу с базами данных, выполнение запросов напрямую в интерфейсе среды (появилось в версии 4.0);
- отслеживание версий (CVS);
- автонабор кода со словарем, включающим лексемы языков PHP, HTML, переменные, переменные в составе классов и т. п.;
- библиотеку шаблонов программного кода (в терминологии Zend Studio называемых Snippets). Библиотека постоянно обновляется, возможна автоматическая загрузка более новых шаблонов из сети или создание своих шаблонов (появилось в версии 4.0);
- выделение различных лексических элементов кода разными цветами, выравнивание текста при вводе;
- настраиваемые горячие клавиши на наиболее часто используемые задачи;
- справочную систему.
Пользовательский интерфейс «клиентской» части пакета (см. рис. 2) существенно изменился по сравнению с предыдущей версией. Подавляющая часть интерфейса среды переведена на русский язык. Работать с полноцветными кнопками панели инструментов удобно, обозначения понятны и просты. Число «окошек» в рамках рабочего поля среды увеличилось, однако управление их отображением на экране не вызывает затруднений: по периметру главного окна среды разработки идет дополнительная «панель инструментов», отвечающая за отображение на экране тех или иных рабочих зон среды: окна вывода, окно сообщений отладки и т. п.
Рисунок 2. Zend Studio Client
Рабочее поле среды состоит из 7 окон, каждое из которых может менять отображаемую информацию в зависимости от необходимости. Все окна, кроме главного окна редактора, могут быть скрыты. Окно «Менеджера файлов» служит для осуществления навигации: 3 режима, в которых оно может «работать», позволяют перемещаться по дереву каталогов на локальных и удаленных дисках (посредством подключения по FTP), по файлам проекта или дереву баз данных. (см. рис. 3). Окно «Инспекторы» предназначено для просмотра иерархической структуры файла проекта, включений в него других файлов, объявленных переменных, классов. В окне «Сообщения» можно просмотреть информацию о запуске/окончании отладки, предупреждения об ошибках интерпретации. В этом же окне выводятся сообщения встроенной системы документирования и оптимизатора кода (см. рис. 6). В окне отладчика во время процедуры отладки кода отображается текущее значение переменных, включая глобальные (см. рис 2.), состояние стека и т. д.
Результат интерпретации PHP-сценария помещается в окно «Вывод». Данная функция неоценима при пошаговой отладке кода, так как сразу же позволяет отследить процесс интерпретации и быстро обнаружить логические ошибки. Выбрав пункт в контекстном меню окна, можно открыть результат выполнения сценария в окне браузера.
Как следует из анонса версии, работа с базами данных (БД) является одной из наиболее существенных особенностей, отличающих 4-ю версию от предыдущих. Для работы с БД некоторые окна среды имеют соответствующие режимы, названные «SQL». Добавление подключения к серверу баз данных осуществляется в «менеджере файлов» в режиме SQL через контекстное меню. В этом же окне выполняется выбор конкретной базы сервера и навигация по ней. Запросы набираются в отдельном окне «SQL», а результат их выполнения может быть просмотрен в основном окне редактора, также переключенном в режим SQL (см. рис. 3).
Рисунок 3. Работа с базами данных в Zend Studio Client
Однако при анализе средств для работы с БД складывается ощущение некой незаконченности данного функционала – по сути, все эти средства представляют собой лишь интерфейс для просмотра данных и выполнения SQL-команд. Более интересным был бы какой-либо функционал, который позволял бы строить обращения к базам данных на языке PHP путем, к примеру, перетаскивания SQL-запросов напрямую в окно редактора кода, с автоматическим превращением такого запроса в реализующий его PHP-код.
К недостаткам также можно отнести и то, что в программе отсутствует поддержка русского языка для данных в БД.
Как и в предыдущих версиях пакета, разработка программ осуществляется в режиме текстового редактора. Основное окно редактора, находящееся в центре рабочей области среды, представляет собой многофункциональный текстовый редактор, довольно удобный в использовании. Вводимые лексемы языка PHP (переменные, строковые и числовые константы, операторы и прочее) автоматически выделяются с помощью различных цветовых схем, которые разработчик может настроить по своему усмотрению. Все строки кода программ нумеруются автоматически, что существенно облегчает навигацию по файлам проекта при получении сообщения об ошибке: все подобные сообщения содержат номер строки. Редактор обладает возможностью автоматического выравнивания набранного программного кода с помощью отступов, что позволяет сделать код более читаемым.
Заметно улучшена система предиктивного набора текста: при вводе первых букв названия какой-либо функции появляется выпадающий список функций языка PHP, начинающихся с этих букв. При выборе функции появляется окно-подсказка с кратким описанием этой функции и ее параметров.
Рисунок 4. Предиктивный набор текста
В словарь этой системы также входят глобальные и локальные переменные, константы, теги. Появившаяся в этой версии система шаблонов программного кода позволяет включать в проект функции из библиотеки шаблонов, написанной другими программистами. Библиотека постоянно обновляется, возможна загрузка новых шаблонов из Интернета. Кроме того, разработчик может создавать собственные шаблоны функций или просто участков кода под свои нужды. К недостаткам этой системы следует отнести некоторую ее «скрытость» от разработчика – по сравнению с поиском пункта в главном меню среды более удобным был бы вызов библиотеки напрямую с помощью кнопки на панели инструментов.
Zend Studio Client поддерживает разработку как отдельных файлов на PHP, так и проектов, состоящих из нескольких файлов. Файлы, входящие в проект, отображаются в окне «менеджера файлов». При работе с многофайловыми проектами полезной может оказаться функция, позволяющая отследить доступность всех файлов, используемых в проекте (в случае включения в один из файлов других директивами require и т. п.).
Отдельного внимания заслуживает функция анализа программного кода. Данная операция позволяет выявить некоторые логические ошибки, допущенные разработчиком при программировании, например найти фрагменты кода, которые никогда не будут выполнены. Так, анализ фрагмента программы, содержащей такой текст:
16 if (0<-1){
17 for ($i=0; $i
18 print(chr(ord($source[$i]) / 2));
19 }
20 }
приведет к предупреждающему сообщению (см. рис. 6) анализатора: «Some code in the function cannot be reached. This part of the code is useless.» («Некоторые участки кода в функции никогда не будут выполнены. Эти участки бесполезны»).
К сожалению, несмотря на локализацию интерфейса программы, рассмотренная версия имеет справочную систему на английском языке. Кроме того, справочная система еще явно «не обновлена» до четвертой версии. Вероятно, это связано именно с тем, что рассмотренная версия является бета-версией продукта. Отсутствует описание наиболее существенных нововведений, появившихся в новом пакете – работы с базами данных, средства документирования «PHPDocumenter». Ввиду полного отсутствия информации по последнему разобраться с принципом его работы автору так и не удалось.
В заключение данного обзора хочется сказать, что Zend Studio 4.0 явно может претендовать на звание одного из наиболее серьезных средств разработки на PHP. Новая среда существенно отличается от предыдущей удобством интерфейса, его локализацией. Тенденция встраивания в среду интерфейсов к смежным сферам разработки, с которыми сталкивается программист при написании кода – базам данных, документации, – доказывает, что компания Zend стремится вывести процесс разработки приложений на языке PHP на качественно более высокий уровень интеграции.
Рисунок 5. Отслеживание целостности проекта
Рисунок 6. Анализатор кода