Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
D
doctrine-dbal
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Tomáš Trávníček
doctrine-dbal
Commits
584491d4
Commit
584491d4
authored
Mar 16, 2010
by
jwage
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[2.0] Fixing issue with converting mapping from annotations to other sources
parent
19df601c
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
32 additions
and
9 deletions
+32
-9
ConvertMappingTask.php
lib/Doctrine/ORM/Tools/Cli/Tasks/ConvertMappingTask.php
+32
-9
No files found.
lib/Doctrine/ORM/Tools/Cli/Tasks/ConvertMappingTask.php
View file @
584491d4
...
...
@@ -25,7 +25,10 @@ use Doctrine\Common\Cli\Tasks\AbstractTask,
Doctrine\Common\Cli\CliException
,
Doctrine\Common\Cli\Option
,
Doctrine\Common\Cli\OptionGroup
,
Doctrine\ORM\Tools\Export\ClassMetadataExporter
;
Doctrine\ORM\Tools\Export\ClassMetadataExporter
,
Doctrine\ORM\Mapping\Driver\DriverChain
,
Doctrine\ORM\Mapping\Driver\AnnotationDriver
,
Doctrine\ORM\Mapping\Driver\Driver
;
/**
* CLI Task to convert your mapping information between the various formats
...
...
@@ -242,23 +245,43 @@ class ConvertMappingTask extends AbstractTask
// If source is annotation then lets try and find the existing annotation
// driver for the source instead of re-creating a new instance
}
else
if
(
$type
==
'annotation'
)
{
$source
=
realpath
(
$source
);
$em
=
$this
->
getConfiguration
()
->
getAttribute
(
'em'
);
$metadataDriverImpl
=
$em
->
getConfiguration
()
->
getMetadataDriverImpl
();
if
(
$metadataDriverImpl
instanceof
\Doctrine\ORM\Mapping\Driver\DriverChain
)
{
// Find the annotation driver in the chain of drivers
if
(
$metadataDriverImpl
instanceof
DriverChain
)
{
foreach
(
$metadataDriverImpl
->
getDrivers
()
as
$namespace
=>
$driver
)
{
if
(
$driver
instanceof
\Doctrine\ORM\Mapping\Driver\AnnotationDriver
)
{
$paths
=
$driver
->
getPaths
();
if
(
in_array
(
$source
,
$paths
))
{
return
$driver
;
}
if
(
$this
->
_isAnnotationDriverForPath
(
$driver
,
$source
))
{
return
$driver
;
}
}
}
else
if
(
$
metadataDriverImpl
instanceof
\Doctrine\ORM\Mapping\Driver\AnnotationDriver
)
{
}
else
if
(
$
this
->
_isAnnotationDriverForPath
(
$metadataDriverImpl
,
$source
)
)
{
return
$metadataDriverImpl
;
}
else
{
return
$source
;
}
}
else
{
return
$source
;
}
}
/**
* Check to see if the given metadata driver is the annotation driver for the
* given directory path
*
* @param Driver $driver
* @param string $path
* @return boolean
*/
private
function
_isAnnotationDriverForPath
(
Driver
$driver
,
$path
)
{
if
(
!
$driver
instanceof
AnnotationDriver
)
{
return
false
;
}
if
(
in_array
(
realpath
(
$path
),
$driver
->
getPaths
()))
{
return
true
;
}
else
{
return
false
;
}
}
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment