Использование программного обеспечения с открытым исходным кодом для проектирования, создания и развертывания Web-сайта для совместной работы, Часть 13: PHP-разработка в Eclipse

Создание, отладка и совместное использование файлов

В данной серии статей группа IBM® Internet Technology Group проектирует, разрабатывает и развертывает экстранет Web-сайт для вымышленной компании International Business Council (IBC), используя набор свободно доступного программного обеспечения. В данной статье мы исследуем, как использовать интегрированную среду разработки Eclipse для создания Web-сайта, особо уделяя внимание поддержке PHP в Eclipse и использованию программы Concurrent Versions System (CVS) для управления версиями.

Элистер Льюис-Боуэн, старший инженер-программист, IBM

Элистер Льюис-Боуэн (Alister Lewis-Bowen) работает старшим инженером-программистом в IBM Internet Technology Group. Он занимается Интернет и web-технологиями как сотрудник IBM UK с 1993. Элистер был переведен в США для работы над Web-сайтами спортивных событий, спонсируемых IBM, а затем как старший Web-мастер ibm.com. В настоящее время он помогает создавать семантические Web-прототипы.



Стефен Эванчик, инженер-программист, IBM

Стефен Эванчик (Stephen Evanchik) работает инженером-программистом в IBM Internet Technology Group. Он принимает участие во многих проектах с открытыми исходными кодами, самым известным из которых является его IBM TrackPoint-драйвер в ядре Linux. Стефен в настоящее время работает с появляющимися семантическими Web-технологиями.



Луис Вайцман, старший инженер-программист, IBM

Луис Вайцман (Louis Weitzman) работает старшим инженером-программистом в IBM Internet Technology Group. В течение 30 лет он работал на стыке дизайна и вычислений. Помогал разрабатывать XML, фрагментированную систему управления содержимым, используемую для ibm.com, а в настоящее время участвует в обеспечении процесса проектирования новых проектов.



06.06.2007

Введение

В данной статье вы узнаете о прототипе процесса разработки PHP-кода, включая создание PHP-файлов, цикл отладки кода и совместное использование файлов членами команды разработки. Этот процесс происходит в контексте интегрированной среды Eclipse и использует функциональные возможности проекта PHP IDE и CVS.

PHP. Широко используемый, универсальный язык сценариев, который особенно подходит для Web-разработки и может быть встроен в HTML.

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

Терминология Eclipse

В третьей и четвертой части данной серии статей вы узнали о том, как установить и настроить интегрированную среду Eclipse для Windows® и Linux® соответственно. Вы должны быть знакомы со следующей терминологией Eclipse:

Подключаемые модули (plug-in)
Компактно спакетированная функциональность, которая может расширять имеющуюся или расширяться другими.
Функциональные возможности (feature)
Набор подключаемых модулей для загрузки и установки (упрощает пакетирование и распространение подключаемых модулей).
Перспективы (perspective)
Конфигурация Eclipse, содержащая несколько видов (views), работающих совместно для поддержки конкретной задачи (имеются перспективы для работы с PHP-кодом, Java™-кодом, CVS и т.д.).
Виды (view)
Вид - это часть оконного фрейма, предоставляющая одну функцию для поддержки задачи перспективы, которой принадлежит (виды обычно предоставляет информацию о проекте, с которым вы работаете, например, менеджеры (explorers), схемы (outlines), консоли (consoles) и т.д.).
Редакторы (editor)
Тип вида, используемого для редактирования содержимого, связанного с определенным типом файлов, например, PHP-редактор, Java-редактор.

На рисунке 1 показана среда Eclipse PHP IDE, которую вы установите и настроите в данной статье для написания и отладки PHP-кода.

Рисунок 1. Редактирование модуля announcements в Eclipse PHP IDE
Рисунок 1. Редактирование модуля announcements в Eclipse PHP IDE

В данной статье вы создадите новый модуль проекта, узнаете, как отладить его и использовать совместно с коллегами по разработке, применяя CVS.

