Статьи

Maven и PHP

Apache Maven — это инструмент автоматизации сборки, предназначенный для создания, составления отчетов и создания документации по проектам. Он строит проекты с использованием объектной модели проекта (POM) и набора плагинов, которые используются всеми проектами, использующими Maven, обеспечивая единую систему сборки. Когда вы ознакомитесь с тем, как создается один проект Maven, вы автоматически узнаете, как создаются все проекты Maven. Это сэкономит вам огромное количество времени от попыток навигации по процессу сборки различных проектов.

В этой статье вы познакомитесь с Maven для PHP, а также с тем, как установить и использовать плагин PHP-Maven из командной строки и в Eclipse.

Установить Maven

PHP-Maven использует возможности Maven для создания, составления отчетов и создания документации ваших проектов PHP. Он адаптирует жизненный цикл сборки Maven к миру PHP, полностью поддерживая PHP 5. PHP-Maven использует PHPUnit для модульного тестирования и phpDocumentor для создания проектной документации.

Чтобы установить Maven:

  1. Загрузите Maven с http://maven.apache.org/download.cgi . Для этой статьи версия 3.0.4.
  2. Распакуйте архив в любое место, где вы хотите сохранить двоичные файлы, и папка с именем apache-maven-<version> будет создана.
  3. Добавьте его папку bin в вашу PATH .
  4. Убедитесь, что JAVA_HOME настроен на местоположение вашего JDK.

После того, как вы выполнили вышеуказанные шаги, чтобы проверить, правильно ли установлен Maven или нет, вы должны запустить mvn --version из командной строки.

Maven-1

После успешной установки Maven перейдите в файл settings.xml (находится в ~/.m2 в Unix / Mac OS X и в C:Documents and Settingsusername.m2 в Windows) и добавьте репозиторий PHP для Maven. Если файл settings.xml отсутствует, его необходимо создать.

Ниже приведен пример файла settings.xml :

 <settings> <profiles> <profile> <id>profile-php-maven</id> <pluginRepositories> <pluginRepository> <id>release-repo1.php-maven.org</id> <name>PHP-Maven 2 Release Repository</name> <url>http://repos.php-maven.org/releases</url> <releases> <enabled>true</enabled> </releases> </pluginRepository> <pluginRepository> <id>snapshot-repo1.php-maven.org</id> <name>PHP-Maven 2 Snapshot Repository</name> <url>http://repos.php-maven.org/snapshots</url> <releases> <enabled>false</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </pluginRepository> </pluginRepositories> <repositories> <repository> <id>release-repo1.php-maven.org</id> <name>PHP-Maven 2 Release Repository</name> <url>http://repos.php-maven.org/releases</url> <releases> <enabled>true</enabled> </releases> </repository> <repository> <id>snapshot-repo1.php-maven.org</id> <name>PHP-Maven 2 Snapshot Repository</name> <url>http://repos.php-maven.org/snapshots</url> <releases> <enabled>false</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories> </profile> </profiles> <activeProfiles> <activeProfile>profile-php-maven</activeProfile> </activeProfiles> </settings> 

Создайте свой первый проект

Для создания простого проекта из командной строки я буду использовать плагин Maven Archetype . Плагин Archetype позволяет пользователю создать проект Maven из существующего шаблона, называемого архетипом. Вы можете запустить плагин Maven Archetype с помощью команды mvn archetype:generate для создания нового проекта из архетипа в папке, соответствующей его идентификатору артефакта.

Maven-2

Maven начнет загрузку всех зависимостей, необходимых для вашего компьютера. В какой-то момент Maven попросит вас определить значение для groupId , artifactId , version и package , как вы видите здесь:

Maven-3

Обратите внимание, что на официальной странице плагина Maven Archetype вы найдете все доступные параметры вместе с их описанием.

После успешного создания вашего первого проекта вы должны найти следующее в соответствующей папке, в моем случае Octavia_project :

Maven-4

  • src/main/php — содержит исходный код проекта.
  • src/test/php — содержит тестовый код проекта.
  • src/site — содержит дескриптор сайта проекта.
  • pom.xml — содержит описание POM проекта.

