تم نشر الاصدار الجديد (3.0.0) من فئة (class) php-database-class

اذا كنت مهتماً يمكنك الاطلاع عليه وعلى جميع مكوناته على github عبر الرابط :

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

  • إضافة التعديل بشكل مباشر (update)

  • إصلاح دالة dataView عند استدعاء دالة first

  • تعديل طريقة استدعاء الدوال

    • الدوال (select, first, find, paginate) الان تُعيد object من Database Class
    • يمكن استخدامه كمصفوفة او كائن على حسب اعدادك لخيار "fetch" في ملف database_config.php
    • في اي وقت يمكنك تحويله الى مصفوفة او كائن باستخدام دالة results()

دعوني اوضح هذه التعديلات بشكل سريع :

بالاصدارات السابقة كانت العملية تجري كما بالمثال :

حذف جميع المًستخدمين غير المُفعلين use PHPtricks\Database\Database;

$db = Database::connect();

$db->table("users")
    ->where("active", 0)
    ->select();

$db->delete();

بالاصدار الجديد :

use PHPtricks\Database\Database;

$db = Database::connect();

$unactiveUsers = $db->table("users")
    ->where("active", 0)
    ->select();

$unactiveUsers->delete();


// OR
$db->table("users")
    ->where("active", 0)
    ->select()
    ->delete();

الدوال (select, first, find, paginate) تعيد كائن من Database class ولكن تُستخدم ككائن اومصفوفة

  • طبعاً استخدامها ككائن او مصفوفة حسب اعدادك للعُنصر "fetch" في ملف الاعدادات

مثال :

$coustomFields = $db->table('users')
        ->select(['id', 'name', 'email']);

var_dump($coustomFields);

// if configure to return object
echo $coustomFields->name;
echo $coustomFields->email;

// if configure to return array
echo $coustomFields['name'];
echo $coustomFields['email'];

لكن يجب ان تنتبه اذا تم اعادة اكثر من صف لا يمكن استخدامها مباشرة بهذا الشكل بل يجب الدوران داخلها.

// or yo can foreach the returned values
foreach($coustomFields as $fields)
{
    // ...
}

التعديل بشكل مُباشر :

التعديل بشكل مباشر على الصف عن طريق دالة save()

لنفرض اننا نريد تعديل اسم المُستخدم الذي يحمل id رقم 105 الى Mohammad

يُمكننا هذا بطريقتين الان الاولى (القديمة) :

$db->where("id", 105)
    ->update([
        "username" => "Mohammad"
    ]);

ولكن لنفرض اننا استعلمنا عن المُستخدم وبعد عملية الاستعلام نريد التعديل تاتي (الطريقة الثانية)

$user = $db->find(105);

// ... any thing

$user->username = "Mohammad";
$user->save();

اذا كنا نستخدم البيانات كمصفوفة :

$user = $db->find(105);

// ... any thing

$user['username'] = "Mohammad";
$user->save();

لكن لاحظ انه لا يمكنك استخدام هذه الخاصية مع عدة صفوف بشكل مُباشرة بدون دوران :

خطأ :

$multiUsers = $db->table('users')
    ->where('name', 'mohammad')
    ->select();

$multiUsers->name = 'Mohhamed'; // ERROR
$multiUsers->save(); // ERROR

صحيح :

$multiUsers = $db->table('users')
    ->where('name', 'mohammad')
    ->select();

foreach($multiUsers as $user)
{
    $user->name = 'Mohhamed';
    $user->save();
}
  • جميع الامثلة السابقة يمكننا عملها مع الدوال (select, first, find, paginate).

لِمُشاهدة جميع الخصائص والامثلة وتحميل الفئة يمكنك ان تجدهم على Github :

/