Написание PHP

Во время установки Eclipse вы узнали, как создать проект и импортировать файлы на ваш Web-сайт. При создании пользовательского модуля Announcements вы узнали, как создать новые PHP-файлы.

При написании PHP-кода полезно предоставить документацию по функциям. В процессе PHP-разработки на стадии кодирования помогает phpDocumentor. Это инструментальное средство, написанное на PHP и предназначенное для создания документации непосредственно из PHP-кода, а также внешней документации. Чтобы обеспечить более подробную документацию, добавляется дополнительная разметка для комментирования областей. Также для генерирования документации используются познания в PHP. phpDocumentor генерирует отформатированную вручную документацию, читая ее из DocBlocks - специальных PHP-комментариев. Блоки DocBlocks позволяют разработчику PHP-кода предоставлять соответствующую информацию для документации.

HTML Tidy - это еще одно инструментальное средство, которое может быть полезно при написании HTML-кода. HTML Tidy подчищает HTML-код, находя и исправляя ошибки в разметке. Кроме того, эта программа имеет ограниченную поддержку PHP и XML. Для поиска ошибок полезен также Eclipse, поскольку он выполняет цветовое выделение синтаксиса.


Установка и настройка PHP-отладчика

Существует много способов отладки ваших Drupal-модулей во время их разработки. Методы, использующие var_dump и print_r, прекрасно работают и занимают определенную нишу в процессе тестирования. Однако использование полнофункционального отладчика является мощным средством для понимания того, как работает код, для обнаружения проблем и для решения функциональных задач. В следующем разделе вы узнаете, как установить, настроить и использовать отладчик внутри среды Eclipse.

Выбор отладчика

В третьей и четвертой частях данной серии статей вы узнали, как установить PHPEclipse, функциональную возможность Eclipse, предоставляющую перспективу IDE для разработки основанных на PHP проектов. Если вы используете корректную версию PHP, то можете установить и настроить отладчик DBG на работу внутри Eclipse. Другим вариантом является использование отладчика XDebug.

Третий вариант - это среда PHP-разработки для Eclipse от Zend, которая содержит отладчик Zend (дополнительная информация о проекте этой PHP IDE приведена на сайте Zend или на сайте Eclipse). В оставшейся части данного раздела вы узнаете, как установить, настроить и использовать программу Zend для отладки Drupal-модуля. Мы будем использовать в качестве примера модуль Announcement.

Запрет функциональной возможности PHPEclipse

Если у вас установлен PHPEclipse, вы можете запретить или деинсталлировать эту функциональную возможность. Прежде всего, откройте диалоговое окно Manage Configuration в меню Help > Software Updates > Manage Configuration, как показано на рисунке 2.

Рисунок 2. Открытие диалогового окна Manage Configuration
Рисунок 2. Открытие диалогового окна Manage Configuration

В этом диалоговом окне (рисунок 3) перечислены функциональные возможности (наборы подключаемых модулей) вашей среды Eclipse. Вы должны увидеть в списке возможность PHPEclipse; выберите ее для просмотра дополнительной информации.

Рисунок 3. Подробная информация о функциональной возможности PHPEclipse
Рисунок 3. Подробная информация о функциональной возможности PHPEclipse

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

Установка PHP IDE и отладчика Zend

Прежде всего, установите функциональную возможность PHP IDE. Запустите Eclipse и откройте диалоговое окно Find and Install (Help > Software Updates > Find and Install).

Отметьте флажок Search for new features to install (Поиск новых функциональных возможностей для установки) и нажмите кнопку Next. Для добавление нового сайта обновлений нажмите New Remote Site и введите URL обновления вместе с описанием проекта. На время написания данной статьи URL-адресами обновления, приведенными на страницах проекта Zend или Eclipse PHP IDE, являются http://downloads.zend.com/phpide и http://download.eclipse.org/tools/php/updates/. Добавьте Zend Update URL, как показано на рисунке 4.

