1
0
mirror of synced 2025-01-17 22:11:41 +03:00

added DQL introduction

This commit is contained in:
zYne 2006-09-29 11:17:16 +00:00
parent 1ff90159d6
commit 487e07aea6
4 changed files with 52 additions and 1 deletions

View File

@ -0,0 +1,26 @@
<?php
// DO NOT USE THE FOLLOWING CODE
// (using many sql queries for object population):
$users = $conn->getTable('User')->findAll();
foreach($users as $user) {
print $user->name."<br \>";
foreach($user->Phonenumber as $phonenumber) {
print $phonenumber."<br \>";
}
}
// same thing implemented much more efficiently:
// (using only one sql query for object population)
$users = $conn->query("FROM User.Phonenumber");
foreach($users as $user) {
print $user->name."<br \>";
foreach($user->Phonenumber as $phonenumber) {
print $phonenumber."<br \>";
}
}
?>

View File

@ -0,0 +1,19 @@
Doctrine Query Language(DQL) is an Object Query Language created for helping users in complex object retrieval.
You should always consider using DQL(or raw SQL) when retrieving relational data efficiently (eg. when fetching users and their phonenumbers).
<br \><br \>
When compared to using raw SQL, DQL has several benefits: <br \>
<ul>
<li \>From the start it has been designed to retrieve records(objects) not result set rows
</ul>
<ul>
<li \>DQL understands relations so you don't have to type manually sql joins and join conditions
</ul>
<ul>
<li \>DQL has some very complex built-in algorithms like (the record limit algorithm) which can help
developer to efficiently retrieve objects
</ul>
<ul>
<li \>It supports some many functions that help dealing with one-to-many, many-to-many relational data with conditional fetching.
</ul>
If the power of DQL isn't enough, you should consider using the rawSql API for object population.

View File

@ -298,7 +298,10 @@ $menu = array("Getting started" =>
*/
),
"DQL (Doctrine Query Language)" =>
array('Syntax' =>
array('Introduction',
'Syntax' =>
array(
'FROM',
'WHERE',

View File

@ -42,6 +42,9 @@ color: #367FAC;
a.big {
font-size: 14 px;
}
i {
color: #367FAC;
}
a {
color: #367FAC;
}