Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

A PHP library that allows you to easily create and define your models using PDO

License

lodev09/php-models

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

63 Commits

Repository files navigation

PHP Models

A PHP library that allows you to easily create and define your models using PDO

Features

  • PDO wrapper
  • FETCH_INTO made easy
  • Model helper

Installation

$ composer require lodev09/php-models

Usage

DB.php

The main \Models\DB class is a PDO wrapper used to make CRUD much easier. It is a forked code from the php-pdo-wrapper-class

// 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);

Available CRUD methods

  • $db->insert($sql, $binds) or $db->insert($table, $values)
  • $db->select($sql, $binds)
  • $db->row($sql, $binds) (same with select but will return single row)
  • $db->update($sql, $binds) or $db->update('table', $values)
  • $db->delete($sql, $binds) or $db->delete('table', $filters)

The default style is PDO::FETCH_OBJ

Example:

$users = $db->select("SELECT * FROM users WHERE active = 1 AND username = :username", array('username' => 'lodev09'));
var_dump($users);

Model.php

The \Models\Model class is a parent class that can be inherited to a Model class. Inheriting this class allows you to automatically map the result "row" into your model class (table). This class basically uses the PDO::FETC_INTO style and made it easier for you. Here are the steps to link your table into a class:

  1. Initiate the \Models\DB instance (see above)
$db = new \Models\DB(DB_HOST, DB_NAME, DB_USER, DB_PASSWORD);
\Models\Model::setDb($db);
  1. Create your model class. For example, a User.php class
namespace Models;
class User extends Model {
 public function getName() {
 return $this->name;
 }
}
  1. Register your table to your custom class
// somewhere in your init.php
\Models\User::register('users');

Now, you can directly get the User instance from a query. Example:

$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;
}

Feedback

All bugs, feature requests, pull requests, feedback, etc., are welcome. Visit my site at www.lodev09.com or email me at lodev09@gmail.com

Credits

© 2018 - Coded by Jovanni Lo / @lodev09

License

Released under the MIT License. See LICENSE file.

About

A PHP library that allows you to easily create and define your models using PDO

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

AltStyle によって変換されたページ (->オリジナル) /