1. Go to this page and download the library: Download sanovskiy/simple-object 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/ */
use SimpleObject\ModelsWriter\ModelsGenerator;
ModelsGenerator::reverseEngineerModels();
use Sanovskiy\SimpleObject\ModelsWriter\ModelsGenerator;
ModelsGenerator::reverseEngineerModels();
// Inserting a new record
$user = new User();
$user->Name = 'John Doe';
$user->Email = '[email protected]';
$user->save();
// Instantly update value in database and in model property
$user->store('Name','Jane Doe');
// You also can use table column name
$user->store('email','[email protected]');
// Retrieving records
$users = User::find(['status' => 'active']); // result: QueryResult - immutable version of Collection
// or just by PK
$user = User::one(['id'=>1]);
// Alternative method
$user = new User();
$user->Id = 1;
$user->load();
// Updating a record
$user = User::one(['id' => 1]); // result: Your\Models\Namespace\Logic\User
$user->Name = 'Jane Doe';
$user->save(); // result: bool
// Deleting a record
$user = User::one(['id' => 1]);
$user->delete();
// Fetching certain orders
$user = Person::one(['id'=>1]);
$userOrders = $user->getShopOrders(); // QueryResult that contain all user's orders
$orders2024 = $user->getShopOrders(['created_at'=>['>','2024-01-01']]); // all user's orders created after 2024-01-01
$last5orders = $user->getShopOrders([':LIMIT'=>5,':ORDER'=>['created_at','DESC']]); // last 5 orders
public function getShopOrders(?array $filters = []): QueryResult
public function getPerson(): ?Person
$user = new User();
$user->Id = 1;
// Loads the user from the database if it exists there. If not, it will load data from the database.
$user->load();
$user1 = new User();
$user1->Id = 1;
$user1->load(); // Here, SimpleObject skips querying the database and gets data from the cache.
// If you want to skip cache check, you can pass `true` to this method.
$user1->load(true); // Force load from the database