First, prepare Maven and follow the preparation instructions.
Next, type the following Maven goal in your command line and execute it
(Note that the archetypes are different for PHP 4 and PHP 5.):
mvn archetype:generate \ -DarchetypeGroupId=org.phpmaven \ -DarchetypeArtifactId=php4-lib-archetype \ -DarchetypeVersion=1.0 \ -DgroupId=org.sample \ -DartifactId=my-app \
mvn archetype:generate \ -DarchetypeGroupId=org.phpmaven \ -DarchetypeArtifactId=php5-lib-archetype \ -DarchetypeVersion=1.0 \ -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> <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> </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> <reporting> <plugins> <!-- START SNIPPET: doxygen --> <!-- Doxygen Documentation --> <plugin> <groupId>org.phpmaven</groupId> <artifactId>maven-php-plugin</artifactId> <!-- Optional --> <reportSet> <reports> <report>doxygen</report> <report>phpdocumentor</report> </reports> </reportSet> <!-- / Optional --> <!-- END SNIPPET: doxygen --> <!-- Surfire Documentation --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-report-plugin</artifactId> <version>2.4</version> <reportSets> <reportSet> <reports> <report>report-only</report> </reports> </reportSet> </reportSets> </plugin> </plugins> </reporting> </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.