1. Go to this page and download the library: Download tatarko/dibi-active-record 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/ */
tatarko / dibi-active-record example snippets
use Tatarko\DibiActiveRecord\ActiveRecord;
/**
* Dynamic properties for accessing fields of table row
* @property integer $id
* @property string $name
*/
class User extends ActiveRecord
{
}
$model = new User();
$model->name = 'demo';
if($model->save()) { // insert new row to the table
echo $model->id; // autoincrement values automatically set to model's attribute
$model->delete();
}
$other = User::model()->findByPk(2); // by primary key (id field)
if($other) {
$other->name = 'another test';
$other->save(); // updates row in the table
}
foreach(User::model()->findAll() as $model) {
// getting&iterating all rows from table
}
use Tatarko\DibiActiveRecord\ActiveRecord;
/**
* Dynamic properties for accessing fields of table row
* @property integer $user_id
* @property string $name
*/
class User extends ActiveRecord
{
public function tableName()
{
return 'users';
}
public function primaryKeyName()
{
return 'user_id';
}
}
$model = new User();
var_dump($model->isNewRecord()); // true
$other = User::model()->findByPk(2);
var_dump($other->isNewRecord()); // false
$other->refresh(); // fetch current field values from db
// Getting first row that matches criteria
$model = User::model()->find();
// Specifying criteria for model searching
$model = User::model();
$criteria = $model->getCriteria()->search('name', 'dibi'); // search means `LIKE "%dibi%"
foreach($model->findAll() as $record) {
var_dump($record);
}
use Tatarko\DibiActiveRecord\ActiveRecord;
/**
* @property integer $id
* @property DateTime $created
* @property DateTime $updated
* @property array $jsonData
*/
class User extends ActiveRecord
{
public function filters()
{
return array(
array('jsonData', 'json'), // field will be on-the-fly encoded/decoded as json
array('createTime,updateTime', 'date'), // mysql timestamp field - will be interpreted as DateTime object
);
}
}
use Tatarko\DibiActiveRecord\FilterInterface;
use Tatarko\DibiActiveRecord\ActiveRecord;
class MyCustomFilter implementes FilterInterface
{
// interface implementation
}
/**
* @property integer $id
* @property mixed $specialField
*/
class User extends ActiveRecord
{
public function filters()
{
return array(
array('specialField', new MyCustomFilter()),
);
}
}
use Tatarko\DibiActiveRecord\ActiveRecord;
/**
* @property integer $id
* @property string $name
* @property string $group
*/
class User extends ActiveRecord
{
public function validators()
{
return array(
array('name,group', 'string'),
array('group', 'in', 'haystack' => array('visitor', 'admin')),
array('name', function($validator) {
// callback validator
// value to validate can be accessed by $validator->getValue()
// and store error in case of invalid value using:
$validator->addError('Invalid name: '.$validator->getValue());
}),
);
}
}
use Tatarko\DibiActiveRecord\ValidatorAbstract;
use Tatarko\DibiActiveRecord\ActiveRecord;
class MyCustomValidator extends ValidatorAbstract
{
// abstract methods implementation
}
/**
* @property integer $id
* @property mixed $specialField
*/
class User extends ActiveRecord
{
public function filters()
{
return array(
array('specialField', new MyCustomValidator()),
);
}
}
use Tatarko\DibiActiveRecord\ActiveRecord;
/**
* @property integer $id
* @property string $name
* @property Service[] $services
*/
class User extends ActiveRecord
{
public function relations()
{
return array(
'services' => array(self::HAS_MANY, 'Service', 'user_id'),
);
}
}
/**
* @property integer $id
* @property integer $user_id
* @property string $name
* @property User $owner
*/
class User extends ActiveRecord
{
public function relations()
{
return array(
'owner' => array(self::BELONGS_TO, 'User', 'user_id'),
);
}
}
foreach(User::model()->findAll() as $model) {
foreach($model->services as $service) {
echo "User {$model->name} has service {$service->name}\n";
}
}
$service = Service::model()->findByPk(123);
echo "Onwer of {$service->name} service is {$service->owner->name}\n";
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.