إن combustor عبارة عن حزمة أدوات مساعدة لـ Codeigniter 3 تقوم بإنشاء وحدات تحكم ونماذج وطرق عرض بناءً على جداول قاعدة البيانات المتوفرة. يستخدم حزمة الوصف للحصول على الأعمدة من جدول قاعدة البيانات وكأساس لإنشاء التعليمات البرمجية.
Codeigniter 3 ؛combustor بالباقي. قم باستخراج محتويات أحدث مشروع Codeigniter 3 أولاً:
$ wget https://github.com/bcit-ci/CodeIgniter/archive/3.1.13.zip
$ unzip 3.1.13.zip -d ciacmeثم قم بتكوين إعدادات اتصال قاعدة بيانات المشروع:
$ cd ciacme
$ nano application/config/database.php
// ciacme/application/config/database.php
// ...
$ db [ ' default ' ] = array (
' dsn ' => '' ,
' hostname ' => ' localhost ' ,
' username ' => '' ,
' password ' => '' ,
' database ' => '' ,
' dbdriver ' => ' mysqli ' ,
// ...
); التالي هو متابعة تثبيت combustor عبر Composer:
$ composer require rougin/ combustor --dev // ciacme/composer.json
{
// ...
"require-dev" :
{
"mikey179/vfsstream" : " 1.6.* " ,
"phpunit/phpunit" : " 4.* || 5.* || 9.* " ,
"rougin/ combustor " : " ~1.0 "
}
} وأخيرًا، قم بتثبيت أغلفة ORM مثل Wildfire أو Doctrine :
$ vendor/bin/ combustor install:wildfire
$ vendor/bin/ combustor install:doctrineملحوظة
يؤدي استخدام الأمر install:wildfire إلى تثبيت حزمة Wildfire بينما install:doctrine بتثبيت حزمة Credo.
قبل تنفيذ أي أوامر، يرجى التأكد من تعريف جداول قاعدة البيانات بشكل صحيح (المفاتيح الخارجية، والفهارس، والعلاقات، والتطبيع) من أجل تقليل التعديلات بعد إنشاء بنية التعليمات البرمجية.
يرجى أيضًا المتابعة أولاً في إنشاء نماذج أو طرق عرض أو وحدات تحكم لجداول قاعدة البيانات التي ليس لها علاقة بالجداول الأخرى في قاعدة البيانات.
نصيحة
سيقوم combustor بإنشاء وحدات تحكم أو نماذج أو طرق عرض بناءً على مخطط قاعدة البيانات المحدد. إذا كان هناك خطأ ما في مخطط قاعدة البيانات المحددة، فسيقوم combustor بإنشاء قاعدة تعليمات برمجية سيئة.
create:layoutقم بإنشاء ملف رأس وتذييل جديد.
خيارات
--bootstrap - يضيف التصميم بناءً على Bootstrap--force - يُنشئ الملف/الملفات حتى لو كانت موجودة بالفعلمثال
$ vendor/bin/ combustor create-layout --bootstrapcreate:controllerقم بإنشاء وحدة تحكم HTTP جديدة.
الحجج
table - اسم جدول قاعدة البياناتخيارات
--doctrine - ينشئ وحدة تحكم قائمة على العقيدة--wildfire - ينشئ وحدة تحكم تعتمد على Wildfire--empty - ينشئ وحدة تحكم HTTP فارغة--force - يُنشئ الملف/الملفات حتى لو كانت موجودة بالفعل ملحوظة
إذا تم تثبيت Wildfire أو Doctrine ، فلا داعي لتحديده كخيار لتنفيذ أمر محدد (على سبيل المثال --wildfire ). ومع ذلك، إذا تم تثبيت كليهما، فيجب إضافة خيار --wildfire أو --doctrine إلى الأمر.
مثال
$ vendor/bin/ combustor create:controller users --wildfirecreate:modelإنشاء نموذج جديد.
الحجج
table - اسم جدول قاعدة البياناتخيارات
--doctrine - تولد نموذجًا قائمًا على العقيدة--wildfire - ينشئ نموذجًا يستند إلى Wildfire--empty - يُنشئ نموذجًا فارغًا--force - يُنشئ الملف/الملفات حتى لو كانت موجودة بالفعلمثال
$ vendor/bin/ combustor create:model users --wildfirecreate:repositoryإنشاء مستودع كيان جديد.
الحجج
table - اسم جدول قاعدة البياناتخيارات
--force - يُنشئ الملف/الملفات حتى لو كانت موجودة بالفعلمثال
$ vendor/bin/ combustor create:repository usersملحوظة
لا ينطبق هذا الأمر إلا على تطبيق Doctrine.
create:viewإنشاء قوالب العرض.
الحجج
table - اسم جدول قاعدة البياناتخيارات
--bootstrap - يضيف التصميم بناءً على Bootstrap--doctrine - تولد آراء مبنية على العقيدة--wildfire - ينشئ طرق عرض مستندة إلى Wildfire--force - يُنشئ الملف/الملفات حتى لو كانت موجودة بالفعلمثال
$ vendor/bin/ combustor create:view users --bootstrapcreate:scaffoldقم بإنشاء وحدة تحكم HTTP جديدة ونموذج وعرض القوالب.
الحجج
table - اسم جدول قاعدة البياناتخيارات
--bootstrap - يضيف التصميم بناءً على Bootstrap--doctrine - يُنشئ وحدة تحكم ونموذجًا ووجهات نظر قائمة على العقيدة--wildfire - ينشئ وحدة تحكم ونموذج وطرق عرض مستندة إلى Wildfire--force - يُنشئ الملف/الملفات حتى لو كانت موجودة بالفعلمثال
$ vendor/bin/ combustor create:scaffold users --bootstrap --wildfireملحوظة
إذا تم تحديد --doctrine ، فسيقوم الأمر أيضًا بتنفيذ الأمر create:repository .
install:doctrineقم بتثبيت حزمة العقيدة.
مثال
$ vendor/bin/ combustor install:doctrineملحوظة
Doctrine في المشروع.Loader.php في الدليل core . يتم استخدام الملف المذكور لتحميل المستودعات المخصصة الممتدة إلى EntityRepository .install:wildfireقم بتثبيت حزمة Wildfire.
مثال
$ vendor/bin/ combustor install:wildfireملحوظة
سيكون هذا الأمر متاحًا إذا لم يتم تثبيت Wildfire في المشروع.
remove:doctrineقم بإزالة حزمة العقيدة.
مثال
$ vendor/bin/ combustor remove:doctrineملحوظة
سيكون هذا الأمر متاحًا إذا تم تثبيت Doctrine في المشروع.
remove:wildfireقم بإزالة حزمة Wildfire.
مثال
$ vendor/bin/ combustor remove:wildfireملحوظة
سيكون هذا الأمر متاحًا في حالة تثبيت Wildfire في المشروع.
combustor .yml يعمل combustor حاليًا خارج الصندوق بعد التكوين بناءً على Installation . ومع ذلك، يمكن استخدام combustor .yml للإعدادات المعقدة مثل تحديد مسار التطبيق الجديد واستبعاد الأعمدة:
# combustor .yml
app_path : %%CURRENT_DIRECTORY%%/Sample
excluded_fields :
- created_at
- updated_at
- deleted_at لإنشاء combustor .yml ، ما عليك سوى تشغيل أمر initialize :
$ vendor/bin/ combustor initialize
[PASS] " combustor .yml " added successfully !app_path تحدد هذه الخاصية دليل application . يمكن تحديثه إلى أي دليل (على سبيل المثال، ciacme/application ، ciacme/config ، وما إلى ذلك) طالما يمكنه اكتشاف ملف config/config.php من الدليل المحدد:
# combustor .yml
app_path : %%CURRENT_DIRECTORY%%/Sample
# ... ملحوظة
سيحاول combustor التحقق من المسار المحدد في app_path إذا كان مشروع Codeigniter 3 صالحًا. ثم سيتم إجراء فحص آخر إذا كان دليل application موجودًا أو إذا كان من الممكن الوصول إلى دليل config مباشرة من الدليل المحدد في app_path .
excluded_fieldsيتم استبعاد الحقول المحددة في هذه الخاصية من الإنشاء إلى القوالب التالية:
controllersmodelsviews (فقط create القوالب edit ) # combustor .yml
# ...
excluded_fields :
- created_at
- updated_at
- deleted_at ملحوظة
تتم إضافة الطوابع الزمنية افتراضيًا عند إنشاء ملف combustor .yml لأول مرة حيث يتم ملؤها تلقائيًا عادةً بواسطة ORMs المثبتة مثل Wildfire أو Doctrine .
custom_fields افتراضيًا، جميع الحقول التي تم إنشاؤها بواسطة combustor create الصفحات edit ستستخدم المساعد form_input :
<div class="mb- 3 ">
<?= form_label ( ' Email ' , '' , [ ' class ' => ' form-label mb-0 ' ]) ?>
<?= form_input ( ' email ' , set_value ( ' email ' ), ' class="form-control" ' ) ?>
<?= form_error ( ' email ' , ' <div><span class="text-danger small"> ' , ' </span></div> ' ) ?>
</div> ومع ذلك، قد تحتاج بعض الحقول مثل email والأنواع boolean إلى استخدام أدوات مساعدة أخرى للنماذج:
<div class="mb- 3 ">
<?= form_label ( ' Email ' , '' , [ ' class ' => ' form-label mb-0 ' ]) ?>
// Still using form_input, but the type is "email" instead
<?= form_input ([ ' type ' => ' email ' , ' name ' => ' email ' , ' value ' => set_value ( ' email ' ), ' class ' => ' form-control ' ]) ?>
<?= form_error ( ' email ' , ' <div><span class="text-danger small"> ' , ' </span></div> ' ) ?>
</div><div class="mb- 3 ">
<?= form_label ( ' Admin ' , '' , [ ' class ' => ' form-label mb-0 ' ]) ?>
// Use "form_checkbox" for boolean-based data types
<div>
<?= form_checkbox ( ' admin ' , true , set_value ( ' admin ' ), ' class="form-check-input" ' ) ?>
</div>
<?= form_error ( ' admin ' , ' <div><span class="text-danger small"> ' , ' </span></div> ' ) ?>
</div> ولتحقيق ذلك، يوفر combustor أداة مساعدة للتعامل مع أسماء الحقول المحددة أو أنواع البيانات باستخدام custom_fields :
# combustor .yml
# ...
custom_fields :
- Rougin combustor TemplateFieldsBooleanField عند إضافة حقل مخصص، يرجى إنشاء فئة تمتد إلى فئة Colfield :
namespace Acme Fields ;
use Rougin combustor Colfield ;
class EmailField extends Colfield
{
protected $ class = ' form-control ' ;
/**
* If $name is specified, it will check if the current field
* name matches the in this $name field.
*/
protected $ name = ' email ' ;
public function getPlate ()
{
$ field = $ this -> accessor ;
$ class = $ this -> getClass ();
/** @var string */
$ name = $ this -> getName ();
$ html = ' <?= form_input([ ' type ' => ' email ' , ' name ' => '' . $ name . '' , ' value ' => set_value( '' . $ name . '' )]) ?> ' ;
if ( $ this -> edit )
{
$ html = str_replace ( ' set_value( '' . $ name . '' ) ' , ' set_value( '' . $ name . '' , ' . $ field . ' ) ' , $ html );
}
$ html = str_replace ( ' )]) ?> ' , ' ), ' class ' => '' . $ class . '' ]) ?> ' , $ html );
return array ( $ html );
}
} ثم بعد إنشاء الحقل المخصص، ما عليك سوى إضافة اسم الفئة إلى combustor .yml :
# combustor .yml
# ...
custom_fields :
- Rougin combustor TemplateFieldsBooleanField
- AcmeFieldsEmailField الرجاء مراجعة سجل التغيير لمزيد من المعلومات عما تغير مؤخرًا.
$ composer test رخصة معهد ماساتشوستس للتكنولوجيا (MIT). يرجى الاطلاع على الترخيص لمزيد من المعلومات.