السلام عليكم ,

هذا اصدار قم 1.1.0 لـ PDO Database Class

ما الجديد ؟

تم اضافة دوال للتعامل مع Data Definition Language (DDL)

ليس كلها ولكن بعضها .

تم اضافة :

1 - انشاء جدول جديد

2- حذف جدول

3- اضافة عمود جديد

4- حذف عمود

5- اعادة تسمية عمود موجود.

اسلوب الاضافة والتعديل والحذف تغير قليلا (insert, update, delete)

سابقا كان :

<?php 

$db = DB::get();

$db->insert('table_name', [

        'name'         => 'name_value',
        'other_column' => 'column_value'
]);

$db->update('table_name', [

        'name'         => 'name_value',
        'other_column' => 'column_value'
], ['id', '=', 5]);

$db->delete('table_name', ['id', '=', 5]);

في هذا الاصدار :

<?php 

$db = DB::get();

$db->table('table_name')->insert([

        'name'         => 'name_value',
        'other_column' => 'column_value'
]);

$db-table('table_name')->>update([

        'name'         => 'name_value',
        'other_column' => 'column_value'
], ['id', '=', 5]);

$db->table('table_name')->delete(['id', '=', 5]);

انشاء جدول :

  $db = DB::get();

$db->table('students')->schema([
        'id' => 'increments',
        'name' => 'string:255 | not_null',
        'number' => 'int|unsigned';
    ])->create();

جملة SQL التي سيتم تنفيذها عن الكود السابق :

 CREATE TABLE students ( id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT NOT NULL, name VARCHAR(255) NOT NULL, number INT UNSIGNED

مثال اخر :

$db = DB::get();

   $schema = [
    'id' => 'increments',
    'username' => 'string:100|not_null',
    'full_name' => 'string:255|defualt:no-name',
    'joind' => 'timestamps',
    'user_email' => 'string:100|not_null',
];

$db->table('users')->schema($schema)->create();

اذا كنت مهتم يمكنك ايجاد الclass على github من هنا :