16 lines
1.1 KiB
Plaintext
16 lines
1.1 KiB
Plaintext
**Helping the DQL parser**
|
|
There are two possible ways when it comes to using DQL. The first one is writing the plain DQL queries and passing them to Doctrine_Connection::query($dql). The second one is to use a Doctrine_Query object and its fluent interface. The latter should be preferred for all but very simple queries. The reason is that using the Doctrine_Query object and it's methods makes the life of the DQL parser a little bit easier. It reduces the amount of query parsing that needs to be done and is therefore faster.
|
|
|
|
**Efficient relation handling**
|
|
When you want to add a relation between two components you should **NOT** do something like the following:
|
|
<code type="php">
|
|
// Assuming a many-many between role - user
|
|
$user->roles[] = $newRole;
|
|
</code> This will load all roles of the user from the database if they're not yet loaded! Just to add one new link! Do this instead:
|
|
<code type="php">
|
|
// Assuming a many-many between role - user, where UserRoleXref is the cross-reference table
|
|
$ref = new UserRoleXref();
|
|
$ref->role_id = $role_id;
|
|
$ref->user_id = $user_id;
|
|
$ref->save();
|
|
</code> |