Рисунок 4. Добавление Zend Update URL
Рисунок 4. Добавление Zend Update URL

После добавления Update URL убедитесь, что отмечен только один элемент списка PHP IDE, и нажмите кнопку Finish. Eclipse найдет доступные новые функциональные возможности и отобразит диалоговое окно, аналогичное показанному на рисунке 5.

Рисунок 5. Использование URL-адресов обновления для выбора функциональности PHP IDE
Рисунок 5. Использование URL-адресов обновления для выбора функциональности PHP IDE

В данном окне отображаются новые функциональные возможности, доступ к которым возможен по добавленным вами URL. Отметьте обе функциональности - PHP IDE и Zend-отладчик. Нажмите кнопку Finish, и Eclipse попытается установить эти новые компоненты. Затем отобразится диалоговое окно, запрашивающее подтверждение условий лицензирования для этих новых функциональных возможностей. Выберите Accept и нажмите кнопку Next. В следующем диалоговом окне будет отображен список установленных возможностей. Нажмите кнопку Finish для продолжения установки.

Во время загрузки и установки компонентов диалоговое окно с индикатором хода выполнения, показанное на рисунке 6, предоставляет вам возможность выполнить этот процесс в фоновом режиме, продолжая работу в Eclipse.

Рисунок 6. Диалоговое окно с индикатором хода выполнения и кнопкой Run in Background
Рисунок 6. Диалоговое окно с индикатором хода выполнения и кнопкой Run in Background

После установки Eclipse отобразит диалоговое окно, показанное на рисунке 7, для своего перезапуска с целью активировать новые функциональные возможности.

Рисунок 7. Перезапуск Eclipse для активизации установленных функциональных возможностей
Рисунок 7. Перезапуск Eclipse для активизации установленных функциональных возможностей

Новые перспективы PHP IDE

Как показано на рисунке 8, Eclipse теперь будет отображать два новых элемента, перечисленных в диалоговом окне перспектив - PHP и PHP Debug.

Рисунок 8. Новые перспективы PHP IDE
Рисунок 8. Новые перспективы PHP IDE

Пиктограммы перспектив PHP и PHP Debug выглядят немного не так, как пиктограмма перспективы PHPEclipse (здесь не показана), и предоставляют новую схему для PHP-разработки. На рисунке 9 показаны эти новые перспективы.

Рисунок 9. Новая перспектива PHP IDE
Рисунок 9. Новая перспектива PHP IDE

Выберите новую перспективу PHP, просматривая существующий PHP-проект. Вы увидите несколько новых панелей, например, PHP Explorer, PHP Project Outline и PHP Functions. Если панель Outline не отображает каких-либо функций в редактируемом вами PHP-файле, исправить это можно путем переноса вашего проекта.

Перенос существующего проекта PHPEclipse в PHP IDE

Если вы выполняли упражнения третьей или четвертой части данной серии статей, то у вас должен иметься установленный проект PHPEclipse. Для использования преимуществ функциональных возможностей в перспективе PHP IDE, вам потребуется внести некоторые незначительные изменения в ваш файл существующего проекта .project, расположенный в каталоге проекта в рабочем пространстве Eclipse. Это скрытый файл, поэтому вы можете отредактировать его вручную через меню File > Open, либо изменить его вне среды Eclipse в стандартном текстовом редакторе. Этот файл должен выглядеть примерно так, как показано в листинге 1.

Листинг 1. Пример файла проекта, созданного с использованием PHPEclipse
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
	<name>drudal.development</name>
	<comment></comment>
	<projects>
	</projects>
	<buildSpec>
		<buildCommand>
			<name>net.sourceforge.phpeclipse.parserbuilder</name>
			<arguments>
			</arguments>
		</buildCommand>
	</buildSpec>
	<natures>
		<nature>net.sourceforge.phpeclipse.phpnature</nature>
	</natures>
</projectDescription>

В разделах buildSpec и natures этого XML-файла вы увидите ссылки на два класса PHPEclipse. Измените их на классы PHP IDE, как показано в листинге 2.

