Introduction
In this tutorial, we will look at how to install Doctrine2 in your PHP project.
This post will make use of Doctrine2’s Composer tool.
Installation
First, create a directory for your project.
mkdir zainabed
cd zainabed
Now, create a composer.json file.
vi composer.json
Then, add the following repository information to it.
{
"require": {
"doctrine/orm": "*"
}
}
You are now ready to use Composer to install Doctrine, but first you must install Composer on your machine.
curl -sS https://getcomposer.org/installer | php
To install Doctrine2, run the following command.
php composer.phar install
Note: Composer generates a “autoload.php” file to help in the autoloading of all PHP classes in the Doctrine2 ORM project.
Configuration
First, create a configuration file, configuration.php for Doctrine2 and include autoload.php inside it.
<?php
// configuration.php
// Include Composer Autoload
require_once "vendor/autoload.php";
Then, create the database configuration details, like database name, username and password.
// database configuration
$databaseParams = array(
'driver' => 'pdo_mysql',
'user' => 'root',
'password' => '',
'dbname' => 'zainabed',
);
Now, specify the entity path where you want all ORM entities to be stored.
//entity path
$entityPath = array("src/Entity");
Create an Entity Manager
ORM’s fundamental source is the Entity Manager, which manages interactions between entities and databases.
//annotation configuration
$config = Setup::createAnnotationMetadataConfiguration($entityPath, false);
//entity manager object
$entityManager = EntityManager::create($databaseParams, $config);
Finally, you are ready to use Doctrine2 within your PHP project.
The following is a complete configuration example that includes XML and YAML configuration.
<?php
// configuration.php
// Include Composer Autoload
require_once "vendor/autoload.php";
use Doctrine\ORM\Tools\Setup;
use Doctrine\ORM\EntityManager;
// database configuration
$databaseParams = array(
'driver' => 'pdo_mysql',
'user' => 'root',
'password' => '',
'dbname' => 'zainabed',
);
//entity path
$entityPath = array("src/Entity");
//annotation configuration
$config = Setup::createAnnotationMetadataConfiguration($entityPath, false);
//entity manager object
$entityManager = EntityManager::create($databaseParams, $config);
//xml configuration
//$xmlEntituPath = array("/path/to/xml-mappings");
//$config = Setup::createXMLMetadataConfiguration($xmlEntituPath, false);
//$entityManager = EntityManager::create($databaseParams, $config);
//yml configuration
//$ymlEntityPath = array("/path/to/yml-mappings");
//$config = Setup::createYAMLMetadataConfiguration($ymlEntityPath, false);
//$entityManager = EntityManager::create($databaseParams, $config);
Doctrine 2 is now configured and ready to use.