AR العربية
الإصدار: v2.3.0

البدء

إن بدء استخدام Medoo أمر بسيط ومباشر.

متطلبات

قائمة امتدادات 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;