تم نشر الاصدار الجديد (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 :
/
التعليقات