يتوق العديد من مطوري WordPress إلى ميزات مثل Eloquent وBlade وService Container وService Provider لمساعدتهم على إنشاء مكونات إضافية قوية. Falcon موجود هنا لتغيير قواعد اللعبة ووضع هذه الإمكانات في متناول يدك.
يرجى ملاحظة: يوفر هذا البرنامج الإضافي سلسلة من الخدمات وليس المقصود استخدامه كقاعدة لإنشاء مكونات إضافية جديدة.
الحد الأدنى لإصدار PHP: 8.2
إنشاء دليل: في مجلد wp-content
، إذا لم يكن مجلد mu-plugins
موجودًا، فقم بإنشائه. ضع مجلد falcon-base-services
بداخله.
إنشاء ملف محمل: في جذر المجلد mu-plugins
، قم بإنشاء ملف PHP باسم من اختيارك وأضف الكود التالي:
<?php
require ' falcon-base-services/falcon-base-services.php ' ;
لاحظ أن محتويات مجلد mu-plugins
لا تحتاج إلى التنشيط في مسؤول WordPress ويتم تنفيذها قبل جميع المكونات الإضافية الأخرى. بالإضافة إلى ذلك، لا يقوم WordPress بفحص المجلدات الموجودة داخل mu-plugins
ما لم يتم توجيه ذلك بشكل صريح.
تثبيت التبعيات: افتح الوحدة الطرفية في مجلد falcon-base-services
وقم بتشغيل الأمر التالي:
composer install
إذا لم تقم بتثبيت Composer، فيمكنك تنزيله وتثبيته من هذا الرابط.
البرنامج المساعد جاهز الآن للاستخدام. دعونا نستكشف ميزاته وكيفية استخدامها.
إذا كنت بحاجة إلى وضع الموقع في وضع الصيانة، فما عليك سوى إعادة تسمية الملف maintenance.example.php
الموجود في مجلد storage
إلى maintenance.php
. يمكنك أيضًا تعديل محتويات الملف حسب الحاجة.
العناصر المذكورة في ملف .env.example
مهمة. أعد تسمية الملف إلى .env
.
يمكنك تعيين المتغيرات الخاصة بك في ملف .env
واستخدامها في أي مكان في التعليمات البرمجية الخاصة بك مثل هذا:
$ _ENV [ ' item ' ];
//or
env ( ' item ' )
لتعيين عنصر في المتغير $_ENV العام، يمكنك استخدام:
setEnv ( $ key , $ value );
يمكنك أيضًا استخدام ملفات التكوين في مشروعك والتي تُرجع مصفوفة. ضع ملف التكوين في مجلد التكوين وقم بالوصول إلى القيم المطلوبة باستخدام وظيفة falconConfig($file, $key = null, $folder_path = null)
.
$file
: اسم ملف التكوين.
$key
: مفتاح المصفوفة المطلوبة. إذا كانت فارغة، فسيتم إرجاع محتوى الملف بالكامل.
$folder_path
: بشكل افتراضي، المسار إلى ملفات التكوين موجود في مجلد التكوين. إذا كنت تريد الحصول على تكوينات جديدة في مشروعك، فيمكنك أيضًا تحديد المسار إلى المجلد الجديد.
يستخدم البرنامج المساعد حاوية خدمة قوية ذات إمكانيات التوصيل التلقائي.
الخدمات الفردية: قم بتسجيل خدمة فردية باستخدام:
FALCON_CONTAINER -> singleton (Test::class);
// or
FALCON_CONTAINER -> singleton ( ' test ' , Test::class);
الخدمات غير الفردية: قم بتسجيل خدمة غير فردية باستخدام:
FALCON_CONTAINER -> bind (Test::class);
// or
FALCON_CONTAINER -> bind ( ' test ' , Test::class);
استخدام عمليات الإغلاق: يمكنك أيضًا استخدام عمليات الإغلاق:
FALCON_CONTAINER -> bind ( ' test ' , function () { return Test::class; });
استخدام الخدمات: استخدم طريقة get
لاسترداد الخدمات:
FALCON_CONTAINER -> get ( ' test ' );
FALCON_CONTAINER -> get (Test::class);
طرق الحل: حل طريقة من الفصل باستخدام:
FALCON_CONTAINER -> getMethod (Test::class, ' run ' );
سيؤدي هذا تلقائيًا إلى حل أي تبعيات مطلوبة من قبل كل من الفئة والطريقة.
لإنشاء مزود خدمة، قم بإنشاء فئة في مجلد app/providers
وقم بتوسيع فئة ServiceProvider
. استخدم أساليب register
boot
حسب الحاجة. ثم قم بإضافة عنوان الموفر في ملف providers.php
الموجود في مجلد bootstrap
.
جميع جداول WordPress الافتراضية متاحة كنماذج في مجلد app/Model
. سيتم إضافة جداول WooCommerce
قريبًا. يمكنك استخدام كل من Query Builder وEloquent القويين للتفاعل مع هذه الجداول.
( new FalconBaseServices Model Post ())-> published ()-> with ( ' author ' )-> get ();
falconDB ():: table ( ' wp_posts ' )
-> where ( ' post_status ' , ' publish ' )
-> leftJoin ( ' wp_users ' , ' wp_posts.post_author ' , ' = ' , ' wp_users.ID ' )
-> select ( ' wp_posts.* ' , ' wp_users.user_nicename ' )
-> get ();
إذا كنت تريد استخدام جدول جديد كنموذج، فقم بإنشاء فئته عن طريق توسيع فئة FalconBaseServicesModelBaseModel
. إذا كان الجدول لا يستخدم البادئة الافتراضية، فاضبط $with_prefix
على false:
protected $ with_prefix = false ;
قواعد واستخدامات النماذج وQuery Builder/Eloquent تشبه تمامًا وثائق Laravel.
بشكل افتراضي، يتم استخدام Blade كمحرك القالب، والذي يختلف قليلاً في الاستخدام عن المعيار. انتبه إلى المثال:
falconTemplate ()-> setViewDir ( ' path to dir ' )-> setView ( ' name of file without extension ' )
-> share ([ ' item ' => ' value ' ])-> render ();
يمكنك أيضًا استخدام Twig. الفئة المشتقة من الواجهة app/Services/TemplateEngine/Template.php
متاحة في المسار app/Services/TemplateEngine/Implements/Twig.php
. ما عليك سوى إضافة Twig إلى المكون الإضافي عبر Composer ثم تحرير الملف app/Providers/TemplateServiceProvider.php
. الاستخدام مشابه للمثال أعلاه.
لاستخدام المُسجل، استخدم falconLogger():
falconLogger ()-> error ( ' message ' , [ ' data ' => ' value ' ]);
إذا كنت تريد تضمين ProcessIdProcessor
و GitProcessor
و MemoryUsageProcessor
في السجل، فقم بتعيين العناصر ذات الصلة في ملف .env إلى true.
لاستخدام البريد الإلكتروني، يمكنك استخدام falconEmail():
falconEmail ()-> send ( $ to , $ subject , $ content , $ from = null , $ bcc = null );
لمزيد من المعلومات حول كيفية استخدام البريد الإلكتروني، راجع الملف app/Services/Sender/Implements/Email/PHPMailer.php
.
ترميز سعيد!