combustor adalah paket utilitas untuk Codeigniter 3 yang menghasilkan pengontrol, model, dan tampilan berdasarkan tabel database yang disediakan. Ia menggunakan paket Jelaskan untuk mendapatkan kolom dari tabel database dan sebagai dasar untuk pembuatan kode.
Codeigniter 3
;combustor
akan melakukan sisanya. Ekstrak terlebih dahulu isi project Codeigniter 3 terbaru:
$ wget https://github.com/bcit-ci/CodeIgniter/archive/3.1.13.zip
$ unzip 3.1.13.zip -d ciacme
Kemudian konfigurasikan pengaturan konektivitas database proyek:
$ cd ciacme
$ nano application/config/database.php
// ciacme/application/config/database.php
// ...
$ db [ ' default ' ] = array (
' dsn ' => '' ,
' hostname ' => ' localhost ' ,
' username ' => '' ,
' password ' => '' ,
' database ' => '' ,
' dbdriver ' => ' mysqli ' ,
// ...
);
Selanjutnya adalah melanjutkan instalasi combustor
melalui Composer:
$ composer require rougin/ combustor --dev
// ciacme/composer.json
{
// ...
"require-dev" :
{
"mikey179/vfsstream" : " 1.6.* " ,
"phpunit/phpunit" : " 4.* || 5.* || 9.* " ,
"rougin/ combustor " : " ~1.0 "
}
}
Terakhir, instal pembungkus ORM seperti Wildfire
atau Doctrine
:
$ vendor/bin/ combustor install:wildfire
$ vendor/bin/ combustor install:doctrine
Catatan
Menggunakan perintah install:wildfire
menginstal paket Wildfire sementara install:doctrine
menginstal paket Credo.
Sebelum menjalankan perintah apa pun, pastikan bahwa tabel database didefinisikan dengan benar (kunci asing, indeks, hubungan, normalisasi) untuk meminimalkan modifikasi setelah struktur kode dibuat.
Selain itu, silakan lanjutkan terlebih dahulu dalam membuat model, tampilan, atau pengontrol ke tabel database yang tidak memiliki hubungan dengan tabel lain di database.
Tip
combustor
akan menghasilkan pengontrol, model, atau tampilan berdasarkan skema database yang ditentukan. Jika ada sesuatu yang salah dalam skema database yang ditentukan, combustor
akan menghasilkan basis kode yang buruk.
create:layout
Buat file header dan footer baru.
Pilihan
--bootstrap
- menambahkan gaya berdasarkan Bootstrap--force
- menghasilkan file meskipun sudah adaContoh
$ vendor/bin/ combustor create-layout --bootstrap
create:controller
Buat pengontrol HTTP baru.
Argumen
table
- nama tabel databasePilihan
--doctrine
- menghasilkan pengontrol berbasis Doktrin--wildfire
- menghasilkan pengontrol berbasis Wildfire--empty
- menghasilkan pengontrol HTTP kosong--force
- menghasilkan file meskipun sudah ada Catatan
Jika Wildfire
atau Doctrine
diinstal, tidak perlu menentukannya sebagai opsi untuk menjalankan perintah tertentu (misalnya --wildfire
). Namun jika keduanya diinstal, perintah harus menambahkan opsi --wildfire
atau --doctrine
.
Contoh
$ vendor/bin/ combustor create:controller users --wildfire
create:model
Buat model baru.
Argumen
table
- nama tabel databasePilihan
--doctrine
- menghasilkan model berbasis Doktrin--wildfire
- menghasilkan model berbasis Wildfire--empty
- menghasilkan model kosong--force
- menghasilkan file meskipun sudah adaContoh
$ vendor/bin/ combustor create:model users --wildfire
create:repository
Buat repositori entitas baru.
Argumen
table
- nama tabel databasePilihan
--force
- menghasilkan file meskipun sudah adaContoh
$ vendor/bin/ combustor create:repository users
Catatan
Perintah ini hanya berlaku untuk penerapan Doktrin.
create:view
Buat templat tampilan.
Argumen
table
- nama tabel databasePilihan
--bootstrap
- menambahkan gaya berdasarkan Bootstrap--doctrine
- menghasilkan pandangan berbasis Doktrin--wildfire
- menghasilkan tampilan berbasis Wildfire--force
- menghasilkan file meskipun sudah adaContoh
$ vendor/bin/ combustor create:view users --bootstrap
create:scaffold
Buat pengontrol HTTP baru, model, dan templat tampilan.
Argumen
table
- nama tabel databasePilihan
--bootstrap
- menambahkan gaya berdasarkan Bootstrap--doctrine
- menghasilkan pengontrol, model, dan tampilan berbasis Doktrin--wildfire
- menghasilkan pengontrol, model, dan tampilan berbasis Wildfire--force
- menghasilkan file meskipun sudah adaContoh
$ vendor/bin/ combustor create:scaffold users --bootstrap --wildfire
Catatan
Jika --doctrine
dipilih, perintah tersebut juga akan menjalankan perintah create:repository
.
install:doctrine
Instal paket Doktrin.
Contoh
$ vendor/bin/ combustor install:doctrine
Catatan
Doctrine
tidak diinstal di proyek.Loader.php
di direktori core
. File tersebut digunakan untuk memuat repositori khusus yang diperluas ke EntityRepository
.install:wildfire
Instal paket Wildfire.
Contoh
$ vendor/bin/ combustor install:wildfire
Catatan
Perintah ini akan tersedia jika Wildfire
tidak diinstal di proyek.
remove:doctrine
Hapus paket Doktrin.
Contoh
$ vendor/bin/ combustor remove:doctrine
Catatan
Perintah ini akan tersedia jika Doctrine
diinstal di proyek.
remove:wildfire
Hapus paket Wildfire.
Contoh
$ vendor/bin/ combustor remove:wildfire
Catatan
Perintah ini akan tersedia jika Wildfire
diinstal di proyek.
combustor .yml
combustor
saat ini berfungsi di luar kotak setelah konfigurasi berdasarkan Installation
. Namun, penggunaan combustor .yml
dapat digunakan untuk pengaturan kompleks seperti menentukan jalur aplikasi baru dan mengecualikan kolom:
# combustor .yml
app_path : %%CURRENT_DIRECTORY%%/Sample
excluded_fields :
- created_at
- updated_at
- deleted_at
Untuk membuat combustor .yml
, cukup jalankan perintah initialize
:
$ vendor/bin/ combustor initialize
[PASS] " combustor .yml " added successfully !
app_path
Properti ini menentukan direktori application
. Ini dapat diperbarui ke direktori mana pun (misalnya, ciacme/application
, ciacme/config
, dll.) selama ia dapat mendeteksi file config/config.php
dari direktori yang ditentukan:
# combustor .yml
app_path : %%CURRENT_DIRECTORY%%/Sample
# ...
Catatan
combustor
akan mencoba memeriksa jalur yang ditentukan di app_path
jika itu adalah proyek Codeigniter 3
yang valid. Kemudian akan melakukan pemeriksaan lagi apakah direktori application
ada atau apakah direktori config
dapat diakses langsung dari direktori yang ditentukan dalam app_path
.
excluded_fields
Bidang tertentu di properti ini dikecualikan dari pembuatan templat berikut:
controllers
models
views
(hanya untuk create
dan edit
template) # combustor .yml
# ...
excluded_fields :
- created_at
- updated_at
- deleted_at
Catatan
Stempel waktu ditambahkan secara default saat membuat combustor .yml
untuk pertama kalinya karena biasanya diisi secara otomatis oleh ORM yang diinstal seperti Wildfire
atau Doctrine
.
custom_fields
Secara default, semua bidang yang dihasilkan oleh combustor
untuk create
dan edit
halaman akan menggunakan bantuan 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>
Namun, beberapa bidang seperti email
dan tipe boolean
mungkin perlu menggunakan bantuan formulir lainnya:
<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>
Untuk mencapai hal ini, combustor
menyediakan utilitas untuk menangani nama bidang atau tipe data tertentu menggunakan custom_fields
:
# combustor .yml
# ...
custom_fields :
- Rougin combustor TemplateFieldsBooleanField
Saat menambahkan bidang khusus, silakan buat kelas yang diperluas ke kelas 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 );
}
}
Kemudian setelah membuat custom field, cukup tambahkan nama kelas ke combustor .yml
:
# combustor .yml
# ...
custom_fields :
- Rougin combustor TemplateFieldsBooleanField
- AcmeFieldsEmailField
Silakan lihat CHANGELOG untuk informasi lebih lanjut tentang apa yang berubah baru-baru ini.
$ composer test
Lisensi MIT (MIT). Silakan lihat LISENSI untuk informasi lebih lanjut.