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:
- Загрузите Maven с http://maven.apache.org/download.cgi . Для этой статьи версия 3.0.4.
- Распакуйте архив в любое место, где вы хотите сохранить двоичные файлы, и папка с именем
apache-maven-<version>
будет создана. - Добавьте его папку
bin
в вашуPATH
. - Убедитесь, что
JAVA_HOME
настроен на местоположение вашего JDK.
После того, как вы выполнили вышеуказанные шаги, чтобы проверить, правильно ли установлен Maven или нет, вы должны запустить mvn --version
из командной строки.
После успешной установки 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 начнет загрузку всех зависимостей, необходимых для вашего компьютера. В какой-то момент Maven попросит вас определить значение для groupId
, artifactId
, version
и package
, как вы видите здесь:
Обратите внимание, что на официальной странице плагина Maven Archetype вы найдете все доступные параметры вместе с их описанием.
После успешного создания вашего первого проекта вы должны найти следующее в соответствующей папке, в моем случае Octavia_project
:
-
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, вы запускаете команду mvn:package
. Вы снова заметите, что Maven автоматически начинает загрузку любых зависимостей, необходимых для вашего проекта.
После загрузки всех необходимых зависимостей и выполнения действий по сборке вы должны получить следующее сообщение об успехе:
Для создания документации из проекта вам понадобится пакет 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. Вы должны интегрировать это вручную. Чтобы сделать это, выполните следующие действия:
- В меню «Справка» выберите «Установить новое программное обеспечение» и нажмите кнопку «Добавить…».
- В окне «Добавить репозиторий» введите имя: «Сайт обновления PHPMaven» и URL-адрес http://www.php-maven.org/eclipse/update .
- Сайт обновления PHPMaven указан в списке, и вы можете выбрать опцию PHP-Maven.
- Нажмите Next / Finish, чтобы установить плагины.
После установки вы найдете опцию проекта PHP-Maven при создании нового проекта. Выберите его и нажмите Next, чтобы установить плагин.
Чтобы создать новый проект в Eclipse, выберите «Файл»> «Новый»> «Другой» (или нажмите комбинацию CTRL + N), и вы должны увидеть что-то похожее на изображение ниже:
После нажатия кнопки «Далее» вы получите список различных архетипов.
Выберите свой артефакт, и вам будет предложено ввести информацию о проекте, как и ранее в командной строке.
Новый проект будет добавлен на вкладку Project Explorer. Структура папок в основном аналогична структуре проекта, созданного из командной строки.
После того, как вы создадите проект, щелкните правой кнопкой мыши на нем, и вы увидите опцию PHP-Maven в нижней части меню, а ее дочерние элементы перечисляют наиболее важные этапы проекта PHP-Maven.
Резюме
В этой статье вы узнали, как установить и использовать плагин PHP-Maven из командной строки и в Eclipse. Maven for PHP — это мощный инструмент автоматизации сборки для платформы PHP. Используя Maven, пользователю нужно только предоставить конфигурацию для проекта, в то время как настраиваемые плагины выполняют работу по компиляции проекта, запуску модульных тестов, созданию документации API и так далее. Maven для PHP быстро станет необходимым инструментом в наборе инструментов разработчика PHP.
Изображение через Fotolia