PHP libraries - 5 minutes starter guide

Create a project

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.):

PHP 5:
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
			

  • src/main/php - contains the project source code
  • the src/test/php - contains the test source code
  • pom.xml The project's Project Object Model, or POM, looks like this:

The POM

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?

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.

Build the project

Switch to your sample project directory
cd my-app
and run:
mvn package
The command line will print out various actions, ending with the following:
 ...
[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] ------------------------------------------------------------------------			
			
Maven created a jar package under the project's target folder.

Project documentation

Go to the "Documentation" section.