- 首先下載及安裝 Composer-Setup.exe, 這個程式將會幫忙我們下載各類型的程式庫,包括我們即將使用的doctrine.
網址為: http://getcomposer.org/doc/00-intro.md - 安裝後,我們建立新專案的資料夾,例如new_project,然後在新專案的root目錄裏(即根目錄),新增檔案composer.json,然後於檔案中輸入以下json code:{
"require": {
"doctrine/orm": "2.*",
"symfony/yaml": "2.*"
},
"autoload": {
"psr-0": {"": "src/"}
}
}
這個檔案是告訴Composer我們即將安裝什麼程式庫到我們的新專案。 - 然後我們打開command mode,前往我們專案的root目錄,並輸入以下指令:composer install
如無意外,你將會看到正在下載的畫面,等待片刻程式庫將會自動安裝到我們的專案目錄裏。 - 另外,我們需要為doctrine準備以下的資料夾,架構如下:new_project
|-- composer.json
|-- config
| |-- xml
| `-- yaml
`-- src - 然後,讓我們於root目錄中新增一個檔案名為bootstrap.php,並加入以下代碼:<?php
// bootstrap.php
use Doctrine\ORM\Tools\Setup;
use Doctrine\ORM\EntityManager;
require_once "vendor/autoload.php";
// Create a simple "default" Doctrine ORM configuration for Annotations
$isDevMode = true;
//$config = Setup::createAnnotationMetadataConfiguration(array(__DIR__."/entities"), $isDevMode);
// or if you prefer yaml or XML
//$config = Setup::createXMLMetadataConfiguration(array(__DIR__."/config/xml"), $isDevMode);
$config = Setup::createYAMLMetadataConfiguration(array(__DIR__."/config/yaml"), $isDevMode);
// database configuration parameters
//$conn = array(
// 'driver' => 'pdo_sqlite',
// 'path' => __DIR__ . '/db.sqlite',
//);
$conn = array(
'driver' => 'pdo_mysql',
'host' => '127.0.0.1',
'dbname' => 'test',
'user' => 'root',
'password' => ''
);
// obtaining the entity manager
$entityManager = EntityManager::create($conn, $config);
使用什麼資料格式進行orm請自行決定,以上我使用了yaml. - 於root目錄中再新增一個檔案名為cli-config.php,並加入以下代碼:<?php
// cli-config.php
require_once "bootstrap.php";
$helperSet = new \Symfony\Component\Console\Helper\HelperSet(array(
'em' => new \Doctrine\ORM\Tools\Console\Helper\EntityManagerHelper($entityManager)
)); - 初步設定已經完成,接下來讓我們建立資料表架構,我們使用yaml建立一個資料表架構,代碼如下:# config/yaml/Product.dcm.yml
Product:
type: entity
table: products
id:
id:
type: integer
generator:
strategy: AUTO
fields:
name:
type: string - 然後我們再使用以下指令,讓doctrine為我們建立mapper class:vendor\bin\doctrine orm:generate-entities config/yaml
建立完成後,請將建立的mapper class於config/yaml中移到 root/src. - 再來讓我們在資料庫中建立資料表:vendor\bin\doctrine orm:schema-tool:create
- 現在就可以使用doctrine來操作資料表了,以下為簡單例子:<?php
// create_product.php
require_once "bootstrap.php";
$newProductName = $argv[1];
$product = new Product();
$product->setName($newProductName);
$entityManager->persist($product);
$entityManager->flush();
echo "Created Product with ID " . $product->getId() . "\n";
**執行指令測試輸入資料到資料表:
php create_product.php ORM<?php
// list_products.php
$productRepository = $entityManager->getRepository('Product');
$products = $productRepository->findAll();
foreach ($products as $product) {
echo sprintf("-%s\n", $product->getName());
}<?php
// show_product.php
$id = $argv[1];
$product = $entityManager->find('Product', $id);
echo sprintf("-%s\n", $product->getName()); - 以下指令可以依現時的mapper class格式轉換成為xml格式vendor\bin\doctrine orm:convert-mapping xml /path/to/mapping-path-converted-to-xml
doctrine2 已經安裝完成,以後可以輕鬆地透過orm操作資料庫了。
Doctrine2 安裝教學
**本文假設php.exe已經安裝完成,並新增到windows的環境變數中。
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言