Листинг 2. Пример файла проекта, созданного с использованием PHP IDE
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
	<name> drudal.development </name>
	<comment></comment>
	<projects>
	</projects>
	<buildSpec>
		<buildCommand>
			<name>org.eclipse.php.core.PhpIncrementalProjectBuilder</name>
			<arguments>
			</arguments>
		</buildCommand>
	</buildSpec>
	<natures>
		<nature>org.eclipse.php.core.PHPNature</nature>
	</natures>
</projectDescription>

Для разрешения цветового выделения текста в файлах .module (и файлах .inc и .engine) вы должны будете изменить параметры Eclipse. Откройте диалоговое окно preferences из меню Window > Preferences. В поле filter в левом верхнем углу введите type и выберите Content Types под General. Выберите PHP Content Type. Вы увидите в списке несколько расширений файлов (.php, .php3, .php4 и т.д.). Выберите Add для добавления *.module в качестве файловой ассоциации (file association). Подробности показаны на рисунке 10.

В диалоговом окне preferences вы можете указать, какой браузер использовать при отладке файла. Под категорией General / Web Browser можно выбрать используемый браузер - внешний или внутренний. Если выбран внешний браузер, то можно указать, какой именно из установленных использовать.

Рисунок 10. Добавление файлового типа *.module для известных типов содержимого и связывание его с типом содержимого PHP
Рисунок 10. Добавление файлового типа *.module для известных типов содержимого и связывание его с типом содержимого PHP

Теперь, после перезапуска Eclipse, ваш PHP-проект может воспользоваться всеми функциональными возможностями PHP IDE, включая панель Outline.

Установка и настройка Zend-отладчика на стороне сервера

Для того чтобы работала перспектива Eclipse PHP Debug как часть установки PHP, должна быть установлена дополнительная часть Zend-отладчика. Внизу страницы проекта Zend PHP IDE, упоминавшегося выше, имеется ссылка на двоичные файлы расширения Zend-отладчика для различных платформ, как показано на рисунке 11.

Рисунок 11. Ссылка на двоичные файлы расширения Zend-отладчика
Рисунок 11. Ссылка на двоичные файлы расширения Zend-отладчика

При нажатии на ссылку отображается список загружаемых файлов для разных платформ, например, ZendDebugger-5.2.1-Windows-i386.zip для Windows XP. Загрузите этот файл и разархивируйте во временный каталог. Следуйте указаниям файла README. Для Windows это означает копирование динамически подключаемой библиотеки (dynamic link library - DLL) в каталог расширений PHP C:\php\ext, созданный в третьей части данной серии статей, и добавление в конфигурационный файл php.ini дополнительных строк, как показано в листинге 3.

Листинг 3. Дополнительные строки в конфигурационном файле php.ini
zend_extension_ts=c:\php\ZendDebugger.dll.
zend_debugger.allowed_hosts=localhost
zend_debugger.expose_remotely=always

Описание остальных директив приведено в core php.ini directives.

Для разрешения нового расширения обычно требуется перезапуск Apache.


Отладка PHP

Теперь, когда все части PHP IDE и Zend-отладчика находятся на своих местах, можно настроить отладочную сессию, используя текущий Drupal-проект в Eclipse. Для того чтобы можно было увидеть работу отладчика, необходимо установить точку останова (breakpoint), которая сработает в цикле жизни HTTP-запроса. Для данного примера мы будем использовать файл index.php. Это первый файл, вызываемый на стороне сервера при запросе Drupal.

Создание точки останова

Откройте файл index.php в вашем проекте. Вы можете установить точку останова двойным щелчком левой кнопки мыши на сером крае рядом со строкой кода. Точка останова устанавливается на строке, в которой инициируется начальная загрузка Drupal, как показано на рисунке 12.

Рисунок 12. Файл index.php Drupal с установленной точкой останова
Рисунок 12. Файл index.php Drupal с установленной точкой останова

