membangun aplikasi bisnis dengan openbiz framework dan cubi platform

of 29/29
Membangun Aplikasi Bisnis mengunakan Openbiz Frameworks dan Cubi Platform 1

Post on 19-Jan-2015

1.820 views

Category:

Technology

2 download

Embed Size (px)

DESCRIPTION

Informasi terbaru tentang Openbiz dan Cubi silahkan kunjungi: http://www.openbiz.me (internasional) http://www.openbiz.web.id (indonesia)

TRANSCRIPT

  • 1. Membangun Aplikasi Bisnis mengunakanOpenbiz Frameworksdan Cubi Platform Oleh : Agus SuhartonoOpenBiz Contributor, on coding standard and code quality enhancement Kioss Project http://www.kioss.co.id 1

2. Daftar IsiDAFTAR ISI...................................................................................................................................................................2BAB 1: MENGENAL OPENBIZ FRAMEWORK DAN CUBI PLATFORM........................................................3OPENBIZ FRAMEWORKS....................................................................................................................................................3CUBI PLATFORM..............................................................................................................................................................3BAB 2: MEMULAI CUBI DAN OPENBIZ................................................................................................................4MENUNDUH CUBI DAN OPENBIZ........................................................................................................................................4STRUKTUR DIREKTORI.......................................................................................................................................................4MERUBAH PERMISI (PERMISION) FILE DAN DIREKORI DALAM CUBI...........................................................................................6MELAKUKAN INSTALASI CUBI...........................................................................................................................................7MENJALAN APLIKASI CUBI...............................................................................................................................................9BAB 3: MEMBUAT MODULE PERTAMA ANDA.................................................................................................12MEMBUAT TABEL DATABASE...........................................................................................................................................12MEMBUAT MODULE + METADATA MENGGUNAKAN CODE GENERATOR ................................................................................12MENGINSTALL MODULE DALAM CUBI...............................................................................................................................16Mengakses Module Secara Langsung..................................................................................................................17MEMERBAIKI FILE HASIL CODE GENERATOR.....................................................................................................................18Memperbaiki ACL................................................................................................................................................18Memperbaiki Menu..............................................................................................................................................19Memperbaiki View................................................................................................................................................19Memperbaiki Form..............................................................................................................................................19MEMUAT ULANG MODULE.............................................................................................................................................19MENATA HAK AKSES.....................................................................................................................................................20BAB 4. MEMAHAMI CARA KERJA MODULE....................................................................................................22FILE MOD.XML..............................................................................................................................................................22HUBUNGAN URL DAN VIEW..........................................................................................................................................22 2 3. Bab 1: Mengenal Openbiz Framework dan Cubi Platform Openbiz FrameworksOpenbiz merupakan framework aplikasi php yang menyediakan object-oriented metadata-drivenplatform bagi pengembang aplikasi untuk membangun aplikasi web dengan sedikit mungkinkode. Openbiz framework dikembangkan sejak tahun 2003 dan terus dikembangkan lebih lanjutoleh komunitas pengembang dan umpan balik pengguna. Openbiz digunakan dalam aplikasinyata dalam dunia ini.Openbiz framework fokus pada bagaimana membatu para pengembang untukmengimplementasikan logika aplikasi lebih efisien.. Untuk melakukannya, Openbizmenggunakan konsep metadata-driven. Dengan menggunakan metadata Openbiz berbentukxml, pengembang dapat Mendeklarasikan pemetaan antara table database dengan data object (ORM) Mendeklaraskan bagaimana mempresentasikan data ke user interface Mendeklarasikan perilaku object serta hubungan/relasi antar objek Mendeskripsikan operasi CRUD, data query, data validation, template, access control, navigation flow, cache, multiple database Mendeklarasikan lokasi dari custom class atau servicePada umumnya aplikasi Openbiz memiliki 80% metadata dan 20% kode program. Cubi PlatformCubi platform pada awalnya berupa contoh aplikasi yang berjalan di atas Openbiz. Kemudian diaberkembang menjadi platform aplikasi yang berisi komponen umum yang dipakai oleh aplikasiweb atau aplikasi bisnis.Cubi juga menyediakan sekumpulan tools untuk mengelola metadata, mengelola module,membuat paketbahasa, theme dan membangun aplikasi.Cubi tidak hanya berupa platform aplikasi siap pakai, tetapi juga menyediakan contoh terbaikuntuk mempelajadi openbiz.3 4. Bab 2: Memulai Cubi dan OpenbizMenunduh Cubi dan OpenbizSilahkan unduh Cubi dan Openbiz di alamat berikut. Atau salin dari CD yang tersedia. Kemudianekstraklah file yang terkompres.Lokasi mengunduh Openbiz dan Cubi: http://www.phpopenbiz.orgStruktur direktoriSecara default, direktori Cubi dan Openbiz diatur untuk diletakkan secara berdampingan./cubi/openbizDari aturan ini, kita bisa memiliki dua alternatif susunan direktori aplikasi kita.Cara 1: Cubi dan Openbiz diletakkan dalam direktori aplikasi kita, keudian direktori cubi digantimenjadi app. File index.php di root aplikasi mem-forward request ke app/index.php .Contoh:nayaka/ index.php (forward ke app/index.php) /app (isi direktori cubi ditaruh di sini )index.php/binapp_init.phpcontroller.php....../themes /openbiz (isi direktori openbiz ditaruh di sini)bin/messages/metadata/others/Cara 2: Direktori cubi dijadikan direktori aplikasi, kemudian direktori openbiz berdampingan(diluar) dengan direktori aplikasi (cubi). Cara ini memungkinkan beberapa aplikasi menggunakansatu librari openbiz bersama-sama.4 5. /nayaka(isi direktori cubi ditaruh di sini )index.php/bin app_init.php controller.php....../themes /sigap(isi direktori cubi ditaruh di sini )index.php/bin app_init.php controller.php....../themes /openbiz (isi direktori openbiz ditaruh di sini)bin/messages/metadata/others/Letak direktori openbiz terhadap cubi bisa diubah dengan mengedit file bin/app_init.php di dalamcubi. Yaitu pada bagian:define(OPENBIZ_HOME, dirname(dirname(dirname(__FILE__)))."/openbiz");Cara 3: Direktori cubi dijadikan sebagai direktori aplikasi, dan direktori openbiz diletakkan didalam direktori aplikasi tersebut. /nayaka(isi direktori cubi ditaruh di sini ) index.php /binapp_init.phpcontroller.php ... ... /themes /openbiz (isi direktori openbiz ditaruh di sini)/bin/messagesCara ini mengharuskan Anda merubah lokasi OPENBIZ_HOME di dalam cubi/bin/app_init.phpsebagai berikut:define(OPENBIZ_HOME, dirname(dirname(__FILE__))."/openbiz"); 5 6. Merubah permisi (permision) file dan direkori dalam Cubi.Sebelum Anda melakukan proses instalasi Cubi, Anda harus merubah permisi beberapa file dandirektori milik Cubi supaya web-server memiliki hak untuk menulisi file atau direktori tersebut.Pada Linux anda perlu melakukan perintah CHMOD 777 untuk direktori dan CHMOD 666 padafile.Perhatikan susunan direktori Cubi berikut, kemudian perhatikan pada file dan direktori yangtercetak tebal./cubi (writable by webserver (chmod cubi 777) saat instalasi)index.phpConfig.xml (writable by web-server (chmod 666 Config.xml) saatinstalasi)install.lock/backup/bin/files (writabe by web-server chmod 777 files -R)/images/install/js/log (writabe by web-server chmod 777 log -R)/modules/pages/resources/server/session (writabe by web-server chmod 777 session -R)/themes /theme-name theme.xml /css /images /js /template /cfg /cpl (writabe by web-server chmod 777 cpl -R) system_view.tpl.html system_right_listform.tpl.html .../upgradeBerikut file dan direktori yang perlu diubah permisinya supaya bisa ditulisi oleh web-server. Direktori root Cubi (/cubi), direktori ini harus bisa ditulisi pada saat instalasi, karenapada waktu itu skrip penginstal akan membuat file install.lock dibawah direktori cubi ini. File Config.xml, file ini harus bisa ditulisi pada saat instalasi, karena pada waktu ituskrip penginstal akan menyimpan informasi instalasi ke dalam file Config.xml ini. Direktori /files serta isinya, direktori ini akan digunakan untuk menyimpan datatembolok (cache) dan file-file yang diunggah (upload).6 7. Direktori /log dan isinya, digunakan untuk mencatat log saat aplikasi berjalan. Direktori /session dan isinya, digunakan untuk menyimpan data sesi aplikasi (session) Direktori /themes/nama-theme/template/cpl dan isinya, digunakan oleh Smartyuntuk menyimpan template yang sudah dikompilasi. Secara default, theme yang aktifadalah default, maka direktori cpl-nya berada di /themes/default/template/cpl. Melakukan Instalasi CubiSeletah susunan direktori dan permisi beberapa file dan direktori sudah disesuaikan, maka prosesinstalasi sudah siap dilakukan. Berikut tatacara melakukan instalasi Cubi: 1. Akseslah file index.php di bawah cubi dari web-browser, misal jika kita mengunakansusunan direktori default, dan direktori cubi tidak diubah namanya dimana direktori cubiditaruh dibawah web-root, maka kita bisa mengakses alamathttp://localhost/cubi/index.php.Jika aplikasi belum pernah diinstal, maka secara otomatis akan memanggil skrippenginstall yang ada di direktori cubi/install seperti terlihat pada gambar berikut: 2. Kliklah tombol [ Setup Now! ] Sehingga akan tampil halaman 1. System Check sepertigambar berikut:7 8. 3. Pada halaman 1. System Check tekanlah tombol [ Next > ], sehingga tampil halaman 2. Database Configuration.4. Pada halaman 2. Database Configuration isilah data-data sebagai berikut: Pilih jenis database pada field Database Type. Isi Database Host Name dengan nama host dimana server database berada, jikaserver database sama dengan server web, maka diisi localhost. Isi Database Port sesuai dengan port yang digunakan oleh server database.Untuk MySql defaultnya adalah 3306. Isi Database Name dengan nama database yang akan dibuat atau yang sudahada. Isi Database Username dan Database Password dengan username danpassword database. Jika database yang ada pada field Database Name sudah ada di serverdatabase, maka pada field Create Database tidak perlu dicentang, artinya skrippenginstal tidak perlu membuat database lagi. Tetapi jika database belum ada,Anda harus mencentangnya, supaya skrip penginstal melakukan pembuatandatabase secara otomatis. Pastikan username yang Anda isikan di fieldDatabase Username memiliki hak akses membuat database baru.5. Selanjutnya, bila Anda sudah selesai mengisi data yang diperlukan, kliklah tombol [ Next > ].8 9. 6. Pada halaman 3. Application Configuration, muat atau aktifkan module dengan mengklik tombol [Load Modules]. Anda dapat melihat module apa saja yang sudah berhasil diinstal dengan mengklik tombol [Show Results].7. Tekan tombol [Next >] untuk melanjutkan, sehingga tampil halaman berikut:8. Proses instalasi sudah selesai, selanjutnya Anda dapat mengakses aplikasi dengan mengklik tombol [Launch Openbiz Cubi] .Menjalan Aplikasi Cubi1. Sekarang Anda sudah bisa mengakses aplikasi Anda, yaitu dengan mengakses URL9 10. seperti saat mau menginstal aplikasi pada sub-bab sebelumnya, yaitu http://localhost/cubi/index.php.2. Jika Anda belum pernah login sebelumnya, maka halaman login (index.php/user/login) akan ditampilkan.3. Isi Username dan Password Anda, kemudian klik tombol [Login] . Catatan: Username dan Password default adalah admin dan admin.4. Maka Anda masuk halaman seperti berikut:1 11. 11 12. Bab 3: Membuat Module Pertama AndaDalam bab ini kita akan membuat module mengunakan code generator, kemudian mempelajaribagaimana sebuah module dalam Cubi bekerja. Membuat Tabel DatabaseKita akan membuat aplikasi HRM, pertama kita membuat tabel pegawai terlebih dahulu. Buatlahtable database dengan struktur sebagai berikut.CREATE TABLE `hrm_pegawai` ( `hrm_pegawai_id` int(11) NOT NULL AUTO_INCREMENT, `nip` varchar(20) NOT NULL, `nama` varchar(100) NOT NULL, `tanggal_lahir` date DEFAULT NULL, `tempat_lahir` varchar(50) DEFAULT NULL, `alamat` varchar(200) DEFAULT NULL, `kabupaten` varchar(50) DEFAULT NULL, `provinsi` varchar(50) DEFAULT NULL, `kode_pos` varchar(10) DEFAULT NULL, PRIMARY KEY (`hrm_pegawai_id`)) ENGINE=MyISAM ; Membuat Module + Metadata Menggunakan Code GeneratorCubi menyediakan tools berupa code generator yang digunakan untuk membantu pengembangmembuat aplikasi. Tools tersebut dapat digunaan untuk membuat module, theme, dll. Toolstersebut berada di direktori cubi/bin/tools .Catatan:Code generator dalam cubi dijalankan dalam shell (command line interface CLI). Sehingga phpharus diatur untuk bisa dijalankan sebagai perintah shell (CLI). Juga lokasi file eksekusi phpharus dimasukkan dalam PATH linkungan sistim operasi.Skrip yang digunakan untuk membuat metadata + module adalah cubi/bin/tools/gen_meta.phpCara memakainya sebagai berikut: 1. Dalam command line, masuklah ke direktori path-cubi/bin/tools 2. Jalankan perintah sebagai berikut: php gen_meta.php dbname table [modulename] [metadata template set] dbname adalah nama database alias yang terdapat dalam Config.xml table adalah nama table dalam database [modulename] adalah nama module dimana file hasil code generatordiletakkan, defaultnya disesuakan dengan nama table database1 13. [metadata template set] adalah template yang digunakan untukmembuat file metadata.Contoh, kita jalankan perintah berikut: php gen_meta.php Default hrm_pegawaimaka akan ada pilihan format module dan nama : --------------------------------------- Please select metadata naming: 1. module path: /hrm_pegawai, object name: HrmPegawai, module name: hrm_pegawai 2. module path: /hrm_pegawai, object name: Pegawai, module name: hrm_pegawai S. specify a custom module path, object name and module name Please select: [1/2/s] (1) :Perhatikan pilihan 1 dan 2, module path dan module name adalah nama table yang diberikan.Yang berbeda ada pada object name, di mana pilihan 1 menggunakan gabungan kata yang adapada nama table, hrm_pegawai menjadi HrmPegawai. Pilihan ke 2 menggunakan suku kataterakhir dari nama table, hrm_pegawai menjadi Pegawai.Sedangkan pilihan S, kita diberi keleluasan untuk memberi nama module, path dan nama objek.Coba lagi dengan perintah berikut : php gen_meta.php Default hrm_pegawai hrmmaka akan ada pilihan format module dan nama sebagai berikut : --------------------------------------- Please select metadata naming: 1. module path: /hrm, object name: HrmPegawai, module name: hrm 2. module path: /hrm, object name: Pegawai, module name: hrm S. specify a custom module path, object name and module name Please select: [1/2/s] (1) :Pilihlah nomor 2, sehingga tampil berikut: Access control options: 1. Access and Manage (default) 2. Access, Create, Update and Delete 3. No access control Please select access control type [1/2/3] (1) :Pilihan 1. Access and Manage (default) , akan memberi 2 kelompok hak akses, yaitu Accessyang hanya mempunyai hak baca saja, dan Manage yang memiliki hak untuk mengelola sepertimenambah, mengubah dan menghapus.Pilihan 2. Access, Create, Update and Delete, memiliki 4 kelompok hak akses. Manage pada1 14. kelompok 1 diperinci menjadi Create (menambah data baru), Update (mengedit) dan Delete(menghapus).Pilihn 3. No access control , berarti tidak ada hak akses sehingga semua user dapat mengakses.Setelah Anda memilih salah satu dari jenis Acces control, maka akan ada konfirmasi berikut: Target dir: /home/agus/public_html/openbiz3/app/modules/hrm Medata file to create:do/PegawaiDO.xmlform/Pegawai...Form.xmlview/PegawaiView.xml Do you want to continue? [y/n] (y) :Pilih y untuk melanjutkan dan pilih n untuk membatalkan.Jika Anda memilih y, maka akan tampil pesan berikut: Do you want to generate data Object? [y/n] (y) :Jika Anda memilih y, maka code generator akan membikin metadata untuk Data Object. BaikAnda memilih y maupun n, proses akan dilanjutkan. Bedanya bila Anda memilih y, maka akanada pesan bahwa Data Object sudah dibuat, kemudian dilanjutkan konfirmasi pembuatan FormObject: Do you want to generate data Object? [y/n] (y) : y Generate Data Object metadata file ... Start generate dataobject PegawaiDO. Create directory /home/agus/public_html/openbiz3/app/modules/hrm/do /hrm/do/PegawaiDO.xml is generated. --------------------------------------- Do you want to generate form Object? [y/n] (y) :Seperti pada Data Object, jika Anda memilih y, maka form object akan dibuat dan pesan bahwaform object sudah dibuat akan ditampilkan. Generate Form Object metadata files ... Start generate form object PegawaiListForm. Create directory /home/agus/public_html/openbiz3/app/modules/hrm/form /hrm/form/PegawaiListForm.xml is generated. Start generate form object PegawaiNewForm. /hrm/form/PegawaiNewForm.xml is generated. Start generate form object PegawaiEditForm. /hrm/form/PegawaiEditForm.xml is generated. Start generate form object PegawaiDetailForm. /hrm/form/PegawaiDetailForm.xml is generated. Start generate form object PegawaiCopyForm. 1 15. /hrm/form/PegawaiCopyForm.xml is generated. --------------------------------------- Do you want to generate view Object? [y/n] (y) :Jika Anda memilih y, maka view object akan dibuat dan pesan bahwa view object sudah dibuatakan ditampilkan. Generate view Object metadata files ... Start generate form object PegawaiListView. Create directory /home/agus/public_html/openbiz3/app/modules/hrm/view /hrm/view/PegawaiListView.xml is generated. --------------------------------------- Do you want to generate module dashboard files? [y/n] (y) :Berikutnya adalah konfirasi apakah Anda akan membuat module dashboard ataukah tidak.Module dashboard adalah halaman berisi menu-menu yang terdapat dalam module. Bentuknyaseperti icon dalam control panel.Silahkan pilih y untuk membuat module dashboard. Generate Module Dashboard ... Start generate DashboardForm.xml . Create directory /home/agus/public_html/openbiz3/app/modules/hrm/widget /hrm/widget/DashboardForm.xml is generated. Start generate DashboardView.xml . /hrm/view/DashboardView.xml is generated. Start generate LeftMenu.xml . /hrm/widget/LeftMenu.xml is generated. Start modify view.tpl to enable module left menu supports ./hrm/template/view.tpl is modified. --------------------------------------- Do you want to create mod.xml? [y/n] (y) :Pilih y untuk membuat file metadata mod.xml. File mod.xml merupakan file informasi tentangmodule yang bersangkutan. Generate mod.xml ... Start generate mod.xml. /hrm/mod.xml is generated.Proses selesai! Mari kita lihat apa yang terjadi. Berikut ini file-file yang dihasilkan oleh codegenerator Cubi: 1 16. Di dalam direktori modules terdapat direktori hrm, ini adalah direktori untuk modul HRM kita.Di dalam direktori hrm terdapat 5 direktori, yaitu do, form, template, view dan widget, sertasatu file mod.xml. Direktori do digunakan untuk menaruh file data object, yaitu PegawaiDO.xml. Direktori form digunakan untuk menaruh file form object, yaitu: PegawaiCopyForm.xml, PegawaiDetailForm.xml, PegawaiEditForm.xml, PegawaiListForm.xml dan PegawaiNewForm.xml. Direktori view digunakan untuk menaruh view object, yaitu DashboardView.xml dan PegawaiList.xml Direktori widget digunakan untuk menaruh file widget, yaitu DashboardForm.xml dan LeftMenu.xml Menginstall Module dalam CubiBerikut cara menginstall module dalam Cubi 1. Loginlah terlebih dahulu 2. Kliklah menu Administrator di sebelah atas 3. Pilih menu di sebelah kiri Module Module Management1 17. 4. Pada halaman Module Management, klik tombol Load Modules Mengakses Module Secara LangsungDi dalam direktori /hrm/view ada dua file, yaitu DashboardView.xml dan PegawaiList.xml,artinya kita dapat mengakses melalui http://hostname/cubi/index.php/hrm/dashboard danhttp://hostname/cubi/index.php/hrm/pegawai_list.Jika Anda melihat tampilan di atas berarti hak akses belum kita tetapkan terhadap Role yang kitagunakan untuk login. 1 18. Memerbaiki File Hasil Code GeneratorSaat ini code generator masih memiliki beberapa kekurangan, sehingga kita perlu memperbaikikekurangan tersebut, perhatikan file mod.xml yang dihasilkan:

