Une bibliothèque PHP qui vous permet de créer et définir facilement vos modèles grâce à PDO
FETCH_INTO
simplifié $ composer require lodev09/php-models
La classe principale ModelsDB
est un wrapper PDO utilisé pour rendre CRUD beaucoup plus facile. C'est un code forké de la classe php-pdo-wrapper
// connect to your database. Store the $db instance globally -- you only need to connect to your db ONCE!
$ db = new Models DB ( DB_HOST , DB_NAME , DB_USER , DB_PASSWORD );
Méthodes CRUD disponibles
$db->insert($sql, $binds)
ou $db->insert($table, $values)
$db->select($sql, $binds)
$db->row($sql, $binds)
(idem avec select
mais renverra une seule ligne)$db->update($sql, $binds)
ou $db->update('table', $values)
$db->delete($sql, $binds)
ou $db->delete('table', $filters)
Le style par défaut est PDO::FETCH_OBJ
Exemple:
$ users = $ db -> select ( " SELECT * FROM users WHERE active = 1 AND username = :username " , array ( ' username ' => ' lodev09 ' ));
var_dump ( $ users );
La classe ModelsModel
est une classe parent qui peut être héritée d’une classe Model . L'héritage de cette classe vous permet de mapper automatiquement la « ligne » de résultat dans votre classe de modèle (table). Cette classe utilise essentiellement le style PDO::FETC_INTO
et vous facilite la tâche. Voici les étapes pour lier votre table à une classe :
ModelsDB
(voir ci-dessus) $ db = new Models DB ( DB_HOST , DB_NAME , DB_USER , DB_PASSWORD );
Models Model:: setDb ( $ db );
User.php
namespace Models ;
class User extends Model {
public function getName () {
return $ this -> name ;
}
}
// somewhere in your init.php
Models User:: register ( ' users ' );
Désormais, vous pouvez obtenir directement l'instance User
à partir d'une requête. Exemple:
$ user = Models User:: row ( " SELECT id, name FROM users WHERE id = 1 AND active = 1 " );
// you can call the getName() method now
if ( $ user ) {
$ name = $ user -> getName ();
echo ' His name is ' . $ name ;
}
Tous les bugs, demandes de fonctionnalités, demandes d'extraction, commentaires, etc. sont les bienvenus. Visitez mon site à www.lodev09.com ou envoyez-moi un e-mail à [email protected]
© 2018 - Codé par Jovanni Lo / @lodev09
Publié sous la licence MIT. Voir le fichier LICENCE.