**Rilis stabil terbaru: [versi 3.1.0, dirilis pada 6 Juli 2017].
Versi stabil terbaru dari versi 2 dapat ditemukan di cabang v2.
Bergabunglah dengan kami di Slack di qcubed.slack.com. Dapatkan undangan Anda di sini .
QCubed (diucapkan 'Q' - cubed) adalah kerangka Pengembangan Aplikasi Cepat Model-View-Controller PHP dengan dukungan untuk PHP5 (5.4 dan lebih tinggi) dan PHP7. Tujuan dari kerangka kerja ini adalah untuk menghemat waktu pengembangan pada tugas-tugas yang membosankan dan berulang - memungkinkan Anda berkonsentrasi pada hal-hal yang berguna DAN menyenangkan. QCubed unggul dalam situasi di mana Anda memiliki struktur database besar yang ingin Anda sediakan dengan cepat kepada pengguna.
Dengan QCubed, Anda tidak perlu berurusan dengan POST dan GET yang berasal dari browser. QCubed secara otomatis menanganinya untuk Anda dan mengemas informasi ke dalam bentuk dan kontrol berorientasi objek. Pemrograman dengan QCubed terasa seperti pemrograman aplikasi desktop. Jika Anda familiar dengan ASP, serupa.
Pembuat Kode secara otomatis membuat kelas objek dengan formulir dan kontrol yang cocok berdasarkan skema database Anda. Ia menggunakan konsep ORM, pemetaan relasional objek, untuk secara praktis membuat seluruh lapisan model untuk Anda.
Codegen dapat memanfaatkan hubungan kunci asing dan batasan lapangan untuk menghasilkan model data siap pakai lengkap dengan rutinitas validasi dan metode CRUD yang kuat, memungkinkan Anda memanipulasi objek alih-alih terus-menerus mengeluarkan kueri SQL.
Info lebih lanjut serta contoh tersedia online di https://qcubed.eu/
Penggunaan QQueries memungkinkan pemuatan model yang sederhana namun kuat, semua kelas ORM yang dihasilkan memiliki metode Query dan QQNodes. Dengan menggunakan metode ini, mendapatkan subset data yang kompleks cukup mudah - dan dapat digunakan di hampir semua database relasional.
QCubed menggunakan konsep QForm untuk menjaga status formulir antara transaksi POST. QForm berfungsi sebagai pengontrol dan dapat berisi QControls yang merupakan komponen UI.
Semua QControls (termasuk QForm itu sendiri) dapat menggunakan template yang merupakan lapisan tampilan, melengkapi struktur MVC.
QControls dapat memanfaatkan FormState QForm untuk memperbarui dirinya sendiri melalui callback Ajax semudah POST server sinkron. Semua widget inti jQuery UI tersedia sebagai QControls.
Beberapa QControl meliputi:
Cara termudah untuk mempelajari QCubed adalah dengan melihat contoh tutorial di http://qcu.be/examples/
Melalui sistem pluginnya, QCubed memudahkan pengemasan dan memberikan peningkatan dan penambahan pada basis kode inti. Plugin untuk versi QCubed yang saat ini aktif ada di repositori yang dimulai dengan plugin .
Prosedur instalasi dijelaskan secara rinci di sini: Petunjuk instalasi.
3.0 adalah perubahan arsitektur besar dari 2.x. Pada dasarnya Anda harus memulai dari awal dengan membuat proyek baru, membuat model, menggunakan ModelConnectorEditor untuk menyempurnakan apa yang dihasilkan di konektor (dulu disebut MetaControls), dan kemudian menyalin kode dari versi lama ke versi baru. Anda akan menemukan bahwa banyak hal yang sebelumnya Anda lakukan dengan tangan kini dilakukan dalam kode yang dihasilkan, jadi mungkin tidak memakan waktu selama yang Anda kira. Ayo melompat :-)
v3.1 Sekarang memiliki pelacakan perubahan pada model. Alih-alih memasukkan seluruh objek ke database setiap kali Anda menyimpan objek, ini hanya memasukkan data yang telah berubah. Untuk melakukan hal ini, variabel anggota dalam superkelas model yang dihasilkan menjadi pribadi, bukan dilindungi, yang mungkin mengharuskan Anda mengubah kode di subkelas model Anda. Untuk membantu transisi, fitur variabel pribadi baru dinonaktifkan secara default. Anda perlu mengaktifkannya dengan mengedit file codegen_settings.xml dan menambahkan parameter 'privateColumnVars="true"' ke tag createOptions. Lihat file codegen_settings.xml di direktori qcubed/install/project/configuration sebagai contoh.
Ini akan membuat semua variabel kolom terlindungi yang ada di kelas Gen menjadi pribadi, sehingga Anda tidak akan dapat mengaksesnya langsung dari subkelas Model Anda. Misalnya, jika Anda memiliki kolom "Nama" di tabel, Anda bisa melakukan:
$ strName = $ this -> Name ;
atau lebih baik lagi:
$ strName = $ this -> getName ();
tapi tidak:
$ strName = $ this -> strName ;
$this->Name
rute ke $this->getName()
Selain itu, alih-alih ini:
$ this -> strName = $ strName ;
Mengerjakan:
$ this -> setName ( $ strName );
atau
$ this -> Name = $ strName ;
Manfaat fitur baru ini mencakup kinerja yang lebih baik, pengurangan pengecualian OptimisticLocking, dan mencegah Anda mengakses nilai yang tidak dimuat karena klausa QSelect secara tidak sengaja. Selain itu, QSelect sekarang dapat digunakan untuk mengontrol apa yang dihasilkan saat Anda mengonversi objek ke format lain seperti JSON.
v4.0 adalah perubahan arsitektur besar lainnya, yang dirancang untuk mendukung standar PSR-1, PSR-2 dan PSR-4. v4 menambahkan namespace ke semua file inti dan perpustakaan. Hilang sudah huruf 'Q' di depan semua kelas inti, karena pada dasarnya itulah cara kami melakukan penspasian nama sebelum namespace tersedia di PHP.
Ini mencakup alat untuk membantu mengotomatiskan perubahan kode Anda dari kode v3.x ke v4.0. Lihat file Readme di repositori qcubed/aplikasi untuk informasi lebih lanjut.
Daftar perubahan terbaru tersedia di https://github.com/qcubed/qcubed/commits/master
QCubed merupakan cabang dari QCodo, sebuah proyek oleh Michael Ho. QCubed mengandalkan JQuery dan menggunakan perpustakaan jQuery UI untuk beberapa kontrol intinya.