تحتوي هذه المكتبة على نواة صغيرة لتمهيد أي تطبيق PHP تقريبًا، بما في ذلك Silex وSymlex (مجموعة إطار عمل لتطوير الويب السريع استنادًا إلى Symfony) وSyfony Console. النواة نفسها عبارة عن بضعة أسطر فقط لتعيين مجموعة من معلمات البيئة وإنشاء مثيل حاوية خدمة باستخدام ذلك.
يعد إنشاء نسخة kernel واستدعاء run()
كافيًا لبدء تطبيق ما:
#!/usr/bin/env php
<?php
// Composer
require_once ' vendor/autoload.php ' ;
$ app = new DIMicroKernel Kernel ( ' console ' );
// Run the 'app' service defined in config/console.yml
$ app -> run ();
توجد ملفات YAML في config/
تكوين التطبيق وجميع تبعياته كخدمة. يتطابق اسم الملف مع اسم بيئة التطبيق (على سبيل المثال config/console.yml
). يمكن أيضًا تعديل التكوين للبيئات الفرعية مثل البيئات المحلية أو الإنتاج من خلال توفير ملف تكوين مطابق مثل config/console.local.yml
(راجع معلمة app.sub_environment
). هذه الملفات موجودة بنفس التنسيق الموثق جيدًا الذي قد تعرفه من Symfony:
parameters :
app.name : ' My App '
app.version : ' 1.0 '
services :
doctrine.migrations.migrate :
class : DoctrineDBALMigrationsToolsConsoleCommandMigrateCommand
app :
class : SymfonyComponentConsoleApplication
public : true
arguments : [%app.name%, %app.version%]
calls :
- [ add, [ "@doctrine.migrations.migrate" ] ]
يوفر هذا أسلوبًا موحدًا لتشغيل تطبيقات الويب مثل SilexApplication
أو SymlexApplicationWeb
أو تطبيقات سطر الأوامر مثل SymfonyComponentConsoleApplication
باستخدام نفس النواة. والنتيجة هي أنظف وأصغر بكثير من جنون التمهيد والتكوين المعتاد الذي تعرفه في العديد من أطر العمل.
تقوم النواة بتعيين عدد من المعلمات الافتراضية التي يمكن استخدامها لتكوين الخدمات. يمكن تغيير القيم الافتراضية عبر أساليب الضبط للنواة أو الكتابة فوقها/توسيعها بواسطة ملفات تكوين الحاوية ومتغيرات البيئة (على سبيل المثال url: '%env(DATABASE_URL)%'
).
المعلمة | طريقة جيتر | طريقة الضبط | القيمة الافتراضية |
---|---|---|---|
اسم التطبيق | الحصول على الاسم () | اسم المجموعة () | "النواة" |
app.version | الحصول على النسخة () | مجموعة الإصدار () | '1.0' |
app.environment | الحصول على البيئة () | بيئة البيئة () | 'برنامج' |
app.sub_environment | getSubEnvironment() | setSubEnvironment() | 'محلي' |
app.debug | isDebug() | setDebug() | خطأ شنيع |
app.charset | getCharset() | مجموعة تشارسيت () | "UTF-8" |
app.path | getAppPath() | setAppPath() | './' |
app.config_path | getConfigPath() | setConfigPath() | "./التكوين" |
app.base_path | الحصول علىBasePath() | سيتوباسيباث () | '../' |
app.storage_path | getStoragePath() | setStoragePath () | '../تخزين' |
app.log_path | جيتلوجباث () | سيتلوجباث () | "../تخزين/سجل" |
app.cache_path | getCachePath() | setCachePath() | "../التخزين/ذاكرة التخزين المؤقت" |
app.src_path | getSrcPath() | سيتسركباث () | "../src" |
يمكن توسيع فئة kernel الأساسية لتخصيصها لغرض محدد، مثل تطبيقات وحدة التحكم طويلة التشغيل:
<?php
use DIMicroKernel Kernel ;
class ConsoleApp extends Kernel
{
public function __construct ( $ appPath , $ debug = false )
{
parent :: __construct ( ' console ' , $ appPath , $ debug );
}
public function setUp ()
{
set_time_limit ( 0 );
ini_set ( ' memory_limit ' , ' -1 ' );
}
}
إذا تم إيقاف تشغيل وضع التصحيح، فسيتم تخزين تكوين حاوية الخدمة مؤقتًا بواسطة kernel في الدليل الذي تم تعيينه كمسار ذاكرة التخزين المؤقت. يجب عليك حذف كافة ملفات ذاكرة التخزين المؤقت بعد تحديث التكوين. لتعطيل التخزين المؤقت بشكل كامل، قم بإضافة container.cache: false
إلى معلمات التكوين الخاصة بك:
parameters :
container.cache : false
لاستخدام هذه المكتبة في مشروعك، ما عليك سوى تشغيل composer require symlex/di-microkernel
أو إضافة "symlex/di-microkernel" إلى ملف الملحن.json الخاص بك وتشغيل composer update
:
{
"require" : {
"php" : " >=7.1 " ,
"symlex/di-microkernel" : " ^2.0 "
}
}
تتم صيانة DMicroKernel بواسطة مايكل ماير. لا تتردد في إرسال بريد إلكتروني إلى [email protected] إذا كانت لديك أية أسئلة، أو كنت بحاجة إلى دعم تجاري أو أردت فقط أن تقول مرحبًا. نحن نرحب بالمساهمات من أي نوع. إذا كان لديك خطأ أو فكرة، فاقرأ دليلنا قبل فتح أي مشكلة.