Настройка отладочной сессии

Теперь необходимо настроить отладочную сессию. Нажмите стрелку вниз рядом с пиктограммой жучка (bug) в окне Eclipse, как показано на рисунке 13, и выберите Debug.

Рисунок 13. Открытие диалогового окна конфигурации отладки
Рисунок 13. Открытие диалогового окна конфигурации отладки

Отобразится диалоговое окно конфигурации отладки, как показано на рисунке 14. Нажмите на элемент PHP Web page в левой панели для начала создания новой отладочной сессии.

Рисунок 14. Новая конфигурация отладки PHP-сценариев
Рисунок 14. Новая конфигурация отладки PHP-сценариев

Введите имя конфигурации, например, Watch a Drupal request. Для редактирования параметров сервера нажмите Configure. Отобразится диалоговое окно, аналогичное показанному на рисунке 15.

Рисунок 15. Настройка сервера для отладочной сессии
Рисунок 15. Настройка сервера для отладочной сессии

Укажите имя параметров сервера, например, Drupal development server. Укажите в поле URL сервер разработки и путь к рабочему пространству (workspace) Eclipse, определенному вами в третьей или четвертой части данной серии статей, а затем нажмите кнопку OK.

Вернитесь в диалоговое окно отладочной конфигурации, введите в поле File/Project имя проекта, определенного вами в третьей или четвертой части. Отметьте флажок Auto Generate. Диалоговое окно должно выглядеть примерно так, как показано на рисунке 16.

Рисунок 16. Заполненная панель server в диалоговом окне отладочной конфигурации
Рисунок 16. Заполненная панель server в диалоговом окне отладочной конфигурации

Выполнение отладочной сессии

Теперь нажмите Debug. Eclipse попытается переключиться в перспективу PHP Debug. Отобразится диалоговое окно, показанное на рисунке 17. Возможно, вы захотите отметить флажок Remember my decision (Запомнить мое решение), для того чтобы это окно не появлялось каждый раз при запуске отладочной сессии.

Рисунок 17. Переключение в перспективу PHP Debug
Рисунок 17. Переключение в перспективу PHP Debug

Внешний вид перспективы изменится, что показано на рисунке 18.

Рисунок 18. Перспектива PHP Debug
Рисунок 18. Перспектива PHP Debug

После HTTP-запроса подготавливается визуализация Web-страницы и открывается новое окно браузера.

Вид debug, показанный на рисунке 19, контролирует ход выполнения и отображает обратную трассировку и состояние отладочной сессии. Вы можете остановить, приостановить, продолжить и выполнить строки кода в пошаговом режиме, используя элементы управления в верхней части вида.

Рисунок 19. Панель Debug в перспективе PHP Debug
Рисунок 19. Панель Debug в перспективе PHP Debug

Вид Variables, показанный на рисунке 20, предоставляет "живой" список переменных, определяемых в коде в ходе отладочной сессии. Нажимая на значение переменной, можно изменять ее значение во время приостановки отладочной сессии в точке останова.

Рисунок 20. Панель Variables в перспективе PHP Debug
Рисунок 20. Панель Variables в перспективе PHP Debug

Для прохождения по коду строка за строкой нажимайте клавишу F5. При отладке кода вы увидите, что средний вид предоставляет PHP-файл с выделенной активной строкой кода, который в данный момент выполняется. В нашем примере нажатие F5 сразу после отображения перспективы debug вызывает показ первой строки функции drupal_bootstrap в файле bootstrap.inc. Если вы хотите пройти по вызову функции drupal_bootstrap в файле index.php, не заходя в нее, нужно использовать действие step over или клавишу F6. Этот шаг перенесет вас на следующую строку файла index.php.

Если вы хотите вернуться из функции drupal_bootstrap не проходя по оставшимся до возврата из функции строкам кода, можете использовать действие step return или клавишу F7.

Любые предупреждения и ошибки, которые могут возникнуть во время отладочной сессии, появляются в панели Console.

