Mengenal Server Events di PHPMaker

Author: · Published: August 26, 2014 · Category: Pemrograman PHP 

Sering kali pertanyaan dan cemoohan berikut di bawah ini saya terima:
– Apakah PHPMaker bisa membuat fungsi CRUD yang kompleks untuk menambah atau mengubah data di tabel lain?
– Saya tidak bisa membuat kode validasi sendiri, tapi hanya bisa menggunakan validasi bawaan PHPMaker saja!
– Apakah PHPMaker bisa menyimpan data yang akan dihapus ke tabel lain sebelum data tersebut dihapus?
– Aplikasi Web yang dihasilkan oleh PHPMaker sangat kaku, karena harus mengikuti kode yang sudah ada!
– Ah, PHPMaker itu membuat Programmer menjadi malas karena membatasi kreativitas Programmer!
– …

Dan masih banyak lagi pertanyaan-pertanyaan dan cemoohan-cemoohan lainnya yang sejenis dengan itu. 🙂

Memang bagi mereka yang belum mengenal kemampuan PHPMaker, wajar saja jika beranggapan seperti di atas tadi. Biasanya, mereka langsung menjadi negative-thinking terhadap PHPMaker. Sebagian lainnya ada yang merasa cemburu atau jealous dengan kemampuan dan fleksibiltas PHPMaker. Di beberapa forum diskusi yang dulu pernah saya ikuti membahas PHPMaker, banyak yang menganggap seolah PHPMaker itu merupakan musuh besar Programmer atau lebih tepatnya Web Developer. Padahal, PHPMaker justru dapat dijadikan sebagai partner atau mitra Web Developer dalam membangun Aplikasi Web.

Menanggapi pertanyaan/cemoohan dan semua kondisi di atas, saya hanya bisa tersenyum saja. Kadang-kadang geli juga rasanya menghadapi orang-orang yang berpikiran seperti tadi. Mengapa? Karena semua itu ternyata tidak benar. Untuk itulah mulai tulisan ini saya akan menjelaskan beberapa fitur unggulan PHPMaker yang sayang sekali jika tidak dioptimalkan oleh Web Developer.

PHPMaker dibuat dengan fleksibilitas yang tinggi. Ada begitu banyak pilihan dan ruang yang disediakan oleh PHPMaker buat Web Developer dalam mengembangkan Aplikasi Web-nya tanpa harus mengubah Template atau memodifikasi file script yang dihasilkannya. Artinya, Web Developer dapat menambahkan business logic secara dinamis tanpa harus menulis kode PHP secara langsung ke dalam file .php. Web Developer cukup menulis sedikit kode dari dalam project PHPMaker. Fitur itu dikenal dengan nama Server Events di PHPMaker.

Seperti namanya, Server Events adalah event-event atau kejadian yang terjadi di sisi server. Secara lebih detail, event-event ini akan dipanggil atau dieksekusi di sisi server. Karena kita fokus dan lebih spesifik kepada kode PHP, maka event-event ini berisi kode PHP yang dijalankan di sisi web server. Ada begitu banyak Server Events yang tersedia di PHPMaker, dan semua kode PHP yang ditulis di bagian Server Events akan secara otomatis disimpan di dalam project PHPMaker. Dengan pola seperti ini, maka kode yang sudah ditulis Web Developer menjadi lebih mudah dimengerti dan dipelihara ketika akan dikembangkan di waktu mendatang.

Sampai di sini, rasanya sudah sangat jelas apa definisi dari Server Events di PHPMaker.

Nah, kembali kepada pertanyaan-pertanyaan dan cemoohan-cemoohan di atas tadi. Server Events di PHPMaker disediakan untuk mengatasi semua kekhawatiran tadi. Web Developer diberi kesempatan yang sangat luas untuk berinovasi dan berkreatifitas dengan menuliskan hanya sedikit kode PHP saja di bagian Server Events. Melalui Server Events, Web Developer dapat menulis hanya beberapa baris kode saja untuk mengimplementasikan business logic untuk Aplikasi Web yang akan dibangunnya. Web Developer tidak perlu mengubah Template atau file script yang sudah dihasilkan oleh PHPMaker jika ingin mengubah/menambah fitur di sisi Aplikasi Web.

