- Монгол | 2. English | 3. Getting Started
PDO суурьтай өгөгдлийн модель ба хүснэгтүүдийг удирдагч компонент. MySQL / PostgreSQL / SQLite дээр адилхан кодоор ажилладаг.
codesaur/dataobject нь codesaur ecosystem-ийн нэг хэсэг бөгөөд хөнгөн жинтэй,
фрэймворкоос үл хамааран standalone байдлаар ашиглаж болох PHP өгөгдлийн давхаргын компонент юм.
Багц нь дараах үндсэн class-уудаас бүрдэнэ:
- Model - нэг хүснэгтэд зориулсан загварын суурь класс
- LocalizedModel - олон хэл дээрх контент хадгалах зориулалттай загварын суурь класс
- Column - хүснэгтийн баганын бүтцийг тодорхойлох класс
- Constants - бүх тогтмол утгуудыг (driver, error code, column нэрс) төвлөрүүлсэн класс
- PDOTrait - PDO үйлдлүүдийг төвлөрүүлсэн trait
- TableTrait - хүснэгттэй ажиллах үндсэн боломжуудыг агуулсан trait
- Бүрэн танилцуулга - Суурилуулалт, хэрэглээ, жишээнүүд
- API тайлбар - Бүх метод, exception-үүдийн тайлбар
- Шалгалтын тайлан - Код шалгалтын тайлан
PDO-based data model and table management component. Works with the same code on MySQL / PostgreSQL / SQLite.
codesaur/dataobject is part of the codesaur ecosystem and is a lightweight PHP data layer component that can be used standalone, independent of any framework.
The package consists of the following core classes:
- Model - base class for models targeting a single table
- LocalizedModel - base class for models storing content in multiple languages
- Column - class for defining table column structure
- Constants - centralized class for all constant values (drivers, error codes, column names)
- PDOTrait - trait centralizing PDO operations
- TableTrait - trait containing basic capabilities for working with tables
- Full Documentation - Installation, usage, examples
- API Reference - Complete API documentation
- Review - Code review report
- PHP 8.2.1+ with
ext-pdoextension - Composer
- MySQL or PostgreSQL or SQLite
Composer ашиглан суулгана / Install via Composer:
composer require codesaur/dataobjectuse codesaur\DataObject\Model;
use codesaur\DataObject\Column;
class UserModel extends Model
{
public function __construct(\PDO $pdo)
{
$this->setInstance($pdo);
$this->setColumns([
(new Column('id', 'bigint'))->primary(),
(new Column('username', 'varchar', 64))->unique(),
new Column('password', 'varchar', 255),
(new Column('is_active', 'tinyint'))->default(1),
new Column('created_at', 'datetime'),
]);
$this->setTable('users');
}
protected function __initial()
{
// Хүснэгт анх удаа үүсгэгдэх үед ганц удаа ажиллана
}
}
// Хэрэглэх / Usage
$pdo = new \PDO('mysql:host=localhost;dbname=test', 'user', 'pass');
$userModel = new UserModel($pdo);
// Нэмэх / Insert
$user = $userModel->insert([
'username' => 'john',
'password' => password_hash('secret', PASSWORD_DEFAULT),
'created_at' => date('Y-m-d H:i:s'),
]);
// Унших / Read
$user = $userModel->getById(1);
$user = $userModel->getRowWhere(['username' => 'john']);
$exists = $userModel->existsById(1);
$total = $userModel->countRows(['WHERE' => 'is_active=1']);Тест ажиллуулах / Run tests:
# Бүх тестүүдийг ажиллуулах / Run all tests
composer test
# Coverage-тэй тест ажиллуулах / Run tests with coverage
composer test-coverage- CHANGELOG.md - Full version history
This project is licensed under the MIT License.
Narankhuu
codesaur@gmail.com
https://github.com/codesaur
codesaur ecosystem: https://codesaur.net