По мере прохода по этому HTTP-запросу вы можете наблюдать, как создается соединение с базой данных, как создается пользовательская сессия, как определяются переменные Drupal и как создается Web-страница, что приводит к визуализации Web-страницы в Web-браузере. Это очень простой пример, разработанный для того, чтобы помочь вам начать использовать PHP IDE отладчик.


Отслеживание изменений кода

Вы узнали из третьей части этой серии статей, что Eclipse предоставляет отличную поддержку для управления изменениями кода в CVS. В данном разделе рассматриваются типичные сценарии использования, с которыми мы столкнулись при разработке сайта IBC. Мы не будем сильно углубляться в детали более продвинутых функциональных возможностей CVS (таких как ветвление (branching) и слияние (merging)), но если вы будете готовы применить эти возможности, то сможете сделать это из Eclipse.

Общая схема работы с CVS в Eclipse состоит из:

  • Создания соединения с CVS-репозиторием.
  • Импортирования или проверки исходного кода.
  • Редактирования исходного кода.
  • Синхронизации ваших изменений с CVS-репозиторием.

Эти четыре элемента составляют ядро того, как CVS позволяет разработчикам координировать свой проект. Давайте начнем с добавления нового соединения с CVS-репозиторием в рабочее пространство Eclipse.

Откройте перспективу CVS Repository Exploration. Ваш экран должен выглядеть аналогично показанному на рисунке 21. Слева находится вид CVS Repositories, который отображает все CVS-репозитории, о которых знает Eclipse. Нажмите правой кнопкой мыши в виде CVS Repositories и выберите New > Repository location, как показано на рисунке 22.

Рисунок 21. Перспектива CVS Repository Exploration
Рисунок 21. Перспектива CVS Repository Exploration
Рисунок 22. Создание нового расположения репозитория в перспективе CVS
Рисунок 22. Создание нового расположения репозитория в перспективе CVS

Откроется диалоговое окно, которое позволяет ввести подробную информацию о вашем CVS-репозитории. Пример этого диалогового окна с введенной необходимой информацией о репозитории показан на рисунке 23.

Рисунок 23. Добавление CVS Repository в рабочее пространство Eclipse
Рисунок 23. Добавление CVS Repository в рабочее пространство Eclipse

Мы заполнили информацию о месторасположении именем хоста сервера и каталогом на этом сервере, содержащим CVS-репозиторий. Введите ваши имя пользователя и пароль; затем выберите тип соединения для этого CVS-репозитория. Существует два популярных механизма соединения с CVS-репозиторием. Один из них (extssh), который показан на рисунке 23, обычно выбирается как более защищенный и более предпочтительный. Вторым популярным типом, предоставляемым CVS, является стандартный тип соединения под названием pserver. Свяжитесь с системным администратором, если не знаете, какой тип соединения выбрать.

Теперь, после добавления соединения с CVS-репозиторием, можно записать ваш проект на CVS-сервер для совместного использования. Это делается легко при помощи мастера Eclipse, доступ к которому осуществляется через пункт меню Share Project под Team, как показано на рисунке 24.

Рисунок 24. Меню Team для совместного использования проекта через CVS
Рисунок 24. Меню Team для совместного использования проекта через CVS

Появится запрос на выбор CVS-репозитория, который будет хранить ваш исходный код. Выберите только что созданный репозиторий и нажмите кнопку Next, как показано на рисунке 25.

Рисунок 25. Выбор CVS-репозитория
Рисунок 25. Выбор CVS-репозитория

Теперь вы должны ввести имя модуля, идентифицирующее данный проект на CVS-сервере. Диалоговое окно должно выглядеть аналогично изображенному на рисунке 26. Выберите вариант Use project name as module name (Использовать имя проекта в качестве имени модуля), если у вас нет конкретной причины для создания вашего собственного или использования существующего модуля.

Рисунок 26. Ввод имени модуля для проекта
Рисунок 26. Ввод имени модуля для проекта

