PHP code example of flightphp / active-record

1. Go to this page and download the library: Download flightphp/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/ */

    

flightphp / active-record example snippets


composer 

/**
 * An ActiveRecord class is usually singular
 * 
 * It's highly recommended to add the properties of the table as comments here
 *
 * @property int    $id
 * @property string $name
 * @property string $password
 */ 
class User extends flight\ActiveRecord {
  public function __construct($databaseConnection)
  {
    parent::__construct($databaseConnection, 'users', [/* custom values */]);
  }
}

// for sqlite
$database_connection = new PDO('sqlite:test.db'); // this is just for example, you'd probably use a real database connection

// for mysql
$database_connection = new PDO('mysql:host=localhost;dbname=test_db&charset=utf8bm4', 'username', 'password');

// or mysqli
$database_connection = new mysqli('localhost', 'username', 'password', 'test_db');
// or mysqli with non-object based creation
$database_connection = mysqli_connect('localhost', 'username', 'password', 'test_db');

$user = new User($database_connection);
$user->name = 'Bobby Tables';
$user->password = password_hash('some cool password');
$user->insert();
// or $user->save();

echo $user->id; // 1

$user->name = 'Joseph Mamma';
$user->password = password_hash('some cool password again!!!');
$user->insert();

echo $user->id; // 2

$user->find(1); // find id = 1 in the database and return it.
echo $user->name; // 'Bobby Tables'

$users = $user->findAll();

$users = $user->like('name', '%mamma%')->findAll();

// Count rows with conditions
$user->count();
$user->eq('status', 'active')->count();

// Check if any rows match
$user->eq('name', 'Bobby')->exists(); // true

// Get flat array of values from a single column
$user->pluck('name'); // ['Bobby', 'Joseph', ...]

// Get primary keys
$user->ids(); // [1, 2, ...]

// Get first/last record (ordered by primary key)
$user->first();
$user->last();

// Update a single attribute on a loaded record
$loadedUser = $user->find(1);
$loadedUser->updateAttribute('name', 'New Name');

$user->distinct()->pluck('status'); // ['active', 'inactive', ...]

// Update multiple rows
$user->eq('status', 'inactive')->updateAll(['status' => 'active']);

// Delete multiple rows (use with caution!)
$user->eq('status', 'deleted')->deleteAll();

class User extends ActiveRecord
{
    protected bool $timestamps = true;

    public function __construct($databaseConnection)
    {
        parent::__construct($databaseConnection, 'users');
    }
}

class User extends ActiveRecord
{
    public function active(): self
    {
        return $this->eq('status', 'active');
    }

    public function recent(int $days = 7): self
    {
        return $this->ge('created_at', date('Y-m-d', strtotime("-{$days} days")));
    }
}

// Usage
$users = (new User($db))->active()->findAll();
$recent = (new User($db))->active()->recent(30)->findAll();

$user->transaction(function ($model) {
    $model->insert();
    // Automatically commits on success, rolls back on exception
});