havvg / propel-uniquekey-instancepooling-behavior
The UniqueKeyInstancePoolingBehaviors adds additional instance pooling to findOne query methods operating on unique keys.
Installs: 58
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/havvg/propel-uniquekey-instancepooling-behavior
Requires
- propel/propel1: >=1.6.4
Requires (Dev)
- phpunit/phpunit: 3.7.*
This package is not auto-updated.
Last update: 2025-10-11 19:23:22 UTC
README
See the Propel documentation on how to install a third party behavior
Usage
Just add the following XML tag in your schema.xml
file:
<behavior name="unique_key_instance_pooling" />
For example:
<database name="default" defaultIdMethod="native"> <table name="user"> <column name="id" type="integer" autoIncrement="true" primaryKey="true" /> <column name="email" type="varchar" size="255" required="true" primaryString="true" /> <behavior name="unique_key_instance_pooling" /> <unique> <unique-column name="email" /> </unique> </table> </database>
The behavior will add two methods for each unique key:
-
A static key generator; from the example this would be
createUniquePoolingKeyForEmail
. This method returns the key used when accessing the instances pool. -
The
findOneByEmail
method will be actually implemented. This method wraps the original method around instance pooling.
<?php $email = 'mail@example.com'; /* * This retrieves the user from the database. * The hydrated object will be put into the instances pool under a special key. */ $user = UserQuery::create()->findOneByEmail($email); // .. more code .. /* * As this user is in the instances pool of the behavior, * the cached object will be returned without accessing the database. */ $user = UserQuery::create()->findOneByEmail($email);