На данном этапе отображается запрос на просмотр кода, импорт которого был выполнен в CVS-репозиторий. Диалоговое окно, показанное на рисунке 27, позволяет проверить каждый файл и каталог, переданный в CVS-репозиторий. Убедитесь, что все нормально, что отмечен флажок Launch the Commit wizard, и нажмите кнопку Next.

Рисунок 27. Просмотр ресурсов для совместного использования в CVS
Рисунок 27. Просмотр ресурсов для совместного использования в CVS

CVS-клиент Eclipse пытается догадаться о типе содержимого, записанного в файлах, передаваемых в CVS-репозиторий. Это легко для таких файлов как исходные файлы PHP, поскольку они являются известными типами файлов. Существуют случаи, когда вы импортируете файл в CVS, а Eclipse ничего не знает об этом файле. В таких ситуациях вы можете помочь Eclipse классифицировать тип содержимого в этом файле - указать либо текстовые данные, либо двоичные. На рисунке 28 показан пример диалогового окна, перечисляющего типы файлов, неизвестные для Eclipse. Все эти файлы в Drupal-проекте имеют тип ASCII Text и должны быть записаны в CVS-репозитории как ASCII Text. Нажмите кнопку Next после внесения необходимых изменений.

Рисунок 28. Изменение кодировки ресурса
Рисунок 28. Изменение кодировки ресурса

На рисунке 29 показан последний шаг процесса импорта. Есть возможность снова просмотреть файлы, а также ввести комментарий с информацией об отправляемых файлах. Вы всегда должны вводить осмысленное сообщение при отправке ваших изменений в CVS-каталог. Нажмите кнопку Finish после ввода вашего сообщения.

Рисунок 29. Добавление сообщения к ресурсу, отправляемому в CVS
Рисунок 29. Добавление сообщения к ресурсу, отправляемому в CVS

Теперь, когда ваш исходный код размещен в CVS-репозитории, вы можете сделать любые необходимые изменения, сохраняя предыдущие версии для сравнения и возвратного тестирования (regression testing). После завершения написания и тестирования исходного кода вы можете отправить его в CVS-репозиторий. Мы рассмотрим метод Synchronize with Repository (Синхронизация с репозиторием) для отправки ваших изменений в CVS-репозиторий и для получения всех обновлений от членов вашей группы. Существуют ситуации, когда полезно обновить или отправить один файл без синхронизации всего проекта. Перед описанием синхронизации вашего проекта с CVS-репозиторием давайте рассмотрим отправку и обновление одного файла.

На рисунке 30 вы можете увидеть меню Team (отображается при нажатии правой кнопки мыши на файл или каталог проекта) с пунктами Commit и Update. Выбор Commit посылает ваши изменения в CVS-репозиторий, тогда как Update извлекает все изменения из CVS-репозитория. В обоих случаях CVS попытается объединить вашу версию с версией, находящейся в репозитории. Если по какой-либо причине CVS не может объединить вашу версию файла с версией, хранящейся в CVS-репозитории, вам придется выполнить процесс объединения вручную (этот процесс рассмотрен в документации по CVS).

Рисунок 30. Отправка или обновление конкретного файла
Рисунок 30. Отправка или обновление конкретного файла

Синхронизация с репозиторием

После того, как вы и ваша группа сделали изменения в исходном коде, необходимо передать и принять эти изменения из CVS-репозитория. Как уже упоминалось, имеется возможность обновить и отправить файлы по одному, но этот процесс не эффективен, если сделано много изменений. Подходящим способом передачи и приема большого числа изменений является использование пункта меню Synchronize with Repository Team. При этом происходит переключение в перспективу Team Synchronizing и определяются различия, существующие между версиями исходного кода на вашем локальном компьютере и версиями исходного кода в CVS-репозитории. На рисунке 31 показан пункт меню Synchronize with Repository.

Рисунок 31. Меню CVS Team для отправки и обновления CVS-ресурсов
Рисунок 31. Меню CVS Team для отправки и обновления CVS-ресурсов