Contoh, Web Developer dapat membuat fungsi CRUD yang sangat kompleks dengan menulis kode di Server Events. Jika Pengguna sedang menginput lalu menyimpan data baru di tabel A, maka di saat itu sistem akan mengubah data terkait di tabel B dan C, kemudian menambahkan data tersebut ke tabel D, dan terakhir akan menghapus data versi yang lama di tabel E (hanya jika sebelumnya data tersebut sudah ada). Semua business logic tadi bisa diatasi dengan sangat mudah dan cepat dengan menulis beberapa baris kode PHP di server event yang bernama Row_Inserting.

Server Events juga dapat digunakan untuk menambahkan kode PHP berisi validasi khusus yang ditentukan oleh Web Developer. Kadang-kadang, Web Developer membutuhkan proses validasi tambahan yang harus dilakukan di sisi server, di samping validasi bawaan yang sudah disediakan oleh PHPMaker. PHPMaker memiliki Server Event yang bernama Form_CustomValidate, dan tersedia untuk halaman Add, Edit, Update, dan Search. Web Developer dapat menyisipkan kode PHP yang berisi perintah untuk memvalidasi data sesuai dengan kebutuhannya.

Beberapa contoh Server Events di PHPMaker yang paling sering digunakan, seperti:

  • Database_Connecting, untuk membuat koneksi Database yang dinamis di localhost dan di remote server.
  • Row_Rendered, untuk memanipulasi output atau tampilan baris Record.
  • Row_Inserting, untuk menyisipkan business logic saat Pengguna sedang menambah Record baru.
  • Row_Inserted, untuk menyisipkan business logic saat Pengguna berhasil menambah Record baru.
  • Row_Updating, untuk menyisipkan business logic saat Pengguna sedang mengubah Record yang sudah ada.
  • Row_Updated, untuk menyisipkan business logic saat Pengguna berhasil mengubah Record yang sudah ada.
  • Row_Deleting, untuk menyisipkan business logic saat Pengguna sedang menghapus Record.
  • Row_Deleted, untuk menyisipkan business logic saat Pengguna berhasil menghapus Record.

Masih ada banyak Server Event lainnya yang disediakan oleh PHPMaker. Selengkapnya bisa Anda lihat dari topik Server Events and Client Scripts pada menu Help yang disediakan oleh PHPMaker.

Dengan adanya Server Events, maka Web Developer menjadi lebih mudah dan cepat memahami kode yang sudah ditambahkannya ketika project PHPMaker akan diperbarui di waktu yang akan datang. Mengapa? Karena fitur Server Events dibuat persis seperti sebuah kerangka kerja yang melekat kepada object Table atau View yang digunakan oleh PHPMaker.

Ketika sebuah project PHPMaker dijalankan kembali, maka semua kode di Server Events yang dulu sudah pernah ditulis oleh Web Developer akan ditampilkan kembali. Web Developer tidak perlu sama sekali melihat ke dalam file script di sisi Aplikasi Web. Bayangkan kalau ini Anda lakukan pada Aplikasi Web yang memiliki ratusan atau bahkan ribuan file! Bahkan, Web Developer yang lain pun tetap mudah memahami business logic yang terdapat di setiap kode pada Server Events cukup melalui project PHPMaker saja.

Kreativitas Web Developer pun justru bisa semakin berkembang, karena mereka menjadi lebih fokus untuk mengimplementasikan business logic apapun yang mereka inginkan. Bahkan, mereka bisa mengkombinasikan pemakaian beberapa Server Events untuk memenuhi kebutuhannya. Mereka tidak lagi disibukkan untuk memikirkan hal-hal teknis seperti bagaimana cara mengimplementasikan kebutuhannya di dalam Aplikasi Web yang dibangun dengan PHPMaker.

