gpt4 book ai didi

php - Doctrine 2.1 如何使用yaml

转载 作者:搜寻专家 更新时间:2023-10-31 22:15:37 24 4
gpt4 key购买 nike

我已经通过命令生成了 doctrine 文件 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. 请给我一些使用示例,因为我尝试过的所有示例都会抛出异常..

非常感谢!

最佳答案

为实体、代理和映射文件创建一个文件夹......像这样

/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

关于php - Doctrine 2.1 如何使用yaml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6909212/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com