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
919da9e6
Commit
919da9e6
authored
May 20, 2007
by
zYne
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
--no commit message
--no commit message
parent
f8549da9
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
54 additions
and
10 deletions
+54
-10
Exception.php
lib/Doctrine/Relation/Exception.php
+34
-0
Parser.php
lib/Doctrine/Relation/Parser.php
+20
-10
No files found.
lib/Doctrine/Relation/Exception.php
0 → 100644
View file @
919da9e6
<?php
/*
* $Id: Exception.php 1344 2007-05-12 23:27:16Z zYne $
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* This software consists of voluntary contributions made by many individuals
* and is licensed under the LGPL. For more information, see
* <http://www.phpdoctrine.com>.
*/
Doctrine
::
autoload
(
'Doctrine_Exception'
);
/**
* Doctrine_Relation_Exception
*
* @package Doctrine
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
* @category Object Relational Mapping
* @link www.phpdoctrine.com
* @since 1.0
* @version $Revision: 1344 $
* @author Konsta Vesterinen <kvesteri@cc.hut.fi>
*/
class
Doctrine_Relation_Exception
extends
Doctrine_Exception
{
}
lib/Doctrine/Relation/Parser.php
View file @
919da9e6
...
...
@@ -107,6 +107,14 @@ class Doctrine_Relation_Parser
$alias
=
$name
;
}
if
(
!
isset
(
$options
[
'definer'
]))
{
throw
new
Doctrine_Relation_Exception
(
'Relation definer not set.'
);
}
if
(
!
isset
(
$options
[
'type'
]))
{
throw
new
Doctrine_Relation_Exception
(
'Relation type not set.'
);
}
$this
->
_pending
[
$alias
]
=
array_merge
(
$options
,
array
(
'class'
=>
$name
,
'alias'
=>
$alias
));
}
...
...
@@ -124,16 +132,18 @@ class Doctrine_Relation_Parser
}
public
function
completeDefinition
(
$def
)
{
$def
[
'table'
]
=
$this
->
_table
->
getConnection
()
->
getTable
(
$def
[
'class'
]);
$conn
=
$this
->
_table
->
getConnection
();
$def
[
'table'
]
=
$conn
->
getTable
(
$def
[
'class'
]);
$def
[
'definer'
]
=
$conn
->
getTable
(
$def
[
'definer'
]);
if
(
isset
(
$def
[
'local'
]))
{
if
(
!
isset
(
$def
[
'foreign'
]))
{
// local key is set, but foreign key is not
// try to guess the foreign key
if
(
$def
[
'local'
]
===
$
this
->
_table
->
getIdentifier
())
{
$column
=
strtolower
(
$
this
->
_table
->
getComponentName
())
.
'_'
.
$
this
->
_table
->
getIdentifier
();
if
(
$def
[
'local'
]
===
$
def
[
'definer'
]
->
getIdentifier
())
{
$column
=
strtolower
(
$
def
[
'definer'
]
->
getComponentName
())
.
'_'
.
$
def
[
'definer'
]
->
getIdentifier
();
if
(
!
$def
[
'table'
]
->
hasColumn
(
$column
))
{
// auto-add column
...
...
@@ -150,30 +160,30 @@ class Doctrine_Relation_Parser
if
(
isset
(
$def
[
'foreign'
]))
{
// local key not set, but foreign key is set
// try to guess the local key
if
(
$def
[
'foreign'
]
===
$
this
->
_table
->
getIdentifier
())
{
if
(
$def
[
'foreign'
]
===
$
def
[
'definer'
]
->
getIdentifier
())
{
$column
=
strtolower
(
$def
[
'table'
]
->
getComponentName
())
.
'_'
.
$def
[
'table'
]
->
getIdentifier
();
$def
[
'local'
]
=
$column
;
}
else
{
$def
[
'local'
]
=
$
this
->
_table
->
getIdentifier
();
$def
[
'local'
]
=
$
def
[
'definer'
]
->
getIdentifier
();
}
}
else
{
// neither local or foreign key is being set
// try to guess both keys
$column
=
strtolower
(
$
this
->
_table
->
getComponentName
())
.
'_'
.
$
this
->
_table
->
getIdentifier
();
$column
=
strtolower
(
$
def
[
'definer'
]
->
getComponentName
())
.
'_'
.
$
def
[
'definer'
]
->
getIdentifier
();
if
(
$def
[
'table'
]
->
hasColumn
(
$column
))
{
$def
[
'foreign'
]
=
$column
;
$def
[
'local'
]
=
$
this
->
_table
->
getIdentifier
();
$def
[
'local'
]
=
$
def
[
'definer'
]
->
getIdentifier
();
}
else
{
$column
=
strtolower
(
$def
[
'table'
]
->
getComponentName
())
.
'_'
.
$def
[
'table'
]
->
getIdentifier
();
if
(
$
this
->
_table
->
hasColumn
(
$column
))
{
if
(
$
def
[
'definer'
]
->
hasColumn
(
$column
))
{
$def
[
'foreign'
]
=
$def
[
'table'
]
->
getIdentifier
();
$def
[
'local'
]
=
$column
;
}
...
...
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