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
efc6d71d
Commit
efc6d71d
authored
Sep 30, 2006
by
zYne
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Moved collection iterator classes under Collection_ namespace
parent
8e9a8af6
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
226 additions
and
4 deletions
+226
-4
Collection.php
lib/Doctrine/Collection.php
+1
-1
Batch.php
lib/Doctrine/Collection/Batch.php
+1
-1
Iterator.php
lib/Doctrine/Collection/Iterator.php
+102
-0
Expandable.php
lib/Doctrine/Collection/Iterator/Expandable.php
+50
-0
Normal.php
lib/Doctrine/Collection/Iterator/Normal.php
+37
-0
Offset.php
lib/Doctrine/Collection/Iterator/Offset.php
+33
-0
Offset.php
lib/Doctrine/Collection/Offset.php
+2
-2
No files found.
lib/Doctrine/Collection.php
View file @
efc6d71d
...
@@ -667,7 +667,7 @@ class Doctrine_Collection extends Doctrine_Access implements Countable, Iterator
...
@@ -667,7 +667,7 @@ class Doctrine_Collection extends Doctrine_Access implements Countable, Iterator
* @return Doctrine_Iterator_Normal
* @return Doctrine_Iterator_Normal
*/
*/
public
function
getNormalIterator
()
{
public
function
getNormalIterator
()
{
return
new
Doctrine_Iterator_Normal
(
$this
);
return
new
Doctrine_
Collection_
Iterator_Normal
(
$this
);
}
}
/**
/**
* save
* save
...
...
lib/Doctrine/Collection/Batch.php
View file @
efc6d71d
...
@@ -176,7 +176,7 @@ class Doctrine_Collection_Batch extends Doctrine_Collection {
...
@@ -176,7 +176,7 @@ class Doctrine_Collection_Batch extends Doctrine_Collection {
* @return Doctrine_Iterator
* @return Doctrine_Iterator
*/
*/
public
function
getIterator
()
{
public
function
getIterator
()
{
return
new
Doctrine_Iterator_Expandable
(
$this
);
return
new
Doctrine_
Collection_
Iterator_Expandable
(
$this
);
}
}
}
}
lib/Doctrine/
Repository
.php
→
lib/Doctrine/
Collection/Iterator
.php
View file @
efc6d71d
...
@@ -19,119 +19,84 @@
...
@@ -19,119 +19,84 @@
* <http://www.phpdoctrine.com>.
* <http://www.phpdoctrine.com>.
*/
*/
/**
/**
* Doctrine_Repository
* Doctrine_Collection_Iterator
* each record is added into Doctrine_Repository at the same time they are created,
* iterates through Doctrine_Collection
* loaded from the database or retrieved from the cache
*
*
* @author Konsta Vesterinen
* @package Doctrine ORM
* @package Doctrine ORM
* @url www.phpdoctrine.com
* @url www.phpdoctrine.com
* @license LGPL
* @license LGPL
*/
*/
class
Doctrine_Table_Repository
implements
Countable
,
IteratorAggregate
{
abstract
class
Doctrine_Collection_Iterator
implements
Iterator
{
/**
/**
* @var
object Doctrine_Table $table
* @var
Doctrine_Collection $collection
*/
*/
pr
ivate
$table
;
pr
otected
$collection
;
/**
/**
* @var array $registry
* @var array $keys
* an array of all records
* keys representing record object identifiers
*/
*/
pr
ivate
$registry
=
array
()
;
pr
otected
$keys
;
/**
/**
* constructor
* @var mixed $key
*
* @param Doctrine_Table $table
*/
*/
public
function
__construct
(
Doctrine_Table
$table
)
{
protected
$key
;
$this
->
table
=
$table
;
}
/**
/**
* getTable
* @var integer $index
*
* @return object Doctrine_Table
*/
*/
public
function
getTable
()
{
protected
$index
;
return
$this
->
table
;
}
/**
/**
* add
* @var integer $count
*
* @param Doctrine_Record $record record to be added into registry
* @return boolean
*/
*/
public
function
add
(
Doctrine_Record
$record
)
{
protected
$count
;
$oid
=
$record
->
getOID
();
if
(
isset
(
$this
->
registry
[
$oid
]))
return
false
;
$this
->
registry
[
$oid
]
=
$record
;
return
true
;
}
/**
/**
* get
* constructor
* @param integer $oid
* @var Doctrine_Collection $collection
* @throws Doctrine_Table_Repository_Exception
*/
*/
public
function
get
(
$oid
)
{
public
function
__construct
(
Doctrine_Collection
$collection
)
{
if
(
!
isset
(
$this
->
registry
[
$oid
]))
$this
->
collection
=
$collection
;
throw
new
Doctrine_Table_Repository_Exception
(
"Unknown object identifier"
);
$this
->
keys
=
$this
->
collection
->
getKeys
();
$this
->
count
=
$this
->
collection
->
count
();
return
$this
->
registry
[
$oid
];
}
}
/**
/**
*
count
*
rewinds the iterator
*
Doctrine_Registry implements interface Countable
*
* @return
integer the number of records this registry has
* @return
void
*/
*/
public
function
count
()
{
public
function
rewind
()
{
return
count
(
$this
->
registry
);
$this
->
index
=
0
;
$i
=
$this
->
index
;
if
(
isset
(
$this
->
keys
[
$i
]))
$this
->
key
=
$this
->
keys
[
$i
];
}
}
/**
* @param integer $oid object identifier
* @return boolean whether ot not the operation was successful
*/
public
function
evict
(
$oid
)
{
if
(
!
isset
(
$this
->
registry
[
$oid
]))
return
false
;
unset
(
$this
->
registry
[
$oid
]);
return
true
;
}
/**
* @return integer number of records evicted
*/
public
function
evictAll
()
{
$evicted
=
0
;
foreach
(
$this
->
registry
as
$oid
=>
$record
)
{
if
(
$this
->
evict
(
$oid
))
$evicted
++
;
}
return
$evicted
;
}
/**
/**
* getIterator
* returns the current key
* @return ArrayIterator
*
* @return integer
*/
*/
public
function
getIterator
()
{
public
function
key
()
{
return
new
ArrayIterator
(
$this
->
registry
)
;
return
$this
->
key
;
}
}
/**
/**
* contains
* returns the current record
* @param integer $oid object identifier
*
* @return Doctrine_Record
*/
*/
public
function
c
ontains
(
$oid
)
{
public
function
c
urrent
(
)
{
return
isset
(
$this
->
registry
[
$oid
]
);
return
$this
->
collection
->
get
(
$this
->
key
);
}
}
/**
/**
* loadAll
* advances the internal pointer
*
* @return void
* @return void
*/
*/
public
function
loadAll
()
{
public
function
next
()
{
$this
->
table
->
findAll
();
$this
->
index
++
;
$i
=
$this
->
index
;
if
(
isset
(
$this
->
keys
[
$i
]))
$this
->
key
=
$this
->
keys
[
$i
];
}
}
}
}
lib/Doctrine/Collection/Iterator/Expandable.php
0 → 100644
View file @
efc6d71d
<?php
/*
* $Id$
*
* 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_Collection_Iterator'
);
/**
* Doctrine_Collection_Iterator_Normal
*
* @package Doctrine ORM
* @url www.phpdoctrine.com
* @license LGPL
*/
class
Doctrine_Collection_Iterator_Expandable
extends
Doctrine_Collection_Iterator
{
public
function
valid
()
{
if
(
$this
->
index
<
$this
->
count
)
return
true
;
elseif
(
$this
->
index
==
$this
->
count
)
{
$coll
=
$this
->
collection
->
expand
(
$this
->
index
);
if
(
$coll
instanceof
Doctrine_Collection
)
{
$count
=
count
(
$coll
);
if
(
$count
>
0
)
{
$this
->
keys
=
array_merge
(
$this
->
keys
,
$coll
->
getKeys
());
$this
->
count
+=
$count
;
return
true
;
}
}
return
false
;
}
}
}
lib/Doctrine/Collection/Iterator/Normal.php
0 → 100644
View file @
efc6d71d
<?php
/*
* $Id$
*
* 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_Collection_Iterator'
);
/**
* Doctrine_Collection_Iterator_Normal
*
* @package Doctrine ORM
* @url www.phpdoctrine.com
* @license LGPL
*/
class
Doctrine_Collection_Iterator_Normal
extends
Doctrine_Collection_Iterator
{
/**
* @return boolean whether or not the iteration will continue
*/
public
function
valid
()
{
return
(
$this
->
index
<
$this
->
count
);
}
}
lib/Doctrine/Collection/Iterator/Offset.php
0 → 100644
View file @
efc6d71d
<?php
/*
* $Id$
*
* 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_Collection_Iterator'
);
/**
* Doctrine_Collection_Iterator_Normal
*
* @package Doctrine ORM
* @url www.phpdoctrine.com
* @license LGPL
*/
class
Doctrine_Collection_Iterator_Offset
extends
Doctrine_Collection_Iterator
{
public
function
valid
()
{
}
}
lib/Doctrine/Collection/Offset.php
View file @
efc6d71d
...
@@ -22,10 +22,10 @@ class Doctrine_Collection_Offset extends Doctrine_Collection {
...
@@ -22,10 +22,10 @@ class Doctrine_Collection_Offset extends Doctrine_Collection {
return
$this
->
limit
;
return
$this
->
limit
;
}
}
/**
/**
* @return Doctrine_
Iterator_Offset
* @return Doctrine_
Collection_Iterator_Expandable
*/
*/
public
function
getIterator
()
{
public
function
getIterator
()
{
return
new
Doctrine_Iterator_Expandable
(
$this
);
return
new
Doctrine_
Collection_
Iterator_Expandable
(
$this
);
}
}
}
}
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