开发者

Doctrine 2.1 how to use yaml

I have generated by doctrine files YAML by command:

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

It's generate many files:

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

My code:

// Показывать все ошибки
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 = pathi开发者_运维问答nfo($_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() );

File 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: {  }

I'm tried to googling but found nothing about using this (YAML) files...

Can you help me to find way?

  1. What for yaml files needle, is it metadata files?
  2. Please, give me some example of use, because all examples that I tried throw me exception..

Thank you very much!


create a folder for Entities, Proxies and mapping files ... like this

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

in the cli-config.php change the Driver's path for the current

and try with this commands

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
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