1. Go to this page and download the library: Download peacq/picorm library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
peacq / picorm example snippets
\PicORM\PicORM::configure(array(
'datasource' => new PDO('mysql:dbname=DBNAME;host=HOST', 'DBLOGIN', 'DBPASSWD')
));
class Brand extends \PicORM\Model
{
protected static $_tableName = 'brands';
protected static $_primaryKey = 'idBrand';
protected static $_tableFields = array(
'nameBrand',
'noteBrand'
);
public $idBrand;
public $nameBrand;
public $noteBrand;
}
// creating new model
$brand = new Brand();
// setting field
$brand -> nameBrand = 'Peugeot';
// save model
$brand -> save();
// Criteria with exact value (idBrand=10)
$brand = Brand :: findOne(array('idBrand' => 10));
// setting model property
$brand -> nameBrand = 'Audi';
// save model
$brand -> save();
// save model
$brand -> delete();
/**
* Find one model from criteria, allowing to order
* @param array $where - associative
* @param array $order - associative array
*/
public static function findOne($where = array(), $order = array())
/**
* Return Collection instance from criteria, allowing to order and limit result
* @param array $where - associative array
* @param array $order - associative array
* @param int $limitStart - int
* @param int $limitEnd - int
* @return Collection
*/
public static function find($where = array(),$order = array(), $limitStart = null, $limitEnd = null)
// php array access
$firstResult = $collection[0];
// counting collection
$nbResults = count($collection);
// using getter
$firstResult = $collection->get(0);
// iterate over the collection
foreach($collection as $model)
// or manual fetching / re-fetching
$collection->fetch();
// Delete all models in collection
$collection = Brand::find(array('noteBrand' => 10))
-> delete();
// Update and set noteBrand = 5 to collection
$collection = Brand::find(array('noteBrand' => array('IN(9,10,11)')))
-> update(array('noteBrand' => 5));
$carCollection = Car::find(); // grab all car from database
$carCollection->activePagination(50); // asking for 50 models by page
$carCollection->paginate(1); // asking for first page
/**
* Add a OneToOne relation
* @param $sourceField - model source field
* @param $classRelation - relation model classname
* @param $targetField - related model target field
* @param array $autoGetFields - field to auto get from relation when loading model
* @param string $aliasRelation - override relation auto naming className with an alias
* (ex : for reflexive relation)
*/
protected static function addRelationOneToOne($sourceField, $classRelation, $targetField, $autoGetFields = array(), $aliasRelation = '')
/**
* Add a OneToMany relation
* @param $sourceField - model source field
* @param $classRelation - relation model classname
* @param $targetField - related model target field
* @param string $aliasRelation - override relation auto naming className with an alias
*/
protected static function addRelationOneToMany($sourceField, $classRelation, $targetField, $aliasRelation = '')
/**
* Add a ManyToMany relation
* @param $sourceField - model source field
* @param $classRelation - relation model name
* @param $targetField - related model field
* @param $relationTable - mysql table containing the two models ID
* @param string $aliasRelation - override relation auto naming className
*/
protected static function addRelationManyToMany($sourceField, $classRelation, $targetField, $relationTable, $aliasRelation = '')
class Brand extends Model
{
protected static $_tableName = 'brands';
protected static $_primaryKey = "idBrand";
protected static $_relations = array();
protected static $_tableFields = array(
'nameBrand',
'noteBrand'
);
public $idBrand;
public $nameBrand;
public $noteBrand;
protected static function defineRelations()
{
// create a relation between Brand and Car
// based on this.idBrand = Car.idBrand
self::addRelationOneToMany('idBrand', 'Car', 'idBrand');
}
}
class Car extends Model
{
protected static $_tableName = 'cars';
protected static $_primaryKey = "idCar";
protected static $_relations = array();
protected static $_tableFields = array(
'idBrand',
'nameCar'
);
public $idCar;
public $idBrand;
public $nameCar = '';
protected static function defineRelations()
{
// create a relation between Car and Brand
// based on this.idBrand = Brand.idBrand
// nameBrand is added to autoget fields which is automatically fetched
// when model is loaded
self::addRelationOneToOne('idBrand', 'Brand', 'idBrand', 'nameBrand');
// create a relation between Car and Tag using a relation table car_have_tag
self::addRelationManyToMany("idCar","Tag","idTag","car_have_tag");
}
}
class Tag extends Model
{
protected static $_tableName = 'tags';
protected static $_primaryKey = "idTag";
protected static $_relations = array();
protected static $_tableFields = array(
'libTag',
);
public $idTag;
public $libTag = '';
protected static function defineRelations()
{
// create a relation between Tag and Car using a relation table car_have_tag
self::addRelationManyToMany('idTag','Car','idCar','car_have_tag');
}
}
// creating a brand
$brand = new Brand();
$brand -> nameBrand = "Peugeot";
$brand -> save();
// creating a car
$car = new Car();
$car -> nameCar = "205 GTi";
// setting car's brand
$car -> setBrand($brand);
// other way to setting car's brand
$car -> idBrand = $brand -> idBrand;
$car -> save();
// if we look for our car
$car = Car :: findOne(array('nameCar' => '205 GTi'));
// we can get brand of the car
$car -> getBrand();
// or we can access brand name directly because it has been added to relation auto get fields
$car -> nameBrand;
// get all cars from brand
// method return instance of \PicORM\Collection
foreach($brand -> getCar() as $cars)
// get all cars from brand with custom criteria
// parameters are same as find() method
// method return instance of \PicORM\Collection
$brand -> getCar($where,$order,$limitStart,$limitStop);
// creating some tags
$tag = new Tag();
$tag -> libTag = 'tag 1';
$tag -> save();
$tag2 = new Tag();
$tag2 -> libTag = 'tag 2';
$tag2 -> save();
$tag3 = new Tag();
$tag3 -> libTag = 'tag 3';
$tag3 -> save();
// setting car's tags
$car -> setTag(array($tag,$tag2,$tag3));
// getting car's tags (return instance of \PicORM\Collection)
$car -> getTag();
// getting car's tags with custom criteria
// parameters are same as find() method
// method return instance of \PicORM\Collection
$car -> getTag($where,$order,$limitStart,$limitStop);
// unset relation between $car and $tag2
$car -> unsetTag($tag2);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.