إن 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 --bootstrap
create:controller
قم بإنشاء وحدة تحكم HTTP جديدة.
الحجج
table
- اسم جدول قاعدة البياناتخيارات
--doctrine
- ينشئ وحدة تحكم قائمة على العقيدة--wildfire
- ينشئ وحدة تحكم تعتمد على Wildfire--empty
- ينشئ وحدة تحكم HTTP فارغة--force
- يُنشئ الملف/الملفات حتى لو كانت موجودة بالفعل ملحوظة
إذا تم تثبيت Wildfire
أو Doctrine
، فلا داعي لتحديده كخيار لتنفيذ أمر محدد (على سبيل المثال --wildfire
). ومع ذلك، إذا تم تثبيت كليهما، فيجب إضافة خيار --wildfire
أو --doctrine
إلى الأمر.
مثال
$ vendor/bin/ combustor create:controller users --wildfire
create:model
إنشاء نموذج جديد.
الحجج
table
- اسم جدول قاعدة البياناتخيارات
--doctrine
- تولد نموذجًا قائمًا على العقيدة--wildfire
- ينشئ نموذجًا يستند إلى Wildfire--empty
- يُنشئ نموذجًا فارغًا--force
- يُنشئ الملف/الملفات حتى لو كانت موجودة بالفعلمثال
$ vendor/bin/ combustor create:model users --wildfire
create: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 --bootstrap
create: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
يتم استبعاد الحقول المحددة في هذه الخاصية من الإنشاء إلى القوالب التالية:
controllers
models
views
(فقط 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). يرجى الاطلاع على الترخيص لمزيد من المعلومات.