الإصدار: v2.3.0
البدء
إن بدء استخدام Medoo أمر بسيط ومباشر.
متطلبات
- PHP 7.3+ مع تثبيت الامتداد PDO.
- قاعدة بيانات SQL مثل MySQL أو MSSQL أو SQLite أو أي محرك آخر مدعوم.
- تأكد من تثبيت برنامج التشغيل PDO المطابق وتمكينه.
- معرفة أساسية بلغة SQL.
قائمة امتدادات PHP PDO
تعرض القائمة التالية الامتداد PDO المطلوب تثبيته بناءً على نوع قاعدة البيانات والنظام الأساسي لديك.
| الاسم | برنامج التشغيل |
| MySQL، MariaDB | php_pdo_mysql |
| MSSQL | php_pdo_sqlsrv / php_pdo_dblib |
| Oracle | php_pdo_oci |
| SQLite | php_pdo_sqlite |
| PostgreSQL | php_pdo_pgsql |
| سايبيس | php_pdo_dblib |
PHP PDO تثبيت برنامج التشغيل
يتطلب Medoo وجود دعم PDO في PHP. إذا لم يتم تثبيت PDO بعد، فاتبع الخطوات التالية.
// حرر php.ini وأزل الفاصلة المنقوطة الأولى من امتداد قاعدة البيانات الذي تريد تفعيله. // يُستخدم .dll على Windows، ويُستخدم .so على Linux/UNIX. // قبل ;extension=php_pdo_mysql.dll ;extension=php_pdo_mysql.so // بعد extension=php_pdo_mysql.dll extension=php_pdo_mysql.so // احفظ الملف، ثم أعد تشغيل PHP أو Apache/Nginx. // إذا تم تثبيت PDO بشكل صحيح، فسيظهر في phpinfo().
أو التثبيت من المحطة. سيتم تمكين الامتداد PDO وتكوينه تلقائيًا.
$ sudo apt-get install php7.4-mysql
التثبيت باستخدام Composer
إذا كنت تستخدم Composer، فقم بتثبيت Medoo باستخدام الأمر التالي.
$ composer require catfan/medoo
Composer يقوم بتثبيت التبعية تلقائيًا. قم بتشغيل
composer update فقط إذا كنت بحاجة إلى تحديث التبعيات يدويًا.
$ composer update
التثبيت اليدوي
من البدائل البسيطة تنزيل
medoo.php ووضعه داخل مشروعك ثم تضمينه عبر require.require 'Medoo.php';
إعدادات
قم بتمرير مصفوفة التكوين لتهيئة Medoo وبدء الاتصال بقاعدة البيانات.
// حمّل المُحمّل التلقائي الخاص بـ Composer. require 'vendor/autoload.php'; // استورد مساحة الأسماء الخاصة بـ Medoo. use Medoo\Medoo; $database = new Medoo([ // مطلوب. 'type' => 'mysql', 'host' => 'localhost', 'database' => 'name', 'username' => 'your_username', 'password' => 'your_password', // اختياري. 'charset' => 'utf8mb4', 'collation' => 'utf8mb4_general_ci', 'port' => 3306, // اختياري: بادئة الجداول. ستصبح جميع أسماء الجداول بالشكل PREFIX_table. 'prefix' => 'PREFIX_', // اختياري: تفعيل تسجيل الاستعلامات. يكون معطلاً افتراضياً لتحسين الأداء. 'logging' => true, // اختياري. // وضع معالجة الأخطاء. // يحدد كيفية إبلاغ PDO عن الأخطاء. // PDO::ERRMODE_SILENT (الافتراضي) | PDO::ERRMODE_WARNING | PDO::ERRMODE_EXCEPTION // المرجع: https://www.php.net/manual/en/pdo.error-handling.php. 'error' => PDO::ERRMODE_SILENT, // اختياري. // خيارات برنامج التشغيل الخاصة بالاتصال. // المرجع: https://www.php.net/manual/en/pdo.setattribute.php. 'option' => [ PDO::ATTR_CASE => PDO::CASE_NATURAL ], // اختياري: أوامر تُنفذ بعد إنشاء اتصال قاعدة البيانات. 'command' => [ 'SET SQL_MODE=ANSI_QUOTES' ] ]);
اتصال DSN مخصص
يمكنك أيضًا توفير DSN مخصص للاتصال بقواعد البيانات التي لا يدعمها Medoo بشكل جاهز، أو لتمرير معلمات DSN إضافية.
تنسيق سلسلة اتصال DSN
{سائق}: {مفتاح} = {قيمة}؛ {مفتاح} = {قيمة}
$database = new Medoo([ 'dsn' => [ // اسم برنامج تشغيل PDO المستخدم داخل DSN. 'driver' => 'mydb', // معاملات DSN على شكل أزواج مفتاح-قيمة. 'server' => '12.23.34.45', 'port' => '8886' ], // اختياري: يحدد لـ Medoo السلوك الخاص بنوع قاعدة البيانات المطلوب استخدامه. 'type' => 'mysql', 'username' => 'your_username', 'password' => 'your_password' ]); // سلسلة DSN النهائية التي تم توليدها: mydb:server=12.23.34.45;port=8886
التهيئة من كائن PDO
يمكنك أيضًا إنشاء Medoo من كائن PDO تمت تهيئته بالفعل.
$pdo = new PDO('mysql:dbname=test;host=127.0.0.1', 'user', 'password');
$database = new Medoo([
// أعد استخدام كائن PDO تمت تهيئته واتصاله مسبقاً.
'pdo' => $pdo,
// اختياري: يحدد لـ Medoo السلوك الخاص بنوع قاعدة البيانات المطلوب استخدامه.
'type' => 'mysql'
]);
لـ MySQL
هذا الخيار مخصص لـ MySQL فقط.
$database = new Medoo([ // اختياري: مقبس MySQL. لا تستخدمه مع server و port في الوقت نفسه. 'socket' => '/tmp/mysql.sock', ]);
لـ MariaDB
يتم التعامل مع MariaDB بنفس طريقة التعامل مع MySQL. يتم تعيين نوع قاعدة البيانات إلى
mysql تلقائيًا.$database = new Medoo([ 'type' => 'mariadb', 'host' => 'localhost', 'database' => 'name', 'username' => 'your_username', 'password' => 'your_password', ]);
لـ MSSQL
تستخدم الاتصالات MSSQL الحديثة عادةً الامتداد pdo_sqlsrv على كل من Windows وLinux/UNIX. يستخدم Medoo برنامج التشغيل pdo_sqlsrv بشكل افتراضي. بالنسبة للبيئات القديمة التي تتطلب pdo_dblib، قم بتعيين برنامج التشغيل بشكل صريح أثناء التهيئة. راجع https://github.com/Microsoft/msphpsql للحصول على التفاصيل.
$database = new Medoo([ 'type' => 'mssql', 'host' => 'localhost', 'database' => 'name', 'username' => 'your_username', 'password' => 'your_password', // اختياري: اسم التطبيق. 'appname' => 'test', // اختياري. // إجبار Medoo على استخدام برنامج التشغيل dblib مع MSSQL. // الافتراضي: sqlsrv. 'driver' => 'dblib' ]);
Medoo يدعم أيضًا خيارات الاتصال MSSQL عند استخدام برنامج التشغيل sqlsrv. راجع التفاصيل على https://docs.microsoft.com/en-us/sql/connect/php/connection-options?view=sql-server-2017.
$database = new Medoo([ 'type' => 'mssql', 'host' => 'localhost', 'database' => 'name', 'username' => 'your_username', 'password' => 'your_password', // اختياري: خيارات اتصال MSSQL. 'application_intent' => 'ReadOnly', 'attach_db_file_name' => './database.sql', 'authentication' => 'SqlPassword', 'column_encryption' => 'Enabled', 'connection_pooling' => 1, 'encrypt' => 1, 'failover_partner' => 'MultiSubnetFailover', 'key_store_authentication' => 'KeyVaultPassword', 'key_store_principal_id' => 'AzureName', 'key_store_secret' => 'AzurePass', 'login_timeout' => '20', 'multiple_active_result_sets' => 1, 'multi_subnet_failover' => 'Yes', 'scrollable' => 'buffered', 'trace_file' => './path', 'trace_on' => 1, 'transaction_isolation' => PDO::SQLSRV_TXN_SNAPSHOT, 'transparent_network_ip_resolution' => 'Enabled', 'trust_server_certificate' => 1, 'wsid' => 'Computer1' ]);
لـ SQLite
قاعدة بيانات الملف
$database = new Medoo([ 'type' => 'sqlite', 'database' => 'my/database/path/database.db' ]);
قاعدة بيانات الذاكرة
$database = new Medoo([ 'type' => 'sqlite', 'database' => ':memory:' ]);
قاعدة بيانات مؤقتة
يتم حذف قاعدة البيانات المؤقتة عند إغلاق الاتصال.
$database = new Medoo([ 'type' => 'sqlite', 'database' => '' ]); // أو احذف خيار database بالكامل. $database = new Medoo([ 'type' => 'sqlite' ]);
فحص سلسلة DSN
يمكنك فحص سلسلة DSN النهائية عن طريق استدعاء
info().$database = new Medoo([ 'type' => 'mysql', 'host' => '127.0.0.1', 'database' => 'test', 'username' => 'your_username', 'password' => 'your_password', ]); echo $database->info()['dsn']; // mysql:dbname=test;host=127.0.0.1
وضع الاختبار
هذا الوضع مفيد للاختبارات. يمكنك التحقق من إنشاء SQL من خلال
$database->queryString عبر أنواع مختلفة من قواعد البيانات. يتم إنشاء الاستعلامات ولكن لا يتم تنفيذها.$database = new Medoo([
'testMode' => true
]);
// حدّد نوع قاعدة البيانات.
$database->type = 'mysql';
$database->select("account", ["user_name"], ["user_id[>]" => 10]);
echo $database->queryString;