Библиотека PHP, которая позволяет легко создавать и определять модели с помощью PDO.
FETCH_INTO
стало проще $ composer require lodev09/php-models
Основной класс ModelsDB
— это оболочка PDO, используемая для упрощения CRUD. Это разветвленный код класса 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 );
Доступные методы CRUD
$db->insert($sql, $binds)
или $db->insert($table, $values)
$db->select($sql, $binds)
$db->row($sql, $binds)
(то же самое, что и select
, но возвращает одну строку)$db->update($sql, $binds)
или $db->update('table', $values)
$db->delete($sql, $binds)
или $db->delete('table', $filters)
Стиль по умолчанию — PDO::FETCH_OBJ
Пример:
$ users = $ db -> select ( " SELECT * FROM users WHERE active = 1 AND username = :username " , array ( ' username ' => ' lodev09 ' ));
var_dump ( $ users );
Класс ModelsModel
— это родительский класс, который можно унаследовать от класса Model . Наследование этого класса позволяет автоматически сопоставлять результирующую «строку» с классом вашей модели (таблицей). Этот класс в основном использует стиль PDO::FETC_INTO
и упрощает для вас задачу. Вот шаги, чтобы связать вашу таблицу с классом:
ModelsDB
(см. выше). $ 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 ' );
Теперь вы можете напрямую получить экземпляр User
из запроса. Пример:
$ 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 ;
}
Все ошибки, запросы на добавление новых функций, запросы на включение, отзывы и т. д. приветствуются. Посетите мой сайт www.lodev09.com или напишите мне по адресу [email protected].
© 2018 - Автор: Джованни Ло / @lodev09
Выпущено по лицензии MIT. См. файл ЛИЦЕНЗИИ.