Beberapa contoh pengimplementasian Server Events dapat dilihat melalui artikel berikut:

  • Membuat Koneksi Database yang Fleksibel di PHPMaker
    function Database_Connecting(&$info) {
        if (ew_CurrentUserIP() == "127.0.0.1") { // setting koneksi database di komputer localhost
            $info["host"] = "localhost";
            $info["user"] = "aaa"; // sesuaikan dengan username database di komputer localhost
            $info["pass"] = "bbb"; // sesuaikan dengan password database di komputer localhost
            $info["db"] = "ccc"; // sesuaikan dengan nama database di komputer localhost
        } else { // setting koneksi database untuk komputer server
            $info["host"] = "www";  // sesuaikan dengan ip address atau hostname komputer server
            $info["user"] = "xxx"; // sesuaikan dengan username database di komputer server
            $info["pass"] = "yyy"; // sesuaikan deengan password database di komputer server
            $info["db"] = "zzz"; // sesuaikan dengan nama database di komputer server
        }
    }
  • Mudahnya Menyembunyikan Item Menu Aplikasi Web dari PHPMaker
    function MenuItem_Adding(&$Item) {
         //var_dump($Item);
         // Return False if menu item not allowed
        if ($Item->Text == "Download") {
             return IsLoggedIn();
         } else {
             return TRUE;
         }
    }
  • Mudahnya Menerapkan Hak Akses yang Dinamis di Aplikasi Web dari PHPMaker
    function UserLevel_Loaded() {
        $this->AddUserPermission("Sales", "categories", EW_ALLOW_ADD); //tambahkan Hak Akses Tambah (Add)
        $this->AddUserPermission("Sales", "categories", EW_ALLOW_EDIT); //tambahkan Hak Akses Ubah (Edit)
    }
  • Mudahnya Memodifikasi Kriteria Pencarian di Aplikasi Web dari PHPMaker
    function Recordset_SearchValidated() {
         $this->MyField1->AdvancedSearch->SearchValue = "data yang dicari"; // nilai pencarian
    }
  • Mudahnya Mengatasi Konflik Saat Update Data di Aplikasi Web dari PHPMaker
    // Row Update Conflict event
    function Row_UpdateConflict($rsold, &$rsnew) {
        // Masukkan kode Anda di sini
        // Untuk mengabaikan konflik, kembalikan nilai FALSE
        return TRUE;
    }

Related Articles

  1. Menyisipkan Business Logic Saat Record Ditambah di Aplikasi Web dari PHPMaker
  2. Mengenal Client Scripts di PHPMaker
  3. Mengenal Pengaturan Edit pada Table Setup di PHPMaker
  4. Mengenal User Code di PHPMaker
  5. Mengenal Pengaturan Return Pages pada Table Setup di PHPMaker
  6. Mengenal Database Helper Class di PHPMaker
  7. PHPMaker = {PHP Code Generator + PHP Framework + CSS dan Javascript Framework}
  8. Mengapa PHPMaker Bisa Men-generate Kode PHP dengan Sangat Cepat?
  9. Meng-override Style di Aplikasi Web yang Dihasilkan oleh PHPMaker
  10. Mengenal Custom Templates di PHPMaker
  11. Mengenal Fitur Sinkronisasi di PHPMaker
  12. Mengenal Pengaturan Email Notification pada Table Setup di PHPMaker
  13. Mengenal Custom Validation Function di PHPMaker
  14. Mengenal Pengaturan Add Page pada Table Setup di PHPMaker
  15. Mengenal Pengaturan Multi-Page pada Table Setup di PHPMaker
  16. Mengenal Multi-Language Property Editor di PHPMaker
  17. Mengenal Pengaturan Audit Trail pada Table Setup di PHPMaker
  18. Mengenal Field Setup di PHPMaker
  19. Menyalin Tabel dan Field dari Dalam Project PHPMaker
  20. Mengenal Pengaturan View pada Table Setup di PHPMaker