Skip to content

Repository files navigation

Installing via composer and using as a lib

composer require arojunior/php-orm-pdo

create a file to overwrite the database config

useSimpleORM\core\model\Model;
class AppModel extends Model
{
public$db_config = [
'db_host' => '192.168.1.1',
'db_name' => 'test',
'db_user' => 'root',
'db_pass' => ''
];
}

And then you can extend this class in your classes

useYourNamespace\AppModel;
class Example extends AppModel
{
public$table = 't_user';
public$pk = 'user_id';
publicfunctiongetAll()
{
return$this->findAll();
}
}

CRUD

namespaceSimpleORM\app\model;
useSimpleORM\core\model\Model;
class Users extends Model
{
/* * * Basic configuration * These arguments are optionals * protected $table = 'users'; //just if the class name a table name are different * protected $pk = 'id'; //just if the primary key name is not id */ }

Creating a new user (without check)

$this->Users->create([
'name' => 'Junior Oliveira',
'email' => 'arojunior@gmail.com'
]);

Let the ORM choose if it will be created or updated. The ORM will execute the find method before to decide if will create or update data

Saving data

$this->Users->save([
'id' => 1,
'name' => 'Junior Oliveira'
]);

Retrieving the id

$this->Users->lastSavedId();

Updating a user with id = 1

$this->Users->update([
'id' => 1,
'email' => 'contato@arojunior.com'
]);

Delete

$this->Users->delete(['id' => 1]);

Read

$this->Users->findAll(); // fetchAll$this->Users->findOne(['email' => 'arojunior@gmail.com']);
$this->Users->findById($id);

Checking

$this->Users->exists($id);

in case of true, you cat get the data with:

$this->Users->fetch();

Functionalities if used as Framework

  • CRUD functions
  • Auto load Model classes in Controllers
  • To use the automatic functions you should use the filename and structure conventions
  • Just follow the example on /controller/UsersController.php
  • All controllers in /app/controllers folder
  • All models in /app/models folder

Convetions

  • All controllers in /app/controller path
  • All models in /app/model path
  • All views in /app/view path
  • Filenames and classes must has the same name

About

Micro PHP ORM Library

Topics

Resources

Stars

20 stars

Watchers

7 watching

Forks

Releases

Packages

Used by

Contributors

Languages