FAQ PHP
FAQ PHPConsultez toutes les FAQ
Nombre d'auteurs : 68, nombre de questions : 580, dernière mise à jour : 18 septembre 2021
- Qu'est-ce qu'EZPDO ?
- Comment installer EZPDO ?
- Comment fonctionne EZPDO ?
- Comment gérer la persistance avec EZPDO ?
- Commment insérer des données avec EZPDO ?
- Comment lire les enregistrements d'une table avec EZPDO ?
- Comment modifier un enregistrement d'une table avec EZPDO ?
- Comment supprimer un enregistrement d'une table avec EZPDO ?
- Comment vider une table avec EZPDO ?
- Comment relier deux tables avec EZPDO (relation 1,N) ?
EZPDO est une solution d'ORM en PHP.
Cette bibliothèque utilise ADOdb, une bibliothèque écrite en PHP.
Lien : Qu'est-ce qu'ADOdb ?
Lien : Tutoriel ORM : Simplifiez les accès à votre base de données avec EZPDO en PHP, par Pierre-Nicolas Mougel
EZPDO est une bibliothèque écrite en PHP, elle a besoin des extensions tokenizer, xml, simplexml et sqlite pour fonctionner.
Enfin, il faut placer quelque part un fichier de configuration comme celui-ci :
<?xml version="1.0" encoding="ISO-8859-1" ?>
<options>
<source_dirs>
classes</source_dirs>
<compiled_dir>
compiled</compiled_dir>
<default_dsn>
mysql://Yogui:motdepasse@localhost/developpez</default_dsn>
</options>
Lien : Comment installer une bibliothèque ?
Lien : Comment installer une extension pour PHP ?
EZPDO utilise les commentaires du code source PHP pour deviner la structure de la BDD (c'est la persistance). C'est le tag "@orm" (syntaxe phpDocumentor) qui est utilisé.
Il faut agir sur les données pour qu'EZPDO crée les tables dans la BDD : un ajout ou une suppression feront l'affaire.
Prenons l'exemple d'un utilisateur ayant un nom et un mot de passe. Le champ eoid (identifiant numérique auto incrémenté) est ajouté automatiquement par EZPDO.
<?php
class
User
{
/**
* @orm char(
15
)
*/
public
$name
;
/**
* @orm char(
40
)
*/
public
$password
;
}
?>
<?php
include_once 'classes/ezpdo_runtime.php'
;
include_once 'models/User.php'
;
// load config.xml (optional: not needed if it is in currrent dir)
//epLoadConfig('/path/to/your/config.xml');
// récupérer le gestionnaire de persistance
$db
=
epManager::
instance();
// créer un utilisateur
$user
=
$db
->
create('User'
);
$user
->
name =
'Yogui'
;
$user
->
password =
strval(sha1('1234'
));
// créer un autre utilisateur
$user
=
$db
->
create('User'
);
$user
->
name =
'BrYs'
;
$user
->
password =
strval(sha1('4321'
));
$db
->
flush($user
);
?>
Prenons l'exemple d'un utilisateur ayant un nom et un mot de passe.
<?php
class
User
{
/**
* @orm char(
15
)
*/
public
$name
;
/**
* @orm char(
40
)
*/
public
$password
;
}
?>
<?php
include_once 'classes/ezpdo_runtime.php'
;
include_once 'models/User.php'
;
// load config.xml (optional: not needed if it is in currrent dir)
//epLoadConfig('/path/to/your/config.xml');
// récupérer le gestionnaire de persistance
$db
=
epManager::
instance();
$users
=
$db
->
find($db
->
create('User'
));
foreach
($users
as
$user
)
{
echo $user
->
name.
'<br />'
;
}
?>
<?php
include_once 'classes/ezpdo_runtime.php'
;
include_once 'models/User.php'
;
// load config.xml (optional: not needed if it is in currrent dir)
//epLoadConfig('/path/to/your/config.xml');
// récupérer le gestionnaire de persistance
$db
=
epManager::
instance();
$user
=
$db
->
create('User'
);
$user
->
name =
'Yogui'
;
$users
=
$db
->
find($user
);
foreach
($users
as
$user
)
{
echo $user
->
name.
'<br />'
;
}
?>
Prenons l'exemple d'un utilisateur ayant un nom et un mot de passe.
<?php
class
User
{
/**
* @orm char(
15
)
*/
public
$name
;
/**
* @orm char(
40
)
*/
public
$password
;
}
?>
<?php
include_once 'classes/ezpdo_runtime.php'
;
include_once 'models/User.php'
;
// load config.xml (optional: not needed if it is in currrent dir)
//epLoadConfig('/path/to/your/config.xml');
// récupérer le gestionnaire de persistance
$db
=
epManager::
instance();
$user
=
$db
->
create('User'
);
$user
->
name =
'Yogui'
;
$users
=
$db
->
find($user
);
foreach
($users
as
$user
)
{
$user
->
name =
'Yog'
;
$db
->
commit($user
);
}
?>
Prenons l'exemple d'un utilisateur ayant un nom et un mot de passe.
<?php
class
User
{
/**
* @orm char(
15
)
*/
public
$name
;
/**
* @orm char(
40
)
*/
public
$password
;
}
?>
<?php
include_once 'classes/ezpdo_runtime.php'
;
include_once 'models/User.php'
;
// load config.xml (optional: not needed if it is in currrent dir)
//epLoadConfig('/path/to/your/config.xml');
// récupérer le gestionnaire de persistance
$db
=
epManager::
instance();
$user
=
$db
->
create('User'
);
$user
->
name =
'Yogui'
;
$users
=
$db
->
find($user
);
foreach
($users
as
$user
)
{
$db
->
delete($user
);
}
?>
<?php
class
User
{
/**
* @orm char(
15
)
*/
public
$name
;
/**
* @orm char(
40
)
*/
public
$password
;
}
?>
<?php
include_once 'classes/ezpdo_runtime.php'
;
include_once 'models/User.php'
;
// load config.xml (optional: not needed if it is in currrent dir)
//epLoadConfig('/path/to/your/config.xml');
// récupérer le gestionnaire de persistance
$db
=
epManager::
instance();
$db
->
deleteAll('User'
);
?>
Prenons l'exemple d'un utilisateur (nom + mot de passe) qui écrit des messages (titre + texte).
<?php
class
User
{
/**
* @orm composed_of many Message
*/
public
$messages
;
/**
* @orm char(
15
)
*/
public
$name
;
/**
* @orm char(
40
)
*/
public
$password
;
}
?>
<?php
class
Message
{
/**
* @orm has one User
*/
public
$user
;
/**
* @orm char(
50
)
*/
public
$title
;
/**
* @orm char(
1000
)
*/
public
$text
;
}
?>
<?php
include_once 'classes/ezpdo_runtime.php'
;
include_once 'models/User.php'
;
include_once 'models/Message.php'
;
// load config.xml (optional: not needed if it is in currrent dir)
//epLoadConfig('/path/to/your/config.xml');
// récupérer le gestionnaire de persistance
$db
=
epManager::
instance();
$message_1
=
$db
->
create('Message'
);
$message_1
->
title =
'test 1'
;
$message_2
=
$db
->
create('Message'
);
$message_2
->
title =
'test 2'
;
$message_3
=
$db
->
create('Message'
);
$message_3
->
title =
'test 3'
;
// créer un utilisateur
$user
=
$db
->
create('User'
);
$user
->
name =
'Yogui'
;
$user
->
password =
strval(sha1('1234'
));
$user
->
messages =
array
($message_1
,
$message_2
);
// créer un autre utilisateur
$user
=
$db
->
create('User'
);
$user
->
name =
'BrYs'
;
$user
->
password =
strval(sha1('4321'
));
$user
->
messages =
$message_3
;
$db
->
flush();
$user
=
$db
->
create('User'
);
$users
=
$db
->
find($user
);
foreach
($users
as
$user
)
{
echo $user
->
name.
'<br />'
;
foreach
($user
->
messages as
$message
)
{
echo $message
->
title.
'<br />'
;
}
}
?>