First, prepare Maven and follow the preparation instructions.
Next, type the following Maven goal in your command line and execute it
(Note that PHP 4 is not supported since phpmaven2.):
mvn archetype:generate \ -DarchetypeGroupId=org.phpmaven \ -DarchetypeArtifactId=php5-lib-archetype \ -DarchetypeVersion=2.0-SNAPSHOT \ -DgroupId=org.sample \ -DartifactId=my-app \
The result will look like this:
my-app |-- pom.xml `-- src |-- main `-- php `-- org `-- sample `-- app.php |`-- test `-- php `-- org `-- sample `-- apptest.php |`-- site `-- doxygen `-- doxygen.conf
PHP 4 (1.*) and PHP 5 (3.*) use different PHPUnit versions. Accordingly, there are different dependencies in the POM.
<?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"> <modelVersion>4.0.0</modelVersion> <groupId>org.phpsample</groupId> <artifactId>my-app</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> </reports> </reportSet> </reportSets> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-report-plugin</artifactId> <version>2.10</version> <reportSets> <reportSet> <reports> <report>report-only</report> </reports> </reportSet> </reportSets> </plugin> </reportPlugins> </configuration> </plugin> </plugins> </build> <dependencies> <!-- phpUnit for PHP 5 --> <dependency> <groupId>org.phpunit</groupId> <artifactId>phpunit5</artifactId> <version>3.2.9-SNAPSHOT</version> </dependency> <!-- phpUnit for PHP 4 --> <dependency> <groupId>org.phpunit</groupId> <artifactId>phpunit4</artifactId> <version>1.3.2-SNAPSHOT</version> </dependency> </dependencies> </project>
What have I just done?
You have just executed the Maven goal archetype:generate and passed various parameters to that goal. The prefix archetype is the plugin containing the goal. This goal created a default project structure for your PHP project.cd my-app
mvn package
... [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------ [INFO] Total time: 6 seconds [INFO] Finished at: Thu Jul 20 19:15:06 CDT 2008 [INFO] Final Memory: 3M/6M [INFO] ------------------------------------------------------------------------
Go to the "Documentation" section.