Ada dua kelompok, yaitu ACL dan Menu. ACL untuk membuat hak akses, dan Menu untukmembuat menu. Keduanya akan diekseskusi saat module dimuat (Load Modules) Memperbaiki ACLDan kode berikut : menjadi : 1 19. Memperbaiki MenuGanti kode berikut :menjadi : Memperbaiki ViewBuka file PegawaiListView.xml di bawah direktori /hrm/view. Ubah kode berikut :menjadi : Memperbaiki FormUbah hak akses pada file Pegawai....Form.xml, dari Access="hrm.Access" menjadiAccess="hrm.pegawai.Access". Memuat Ulang Module 1. Dari halaman Administrator, Pilih menu di sebelah kiri Module ModuleManagement 2. Cari module hrm, pilih, kemudian klik Tombol Delete 3. klik tombol Load ModulesMaka module sekarang sudah dimuat ulang, hak akses dan menu sudah diperbaiki. Jika Andamerefresh browser, maka akan bertambah satu menu di bagian Atas, yaitu Hrm.1 20. Menata Hak AksesPertama kali module dimuat, hak akses belum tertata, sehingga kita nanti tidak bisa mengaksesModule kita. 1. Dari halaman Administrator, klik menu Role Role Management 2. Klik pada Administrator pada daftar Role yang tersedia 3. Cari Hrm pada daftar yang tersedia 4. Tetapkan Acces Level menjadi Allow2 21. 5. Selanjutnya tekan tombol Save.Saat ini Anda sudah bisa mengakses module Hrm, tetapi Anda harus Logout, kemudian Loginlagi.2 22. Bab 4. Memahami Cara Kerja Module File mod.xmlSetiap module harus memiliki file mod.xml dibawah direktori module. File ini digunakan saatmodule demuat (load module), dan saat terjadi proses update module.Informasi yang ada dalam sebuah module adalah: Nama, menunjukkan nama module Description, menjelaskan tentang module yang bersangkutan Version, menunjukkan versi module, informasi ini saat bermanfaat saat proses update module. OpenbizVersion, menunjukkan dengan versi berapa dari Openbiz module bekerja. ACL, tentang hak akses dalam module Menu, definisi menu yang diunakan dalam module.Informasi-informasi tersebut akan dimuat kedalam sistem saat module diinstal (dimuat). Hubungan URL dan ViewCubi mempunyai konvensi yang memetakan URL dengan View yang dipanggilnya.Http://hostname/cubi/index.php/namamodule/namaviewMaka sistim akan memanggil view dalam direkori namamodule/view, di nama view yangdipangail adalah NamaveiwView.xml Setiap nama view diakhiri dengan kata View Dalam pemanggilan di URL, kata View tidak perlu disertakan Jika nama view lebih dari satu kata, maka setiap kata diawali huruh BESAR Pemanggilan di URL setiap kata dipisah dengan karakter garis bawah _ .Contoh :Nama View Nama File View dalam URLPegawaiListView PegawaiListView.xml pegawai_listPegawaiIntiView PegawaiIntiView.xml pegawai_inti2 23. Bab 5: Arsitektur Openbiz dan MetaObject OpenbizDasar-dasar DataObject, Form dan ViewArsitektur OpenbizsdsdKonsep MetaObject OpenbizBab 6: 2