2011-08-02 54 views
3

我已經學說生成的文件YAML通過命令:學說2.1如何使用YAML

php doctrine.php orm:convert-mapping --from-database yaml /usr/local/www/dev/vmilkov/jv-admin-2-0/library/yaml 

它生成許多文件:

Addresses.dcm.yml 
AdminMenu.dcm.yml 
BlogEntryCommentData.dcm.yml 
BlogType.dcm.yml 
CartoonEntryGroup.dcm.yml 
ChronopayTest.dcm.yml 
CityLocation.dcm.yml 
... 
SubwayStation.dcm.yml 
Telecast.dcm.yml 
TemplatesTemporary.dcm.yml 
TourEntryPartData.dcm.yml 
... 
TvTeam.dcm.yml 
User.dcm.yml 
UserErrorReport.dcm.yml 
Users.dcm.yml 

我的代碼:

// Показывать все ошибки 
error_reporting(E_ALL); 
ini_set("display_errors", 1); 


set_include_path(
      '.' 
     . PATH_SEPARATOR . __DIR__ . '/../library' 
     . PATH_SEPARATOR . '../application/models/' 
     . PATH_SEPARATOR . '../application/classes/' 
     . PATH_SEPARATOR . '../application/' 
     . PATH_SEPARATOR . get_include_path() 
); 

$dirInfo = pathinfo($_SERVER["DOCUMENT_ROOT"]); 

define('ROOT_PATH', $dirInfo['dirname']); 
define('LIBRARY_PATH', ROOT_PATH . DIRECTORY_SEPARATOR . 'library'); 


// Подключить Доктриновский загрузчик 
require 'Doctrine/Common/ClassLoader.php'; 


/** 
* Регистрация загрузчиков для разных namespace 
*/ 

    /** 
    * Основные классы 
    */ 

     // Основной раздел доктрины 
     $classLoader = new \Doctrine\Common\ClassLoader('Doctrine'); 
     $classLoader->register(); 

     // Раздел сущностей 
     $classLoader = new \Doctrine\Common\ClassLoader('Entities'); 
     $classLoader -> register(); 

     // load the proxy entities 
     $proxyClassLoader = new \Doctrine\Common\ClassLoader('Proxies', 'Models'); 
     $proxyClassLoader->register(); 




$config = new Doctrine\ORM\Configuration(); // (2) 

$config -> setAutoGenerateProxyClasses("development"); 

    // Mapping Configuration (4) 
    $driverImpl = new \Doctrine\ORM\Mapping\Driver\YamlDriver(LIBRARY_PATH . '/yaml'); 

$config->setMetadataDriverImpl($driverImpl); 

// Proxy Configuration (3) 
$config -> setProxyDir(LIBRARY_PATH . '/Proxies'); 
$config -> setProxyNamespace('Proxies'); 

    $cache = new \Doctrine\Common\Cache\ArrayCache(); 

$config->setMetadataCacheImpl($cache); 
$config->setQueryCacheImpl($cache); 






// database configuration parameters (6) 
$connectionParams = array(
    'dbname' => 'test', 
    'user' => 'test', 
    'password' => 'test', 
    'host' => '192.168.0.1', 
    'driver' => 'pdo_mysql', 
); 


// obtaining the entity manager (7) 
$evm = new Doctrine\Common\EventManager(); 

$entityManager = \Doctrine\ORM\EntityManager::create($connectionParams, $config, $evm); 

$entityManager->getConfiguration()->setMetadataDriverImpl($driverImpl); 






//echo '<hr />'; var_dump($entityManager->getMetadataFactory()->getMetadataFor('StoreItem')); exit; 



$dql = "SELECT Perons.* FROM Person"; 
$query = $entityManager->createQuery($dql); 




var_dump($query->getArrayResult()); 

文件Person.dcm.yml

Person: 
    type: entity 
    table: person 
    fields: 
    id: 
     id: true 
     type: integer 
     unsigned: false 
     nullable: false 
     generator: 
     strategy: IDENTITY 
    day: 
     type: integer 
     unsigned: false 
     nullable: true 
    month: 
     type: integer 
     unsigned: false 
     nullable: true 
    year: 
     type: integer 
     unsigned: false 
     nullable: true 
    country: 
     type: string 
     length: 20 
     fixed: false 
     nullable: true 
    city: 
     type: string 
     length: 20 
     fixed: false 
     nullable: true 
    address: 
     type: string 
     length: 200 
     fixed: false 
     nullable: true 
    phone: 
     type: string 
     length: 30 
     fixed: false 
     nullable: true 
    email: 
     type: string 
     length: 50 
     fixed: false 
     nullable: true 
    icq: 
     type: string 
     length: 15 
     fixed: false 
     nullable: true 
    skype: 
     type: string 
     length: 30 
     fixed: false 
     nullable: true 
    site: 
     type: string 
     length: 30 
     fixed: false 
     nullable: true 
    sex: 
     type: boolean 
     nullable: true 
    about: 
     type: string 
     length: 3000 
     fixed: false 
     nullable: true 
    status: 
     type: string 
     length: null 
     fixed: false 
     nullable: false 
    additionalRole: 
     type: string 
     length: null 
     fixed: false 
     nullable: false 
     column: additional_role 
    additionalRoleTitle: 
     type: string 
     length: 256 
     fixed: false 
     nullable: true 
     column: additional_role_title 
    subscribeInterest: 
     type: boolean 
     nullable: true 
     column: subscribe_interest 
    manyToMany: 
    encEntry: 
     targetEntity: EntryEnc 
     cascade: { } 
     mappedBy: author 
     inversedBy: null 
     joinTable: null 
     orderBy: null 
    resource: 
     targetEntity: Resource 
     cascade: { } 
     mappedBy: person 
     inversedBy: null 
     joinTable: null 
     orderBy: null 
    direction: 
     targetEntity: Direction 
     cascade: { } 
     mappedBy: person 
     inversedBy: null 
     joinTable: null 
     orderBy: null 
    entry: 
     targetEntity: Entry 
     cascade: { } 
     mappedBy: person 
     inversedBy: null 
     joinTable: null 
     orderBy: null 
    comment: 
     targetEntity: Comment 
     cascade: { } 
     mappedBy: person 
     inversedBy: null 
     joinTable: null 
     orderBy: null 
    oneToOne: 
    personType: 
     targetEntity: PersonType 
     cascade: { } 
     mappedBy: null 
     inversedBy: null 
     joinColumns: 
     person_type: 
      referencedColumnName: code 
     orphanRemoval: false 
    lifecycleCallbacks: { } 

我想谷歌搜索卻一無所獲有關使用該(YAML)文件...

你能幫我找到呢?

  1. yaml文件針怎麼樣,它是元數據文件嗎?
  2. 請給我使用的一些例子,因爲所有的例子,我試圖把我的異常..

非常感謝您!

+1

你應該閱讀你的文檔 - http://www.doctrine-project.org/docs/orm/2.1/en/reference/basic-mapping.html – donis

+0

這篇文章不幸地不解釋如何使用它 – ajile

回答

0

創建實體,代理和映射文件的文件夾......這樣

/bin 
    /Entities 
    /Proxies 
    /mapping 
     /xml 
     /yml 
    cli-config.php 
    ... 

CLI-config.php文件更改驅動程序的路徑,當前

,並嘗試用以下命令

php doctrine orm:convert-mapping --from-database --namespace='Entities\' xml mapping/xml 
php doctrine orm:convert-mapping --from-database --namespace='Entities\' yml mapping/yml 

php doctrine orm:generate-entities --generate-annotations=1 . 
php doctrine orm:generate-proxies Proxies