Fitur Custom Files di PHPMaker memungkinkan Web Developer untuk menambahkan file yang bersifat kostum atau di luar file yang dibangkitkan oleh PHPMaker dari object Tables/Views di database. Meskipun demikian, content dari Custom Files tersebut akan disimpan di dalam file project PHPMaker.
Dengan disimpannya content atau kode dari Custom Files tersebut di dalam project PHPMaker, maka kita tidak perlu repot-repot untuk menyimpan file Custom Files terpisah dari file project PHPMaker. Kita cukup hanya fokus mengamankan satu file saja, yaitu file .pmp (PHPMaker Project).
Seperti yang sudah kita ketahui, PHPMaker menangani Custom Files dengan dua opsi. Opsi pertama dengan mengaktifkan pilihan Include common files, sedangkan opsi kedua dengan menonaktifkan pilihan tersebut. Masing-masing pilihan tersebut memiliki konsekuensi sebagai berikut.
Jika pilihan Include common files diaktifkan, maka itu artinya PHPMaker 2021 akan menghasilkan 3 file yang masing-masing akan ditempatkan ke dalam 3 sub-folder, yaitu: controllers, models, dan views.
Sedangkan jika pilihan Include common files tidak diaktifkan, maka itu artinya PHPMaker akan men-generate Custom Files tersebut dengan nama file yang kita tentukan, termasuk kode yang kita masukkan di bagian Content dari Custom File yang bertalian.
Selain itu, file yang dihasilkan oleh Custom Files dengan pilihan Include common files yang tidak diaktifkan tadi, akan ditempatkan di root folder dari Aplikasi Web. Itu artinya, kita dapat mengakses secara langsung file tersebut di URL, tanpa menggunakan routing seperti file-file lainnya yang di-generate oleh PHPMaker 2021.
Contoh, kita menambahkan sebuah Custom File dengan nama file test.php ke dalam demo project PHPMaker 2021. Caranya, klik kanan Custom Files dari panel Database, lalu pilih Add File.
Selanjutnya, masukkan test.php di bagian File Name, masukkan Test di bagian Caption, lalu pastikan pilihan Include common files tidak dicentang, lalu klik OK.
Kemudian, di bagian Content dari Custom File tadi, ketikkan kode berikut:
<?php echo "<h3>Custom File without Include common files option</h3>"; ?>
Setelah kita generate ulang semua file script seperti biasa, maka PHPMaker 2021 akan menghasilkan file test.php yang lokasinya berada di dalam root folder dari Aplikasi Web. File ini bisa kita panggil secara langsung dari URL tanpa menggunakan routing.
Cukup ketikkan URL berikut dari browser:
http://localhost/demo2021/test.php
Jadi, terserah Anda… apakah mau mengaktifkan pilihan Include common files atau tidak.
O iya, fitur ini baru ditambahkan di template terakhir PHPMaker 2021, dimana saat artikel ini ditulis, versi template-nya adalah 17.0.3.5 dengan tanggal update: 27 Oktober 2020. Sebelum versi minor ini, PHPMaker akan mengabaikan kode yang kita masukkan ke bagian Content, dan menampilkan satu baris kode ini:
<? // No class file ?>
Oleh karena itu, pastikan Anda sudah melakukan update template ke versi terakhir dari menu Tools -> Update Template, sebelum men-generate ulang semua file script seperti biasa.
Pertanyaan selanjutnya: Bagaimana jika kita ingin menggunakan fitur/fungsi buatan PHPMaker 2021 (seperti ExecuteQuery) tapi dengan tetap menonaktifkan pilihan Include common files?
Nah, beruntunglah Anda jika menggunakan PHPMaker 2021 ini, karena kita bisa menggunakan kode berikut di dalam Custom File kita, masih untuk contoh pada demo project di atas tadi:
<?php namespace PHPMaker2021\demo2021; use PHPMaker2021\demo2021\{UserProfile, Language, AdvancedSecurity, Timer, HttpErrorHandler}; use Psr\Http\Message\ServerRequestInterface as Request; use Psr\Http\Message\ResponseInterface as Response; use Psr\Container\ContainerInterface; use DI\Container as Container; use DI\ContainerBuilder; use Selective\SameSiteCookie\SameSiteCookieConfiguration; use Selective\SameSiteCookie\SameSiteCookieMiddleware; use Selective\SameSiteCookie\SameSiteSessionMiddleware; use Slim\Factory\AppFactory; use Slim\Factory\ServerRequestCreatorFactory; use Slim\Exception\HttpInternalServerErrorException; use Nyholm\Psr7\Factory\Psr17Factory; use Nyholm\Psr7Server\ServerRequestCreator; global $RELATIVE_PATH; // Auto load require_once "vendor/autoload.php"; require_once "src/constants.php"; require_once "src/config.php"; require_once "src/phpfn.php"; require_once "src/userfn.php"; echo "<h3>Custom File without Include common files option</h3>"; $sql = "SELECT `Model` FROM `models`"; // define your SQL $stmt = ExecuteQuery($sql); // execute the query $value = ""; // initial value if ($stmt->rowCount() > 0) { // check condition: if record count is greater than 0 while ($row = $stmt->fetch()) { // loop $value .= $row["Model"] . "<br>"; // in case the result returns more than one record, display it and separated by line break } // end loop echo "Here is the Models list: <br>" . $value; // display the result } else { // if there are no result echo "No record found."; // display the message } // end of check condition ?>
Betapa fleksibelnya PHPMaker 2021. 😉
angelo mengatakan
Grazie! ho letto alcune cose in giro ma nessuno riesce a spiegare in modo chiaro come collegarsi al database e leggere le tabelle con PhPMaker 2021
Masino Sinaga mengatakan
Please read Quick Start from PHPMaker Help menu for more info and example.
muslih mengatakan
Bang bisa tolong kasih contoh pengisian variabel $data untuk custom file dari tabel after add record methode GET atau POST dari kemarin belum bisa2
Masino Sinaga mengatakan
Kodenya seperti apa sehingga tidak bisa?
Oktovan mengatakan
Pak Masino,
Saat ini saya menggunakan Phpmaker 2021. Apakah kita bisa meredirect ke custom page apabila terjadi error 404?
Terima kasih sebelumnya
Masino Sinaga mengatakan
Kalau di PHPMaker v2021 sepertinya belum bisa, karena belum menggunakan routing seperti di PHPMaker v2022.
Eka Dalas Pangestu mengatakan
Hallo pak masino
siap izin bertanya pak
kalo custom file untuk melihat hasil nya perlu ke link berikut http://localhost/demo2021/test.php
bagaimana jika custom file saya ingin gabung dalam link berikut http://localhost/demo2021
tanpa harus menambahkan test.php di akhir link untuk melihat hasilnya
Masino Sinaga mengatakan
Jadikan Custom File nya sebagai Default.
Eka Dalas Pangestu mengatakan
Hallo pak masino,
bagaimana jika pemanggilannya langsung http://localhost/demo2021
tanpa memasukan http://localhost/demo2021/test.php ( test.php)
jadi masuk jadi 1 dalam list
Masino Sinaga mengatakan
Sudah dijawab di atas.
Eka Dalas Pangestu mengatakan
Hallo pak,
bagaimana jika pemanggilan hanya http://localhost/demo2021
tanpa harus memanggil test.php
Terima Kasih
Eka Dalas Pangestu mengatakan
saya menggunakan phpmaker 2022
Terima Kasih
Masino Sinaga mengatakan
Ini pertanyaan yang sama mengapa diulang-ulang?
Firman Edi Utomo mengatakan
pak mashino mau tanya
bagaimana cara nya supaya field pada tabel dapat di isi user dengan level yang beda
contohnya :
table : nama, alamat, status.
untuk field nama dan alamat di isi oleh user dengan level user
kemudian untuk status di isi oleh user dengan level admin
Masino Sinaga mengatakan
Bisa pakai server event Row_Rendered, dengan memeriksa jenis halamannya menggunakan fungsi global CurrentPageID apakah sama dengan add atau edit.
Untuk menampilkan field, bisa menggunakan property Visible milik field yang bertalian, lalu set dengan nilai true untuk menampilkan, atau false untuk menyembunyikan.
muslih mengatakan
Bang tanya bagaimana caranya routing custom files agar bisa running pada saat click custom button di viewpage dan listpage
Masino Sinaga mengatakan
Tinggal dipanggil saja routing dari Custom File-nya. Misalnya Anda membuat Custom File dengan nama file My_CustomFile.php, maka routingnya adalah: mycustomfile.