1
0
mirror of synced 2025-01-18 06:21:40 +03:00

php driver

This commit is contained in:
Fabio B. Silva 2012-03-10 00:06:32 -03:00
parent 4aa67a7598
commit 9c87b5c689
3 changed files with 243 additions and 0 deletions

View File

@ -0,0 +1,69 @@
<?php
use Doctrine\ORM\Mapping\ClassMetadataInfo;
$metadata->setPrimaryTable(array(
'name' => 'company_person',
));
$metadata->addNamedNativeQuery(array (
'name' => 'find-all',
'query' => 'SELECT id, country, city FROM cms_addresses',
'resultSetMapping' => 'mapping-find-all',
));
$metadata->addNamedNativeQuery(array (
'name' => 'find-by-id',
'query' => 'SELECT * FROM cms_addresses WHERE id = ?',
'resultClass' => 'Doctrine\\Tests\\Models\\CMS\\CmsAddress',
));
$metadata->addNamedNativeQuery(array (
'name' => 'count',
'query' => 'SELECT COUNT(*) AS count FROM cms_addresses',
'resultSetMapping' => 'mapping-count',
));
$metadata->addSqlResultSetMapping(array (
'name' => 'mapping-find-all',
'columns' => array(),
'entities' => array ( array (
'fields' => array (
array (
'name' => 'id',
'column' => 'id',
),
array (
'name' => 'city',
'column' => 'city',
),
array (
'name' => 'country',
'column' => 'country',
),
),
'entityClass' => 'Doctrine\Tests\Models\CMS\CmsAddress',
),
),
));
$metadata->addSqlResultSetMapping(array (
'name' => 'mapping-without-fields',
'columns' => array(),
'entities' => array(array (
'entityClass' => 'Doctrine\\Tests\\Models\\CMS\\CmsAddress',
'fields' => array()
)
)
));
$metadata->addSqlResultSetMapping(array (
'name' => 'mapping-count',
'columns' =>array (
array (
'name' => 'count',
),
)
));

View File

@ -0,0 +1,135 @@
<?php
use Doctrine\ORM\Mapping\ClassMetadataInfo;
$metadata->setPrimaryTable(array(
'name' => 'cms_users',
));
$metadata->addNamedNativeQuery(array (
'name' => 'fetchIdAndUsernameWithResultClass',
'query' => 'SELECT id, username FROM cms_users WHERE username = ?',
'resultClass' => 'Doctrine\\Tests\\Models\\CMS\\CmsUser',
));
$metadata->addNamedNativeQuery(array (
'name' => 'fetchAllColumns',
'query' => 'SELECT * FROM cms_users WHERE username = ?',
'resultClass' => 'Doctrine\\Tests\\Models\\CMS\\CmsUser',
));
$metadata->addNamedNativeQuery(array (
'name' => 'fetchJoinedAddress',
'query' => 'SELECT u.id, u.name, u.status, a.id AS a_id, a.country, a.zip, a.city FROM cms_users u INNER JOIN cms_addresses a ON u.id = a.user_id WHERE u.username = ?',
'resultSetMapping' => 'mappingJoinedAddress',
));
$metadata->addNamedNativeQuery(array (
'name' => 'fetchJoinedPhonenumber',
'query' => 'SELECT id, name, status, phonenumber AS number FROM cms_users INNER JOIN cms_phonenumbers ON id = user_id WHERE username = ?',
'resultSetMapping' => 'mappingJoinedPhonenumber',
));
$metadata->addNamedNativeQuery(array (
'name' => 'fetchUserPhonenumberCount',
'query' => 'SELECT id, name, status, COUNT(phonenumber) AS numphones FROM cms_users INNER JOIN cms_phonenumbers ON id = user_id WHERE username IN (?) GROUP BY id, name, status, username ORDER BY username',
'resultSetMapping' => 'mappingUserPhonenumberCount',
));
$metadata->addSqlResultSetMapping(array (
'name' => 'mappingJoinedAddress',
'columns' => array(),
'entities' => array(array (
'fields'=> array (
array (
'name' => 'id',
'column' => 'id',
),
array (
'name' => 'name',
'column' => 'name',
),
array (
'name' => 'status',
'column' => 'status',
),
array (
'name' => 'address.zip',
'column' => 'zip',
),
array (
'name' => 'address.city',
'column' => 'city',
),
array (
'name' => 'address.country',
'column' => 'country',
),
array (
'name' => 'address.id',
'column' => 'a_id',
),
),
'entityClass' => 'Doctrine\Tests\Models\CMS\CmsUser',
'discriminatorColumn' => null
),
),
));
$metadata->addSqlResultSetMapping(array (
'name' => 'mappingJoinedPhonenumber',
'columns' => array(),
'entities' => array(array(
'fields'=> array (
array (
'name' => 'id',
'column' => 'id',
),
array (
'name' => 'name',
'column' => 'name',
),
array (
'name' => 'status',
'column' => 'status',
),
array (
'name' => 'phonenumbers.phonenumber',
'column' => 'number',
),
),
'entityClass' => 'Doctrine\\Tests\\Models\\CMS\\CmsUser',
'discriminatorColumn' => null
),
),
));
$metadata->addSqlResultSetMapping(array (
'name' => 'mappingUserPhonenumberCount',
'columns' => array(),
'entities' => array (
array(
'fields' => array (
array (
'name' => 'id',
'column' => 'id',
),
array (
'name' => 'name',
'column' => 'name',
),
array (
'name' => 'status',
'column' => 'status',
)
),
'entityClass' => 'Doctrine\Tests\Models\CMS\CmsUser',
'discriminatorColumn' => null
)
),
'columns' => array (
array (
'name' => 'numphones',
)
)
));

View File

@ -0,0 +1,39 @@
<?php
use Doctrine\ORM\Mapping\ClassMetadataInfo;
$metadata->setPrimaryTable(array(
'name' => 'company_person',
));
$metadata->addNamedNativeQuery(array (
'name' => 'fetchAllWithResultClass',
'query' => 'SELECT id, name, discr FROM company_persons ORDER BY name',
'resultClass' => 'Doctrine\\Tests\\Models\\Company\\CompanyPerson',
));
$metadata->addNamedNativeQuery(array (
'name' => 'fetchAllWithSqlResultSetMapping',
'query' => 'SELECT id, name, discr AS discriminator FROM company_persons ORDER BY name',
'resultSetMapping' => 'mappingFetchAll',
));
$metadata->addSqlResultSetMapping(array (
'name' => 'mappingFetchAll',
'columns' => array(),
'entities' => array ( array (
'fields' => array (
array (
'name' => 'id',
'column' => 'id',
),
array (
'name' => 'name',
'column' => 'name',
),
),
'entityClass' => 'Doctrine\Tests\Models\Company\CompanyPerson',
'discriminatorColumn' => 'discriminator',
),
),
));