Перспектива Team Synchronizing показана на рисунке 32. Эта перспектива предоставляет обзор изменений и позволяет проверить их в каждом файле. Слева экрана расположен вид Synchronize, который содержит листинг всех файлов, нуждающихся в синхронизации. Этот вид имеет четыре режима фильтрации синхронизируемых нами файлов.

Рисунок 32. Перспектива Team Synchronize
Рисунок 32. Перспектива Team Synchronize

На рисунке 33 показаны кнопки, активирующие четыре режима.

Рисунок 33. Кнопки режима синхронизации
Рисунок 33. Кнопки режима синхронизации

Четырьмя режимами, показанными на рисунке 33, являются:

Режим:Показывает:
IncomingФайлы, которые имеют новые версии в CVS-репозитории и должны обновиться
OutgoingФайлы, имеющие локальные изменения, которые должны быть отправлены в CVS-репозиторий
Incoming/OutgoingВсе файлы, которые одновременно находятся в режимах Incoming и Outgoing
ConflictsФайлы, которые не могут объединяться автоматически и требуют ручного вмешательства

Выберите режим Incoming/Outgoing Mode, для того чтобы увидеть выполненные вами и членами вашей группы изменения. Узнать о том, является файл входящим или исходящим, можно по его пиктограмме. Серая стрелка вправо указывает на исходящие изменения, а синяя стрелка влево - на входящие изменения. Стрелки со знаком плюс (+) обозначают добавляемые файлы, а стрелки со знаком минус (-) указывают на удаляемые файлы. Стрелки без знаков плюс или минус обозначают выполненные изменения, направление стрелок указывает, где были выполнены эти изменения. На рисунке 34 показаны примеры этих пиктограмм.

Рисунок 34. Пример пиктограмм состояния
Рисунок 34. Пример пиктограмм состояния

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

Рисунок 35. Контекстное меню вида Synchronize
Рисунок 35. Контекстное меню вида Synchronize

Имеются два пункта меню, которые вы будете часто использовать:

Update (Обновление)
Объединяет изменения локальной копии и копии в репозитории.
Commit (Отправка)
Отправляет локальные изменения в репозиторий.

Используйте Update, если хотите, чтобы CVS автоматически объединил изменения вашего локального исходного файла и репозитория. Используйте этот вариант, когда вы изменили ваш локальный файл, а один из членов вашей группы изменил этот же файл и уже отправил изменения в репозиторий. После обновления исходного файла необходимо отправить изменения обратно в репозиторий. Используйте Commit для отправки изменений в репозиторий. Этот пункт меню используется, когда вы изменили локальный файл, и никто не изменял этот файл в репозитории.

Иногда необходимо проверить отличия вашего локального файла от файла в репозитории. Если вы откроете любой из файлов, находящийся в виде Synchronize, откроется сравнивающий редактор (compare editor). На рисунках 36 и 37 показаны примеры сравнивающего редактора. Слева в этом редакторе показан ваш локальный исходный файл, а справа - файл репозитория. Если между ними существуют различия, они будут окружены рамкой на обеих сторонах. После того, как вы поймете, что изменилось, и будете удовлетворены изменениями, можно использовать контекстное меню вида Synchronize для передачи изменений в репозиторий.

Рисунок 36. Вид Synchronize с репозиторием
Рисунок 36. Вид Synchronize с репозиторием
Рисунок 37. Еще один вид Synchronize с репозиторием
Рисунок 37. Еще один вид Synchronize с репозиторием

Резюме

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

В четырнадцатой части данной серии статей предоставляется полное описание кода нашего модуля announcement и соответствующий файл для загрузки.


Downloads

Ресурсы

Научиться

Получить продукты и технологии

Обсудить

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Open source
ArticleID=228997
ArticleTitle=Использование программного обеспечения с открытым исходным кодом для проектирования, создания и развертывания Web-сайта для совместной работы, Часть 13: PHP-разработка в Eclipse
publish-date=06062007