هذا هو مشروع محفظتي لبرنامج هندسة البرمجيات ALX. المشروع عبارة عن ORM بسيط يسمح لك بالتفاعل مع قاعدة البيانات باستخدام PHP. لا يزال المشروع في مراحله الأولى ولا يوصى باستخدامه في بيئات الإنتاج. المشروع مفتوح المصدر والمساهمات هي موضع ترحيب.
Sebastian Muchui
MIT
0.1.0
تحتاج إلى تثبيت PHP على جهازك لاستخدام هذه الحزمة. إذا لم يكن PHP مثبتًا لديك، فيمكنك تنزيله من موقع PHP الرسمي.
ثانيا، تأكد من تثبيت الملحن في جهازك. إذا لم يكن الأمر كذلك، فيمكنك تثبيته باتباع الإرشادات المتوفرة في موقع الملحن الرسمي. بمجرد الانتهاء من ذلك، ستحتاج إلى إنشاء ملف Composer.json في الدليل الجذر لمشروعك وإضافة الكود التالي:
{
"minimum-stability" : " dev "
}بعد ذلك، يمكنك تثبيت الحزمة عن طريق تشغيل الأمر التالي في جهازك:
composer require astianmuchui/ PixelSequelيأتي ORM مع جزأين رئيسيين، تم تصميمهما بشكل منفصل للسماح بالمرونة وسهولة الاستخدام. الجزأين هما:
النموذج هو جزء من ORM الذي يسمح لك بالتفاعل مع جداول قاعدة البيانات. يسمح لك بإجراء عمليات مثل الإدراج والتحديث والاستعلام والحذف. لاستخدام النموذج، تحتاج إلى إنشاء مثيل جديد لفئة النموذج.
use PixelSequel Model Model ;
new Model (
dbname: ' pixel_sequel ' ,
username: ' root ' ,
password: '' ,
dbhost: ' localhost '
);افتراضيًا، يتم تعيين القيم التالية:
username : 'root'password : ''dbhost : 'localhost'في بيئة التطوير، يمكنك فقط تمرير dbname باعتباره المعلمة الوحيدة لفئة النموذج.
use PixelSequel Model Model ;
new Model (
dbname: ' pixel_sequel '
); لإدراج البيانات، ما عليك سوى استدعاء طريقة Insert الثابتة. لاحظ أن مثيل النموذج لا يحتاج إلى تعيينه لمتغير لأن الطرق ستستنتج الاتصال من الكائن الذي تم إنشاء مثيل له.
use PixelSequel Model Model ;
new Model (
dbname: ' pixel_sequel '
);
Model:: Insert (
table: ' users ' ,
data: [
' name ' => ' John Doe ' ,
' email ' => ' [email protected] '
]
);يجب أن تكون مفاتيح صفائف البيانات أسماء أعمدة صالحة في الجدول. القيم المقابلة هي القيم التي سيتم إدراجها في الجدول. في الإصدارات القادمة، سيتمكن ORM من استنتاج أسماء الأعمدة تلقائيًا من الجدول والتحقق من صحة البيانات قبل الإدراج.
هنا تحتاج أساسًا إلى استدعاء الأسلوب All فقط. يمكن أن تأخذ الطريقة مجموعة متنوعة من المعلمات لتصفية البيانات التي تريد استردادها.
use PixelSequel Model Model ;
new Model (
dbname: ' pixel_sequel '
);
$ users = Model:: All (
table: ' users ' ,
where: [
' name ' => ' John Doe '
]
where_like: [
' email ' => ' gmail '
]
order_by: 'id',
order: ' DESC ' ,
limit: 10
); table: The table to read from
where: An associative array of the column names and their values to filter the data using the where clause
where_like: An associative array of the column names and their values to perform searches
order_by: The column to order the data by
order: The order to use. Either 'ASC' or 'DESC'
limit: The number of records to retrieve
json: A boolean value to determine if the data should be returned as a json string or an array
تقوم الطريقة بإرجاع كائن من البيانات التي تم استردادها. يمكنك بعد ذلك تكرار الكائن للحصول على البيانات. إذا قمت بتعيين الحد على 1، فستحتاج إلى تحديد الفهرس الصفري للكائن للحصول على البيانات. عادةً ما كان أحد الأهداف الرئيسية أثناء تطوير ذلك هو جعل وظيفة واحدة تقوم بجميع الوظائف المحددة. هناك طرق تحديد أخرى ولكن تجاهلها لأنها ليست مكتوبة بشكل جيد وستتم إزالتها في الإصدارات المستقبلية.
طريقة التحديث هي في الأساس نسخة طبق الأصل من طريقة الإدراج، ولكن يجب تمرير نوع المعلمة لتحديد الصف وقيمته
use PixelSequel Model Model ;
new Model (
dbname: ' pixel_sequel '
);
Model:: Update (
table: ' users ' ,
param_t: ' id '
param_n: 1 ,
data: [
' name ' => ' John Doe ' ,
' email ' => ' [email protected] '
]
); param_t هو نوع المعلمة، وعادةً ما يكون اسم عمود. param_n هي قيمة نوع المعلمة.
يتم استخدام أسلوب Delete لحذف البيانات من قاعدة البيانات. يستغرق الأمر اسم الجدول ونوع المعلمة وقيمتها لتحديد الصف المراد حذفه.
use PixelSequel Model Model ;
new Model (
dbname: ' pixel_sequel '
);
Model:: Delete (
table: ' users ' ,
param_t: ' id '
param_n: 1
);المخطط هو جزء من ORM الذي يسمح لك بالتفاعل مع جداول قاعدة البيانات. يسمح لك بإجراء عمليات مثل إنشاء الجداول وتحديثها وحذفها. لاستخدام المخطط، تحتاج إلى إنشاء مثيل لفئة النموذج وتمرير اتصال قاعدة البيانات إلى فئة المخطط. لاحظ أن مثيل النموذج لا يحتاج إلى تعيينه لمتغير وللمخطط أيضًا
use PixelSequel Model Model ;
use PixelSequel Schema Schema ;
new Model (
dbname: ' pixel_sequel '
);
new Schema (
Model:: Connection ()
); يمكن التحقق من الاتصال عن طريق استدعاء الأسلوب Connected في فئة النموذج. تقوم الطريقة بإرجاع قيمة منطقية.
use PixelSequel Model Model ;
use PixelSequel Schema Schema ;
new Model (
dbname: ' pixel_sequel '
);
if (Model:: Connected ())
{
new Schema (
Model:: Connection ()
);
echo ' Connected ' ;
}
else
{
echo ' Not Connected ' ;
} بمجرد إنشاء الاتصال، يمكنك إنشاء الجداول عن طريق استدعاء الأسلوب Create في فئة المخطط. تأخذ الطريقة اسم الجدول ومصفوفة ترابطية لأسماء الأعمدة وأنواع البيانات الخاصة بها.
use PixelSequel Model Model ;
use PixelSequel Schema Schema ;
new Model (
dbname: ' pixel_sequel '
);
new Schema (
Model:: Connection ()
);
Schema:: Create (
table: ' pxtest ' ,
structure: [
" id " => [
" type " => " int " ,
" length " => 11 ,
" primary_key " => true
],
" username " => [
" type " => " varchar " ,
" length " => 11 ,
" null " => false
]
]
);يجب أن تكون مفاتيح صفيف البنية أسماء أعمدة صالحة في الجدول. القيم المقابلة هي صفائف ترابطية لأنواع بيانات الأعمدة وخصائصها. الخصائص هي:
type: The data type of the column
length: The length of the column
primary_key: A boolean value to determine if the column is a primary key
null: A boolean value to determine if the column can be null
auto_increment: A boolean value to determine if the column is auto increment
يتم استخدام أسلوب Alter لتغيير الجداول. يستغرق الأمر ثلاث معلمات: اسم الجدول، واسم العمود، وما يجب تعيينه
use PixelSequel Model Model ;
use PixelSequel Schema Schema ;
new Model (
dbname: ' pixel_sequel '
);
new Schema (
Model:: Connection ()
);
Schema:: Alter (
table: ' pxtest ' ,
column: ' username '
set: " int(255) NOT NULL "
); يتم استخدام أسلوب Drop لإسقاط الجداول. يأخذ اسم الجدول كمعلمة.
use PixelSequel Model Model ;
use PixelSequel Schema Schema ;
new Model (
dbname: ' pixel_sequel '
);
new Schema (
Model:: Connection ()
);
Schema:: Drop (
table: ' pxtest '
); لقطع الاتصال بقاعدة البيانات، يمكنك استدعاء أسلوب Disconnect في فئة النموذج.
use PixelSequel Model Model ;
use PixelSequel Schema Schema ;
new Model (
dbname: ' pixel_sequel '
);
new Schema (
Model:: Connection ()
);
Model:: Disconnect ();المساهمات هي موضع ترحيب. يمكنك المساهمة عن طريق تفرع المستودع وتقديم طلب سحب. يمكنك أيضًا فتح مشكلة إذا وجدت أي أخطاء أو كان لديك أي طلبات ميزات.