Содержимое pom.xml выглядит так:

 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <groupId>org.phpmaven</groupId> <artifactId>php-parent-pom</artifactId> <version>2.0.2</version> </parent> <modelVersion>4.0.0</modelVersion> <groupId>org.phpsample</groupId> <artifactId>Octavia_project</artifactId> <packaging>php</packaging> <version>1.0-SNAPSHOT</version> <build> <plugins> <plugin> <groupId>org.phpmaven</groupId> <artifactId>maven-php-plugin</artifactId> <extensions>true</extensions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-site-plugin</artifactId> <version>3.0</version> <configuration> <reportPlugins> <plugin> <groupId>org.phpmaven</groupId> <artifactId>maven-php-plugin</artifactId> <reportSets> <reportSet> <reports> <report>phpdocumentor</report> <report>phpunit-coverage</report> <report>phpunit</report> </reports> </reportSet> </reportSets> </plugin> </reportPlugins> </configuration> </plugin> </plugins> </build> <dependencies> <!-- phpUnit for PHP 5 --> <dependency> <groupId>de.phpunit</groupId> <artifactId>PHPUnit</artifactId> <version>3.6.10</version> <type>phar</type> </dependency> </dependencies> </project> 

Этап тестирования наступает после создания вашего приложения, и для этого вам нужна зависимость PHPUnit. Если он отсутствует, обязательно добавьте его в файл pom.xml как показано выше.

Тесты PHPUnit должны быть Somthing Test.php папку src/test/php а тест должен называться Somthing Test.php , то есть суффикс «Test.php» является обязательным. Мой тест, MyTest.php , указан ниже:

 <?php class MyTest extends PHPUnit_Framework_TestCase { public function testBar() { include "org/sample/app.php"; $this->fail("we will fail"); } } 

Для выполнения теста вы используете команду mvn test . В официальной документации есть раздел Как игнорировать провальные тесты , и вы можете найти там некоторые команды, которые могут помочь вам запустить ваш тест. (Единственная команда, которая действительно работала для меня, была та, которая выполнила один тест.)

Maven-5

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

После загрузки всех необходимых зависимостей и выполнения действий по сборке вы должны получить следующее сообщение об успехе:

Maven-6

Для создания документации из проекта вам понадобится пакет phpDocumentor 2 PEAR . В папке src/site создайте файл site.xml со следующим содержимым:

 <?xml version="1.0" encoding="ISO-8859-1"?> <project name="Maven"> <version position="left" /> <skin> <groupId>org.apache.maven.skins</groupId> <artifactId>maven-stylus-skin</artifactId> <version>1.0</version> </skin> <body> <links> <item name="PHP-Maven" href="http://www.php-maven.org/" /> </links> <menu name="Main"> <item name="Welcome" href="index.html" /> </menu> <menu ref="reports" /> </body> </project> 

Затем запустите команду mvn site и вы найдете результаты в папке target/site .

Eclipse Integration

Плагин php-maven поддерживает интеграцию с Eclipse IDE, но по умолчанию не содержит плагин php-maven. Вы должны интегрировать это вручную. Чтобы сделать это, выполните следующие действия:

  1. В меню «Справка» выберите «Установить новое программное обеспечение» и нажмите кнопку «Добавить…».
  2. В окне «Добавить репозиторий» введите имя: «Сайт обновления PHPMaven» и URL-адрес http://www.php-maven.org/eclipse/update .
  3. Сайт обновления PHPMaven указан в списке, и вы можете выбрать опцию PHP-Maven.
  4. Нажмите Next / Finish, чтобы установить плагины.

Maven-7

Maven-8

После установки вы найдете опцию проекта PHP-Maven при создании нового проекта. Выберите его и нажмите Next, чтобы установить плагин.

Чтобы создать новый проект в Eclipse, выберите «Файл»> «Новый»> «Другой» (или нажмите комбинацию CTRL + N), и вы должны увидеть что-то похожее на изображение ниже:

Maven-9

После нажатия кнопки «Далее» вы получите список различных архетипов.

Maven-10

Выберите свой артефакт, и вам будет предложено ввести информацию о проекте, как и ранее в командной строке.

Maven-11

Новый проект будет добавлен на вкладку Project Explorer. Структура папок в основном аналогична структуре проекта, созданного из командной строки.

После того, как вы создадите проект, щелкните правой кнопкой мыши на нем, и вы увидите опцию PHP-Maven в нижней части меню, а ее дочерние элементы перечисляют наиболее важные этапы проекта PHP-Maven.

Maven-12

Резюме

В этой статье вы узнали, как установить и использовать плагин PHP-Maven из командной строки и в Eclipse. Maven for PHP — это мощный инструмент автоматизации сборки для платформы PHP. Используя Maven, пользователю нужно только предоставить конфигурацию для проекта, в то время как настраиваемые плагины выполняют работу по компиляции проекта, запуску модульных тестов, созданию документации API и так далее. Maven для PHP быстро станет необходимым инструментом в наборе инструментов разработчика PHP.

Изображение через Fotolia