[TYPO3-mvc] [!!!] FYI: Breaking changes in recent commit of Extbase
Jochen Rau
jochen.rau at typoplanet.de
Mon Mar 15 22:08:47 CET 2010
Hi.
We dropped implodeXX() since r2036. But you can now say
$query->matching($query->logicalAnd($constraint1, $constraint2,
$constraint3, $constraint4, $constraint5));
or
$constraints = array($constraint1, $constraint2, $constraint3,
$constraint4, $constraint5);
$query->matching($query->logicalAnd($constraints));
Same for logicalOr().
Regards
Jochen
On 08.03.10 18:09, Jochen Rau wrote:
> Hi.
>
> I have done a refactoring of the persistence layer of Extbase according
> to the great improvements Karsten has done in FLOW3.
>
> In addition I have implemented some handy improvements to
> Query::logicalAnd() and Query::logicalOr(). These improvements are not
> yet part of the API!! Please give feedback on them.
>
> The first one allows multiple constraints as arguments. These arguments
> are catched by func_get_args().
> $query->matching($query->logicalAnd($constraint1, $constraint2,
> $constraint3, $constraint4, $constraint5));
>
> The second one is a kind of implode taking an array of constraints as
> argument.
>
> $constraints = array($constraint1, $constraint2, $constraint3,
> $constraint4, $constraint5);
> $query->matching($query->implodeAnd($constraints));
>
> Both are easy to understand. The second one can be used chaining by
> foreach() and if an empty array is passed to the implode, NULL is
> returned which gives the expected result.
>
> There are two new methods which are already part of FLOW3:
> Query::in($propertyName, array(...)) and
> Query::contains($propertyWithArray, 'foo'). This works already for
> mm-relations and comma separated values (ahrg, he said csv ;-)).
>
> Here are the most important changes of the latest revisions:
>
> [+API] Extbase (Persistence): Added countAll() and
> countByProperty('foo') to the Persistence Repository. thanks to Martin
> Kutschker who provided the patch. Resolves #6234.
> [-TASK] Extbase (Persistence): Removed unnecessary classes, code and
> empty interfaces.
> [!!!][~API] Extbase (Persistence): Marked Query::withUid() as
> deprecated. Will be removed with one of the next major versions of Extbase.
> [+FEATURE] Extbase (Persistence): Implemented Query::implodeAnd(array)
> and Query::implodeOr(array). Please give Feedback on this Feature. This
> is not yet part of the API! Related to #6735.
> [+FEATURE] Extbase (Persistence): Query::logicalAnd() and
> Query::logicalOr() allow 2 or more Constraints as argument, now. This is
> not yet part of the API! Please give Feedback on this Feature. Related
> to #6735.
> [!!!][~API] Extbase (Persistence): $query->execute() now returns a plain
> array of row-arrays instead of an RowIterator. This is a breaking change
> if you use your own Query object in combination with
> $querySettings->getRawQueryResult = TRUE.
> [~TASK] Extbase (Persistence): Refactored persistence layer (part I).
> Dropped QueryObjectModel. The Query-Object is now passed directly to the
> StorageBackend.
> [+API] Extbase (Persistence): Implemented methods in() and contains() in
> the Query-Object. Resolves #6707.
> [+FEATURE] Extbase (Persistence): It is now possible to ask contains()
> for mm-relations, e.g. $query->contains('categories', $category).
> Resolves #4679.
>
> Regards
> Jochen
More information about the TYPO3-project-typo3v4mvc
mailing list