Struktur Direktori
Last updated
Last updated
Setiap project yang menggunakan O2System Framework memiliki 5 struktur direktori dasar pada root-nya, yang terdiri dari:
Direktori App
Direktori Cache
Direktori Public
Direktori Storage
Direktori Vendor
Masing-masing direktori tersebut memiliki peruntukannya masing-masing.
Direktori aplikasi berisi semua source-code aplikasi anda yang tersusun rapi sesuai dengan peruntukkannya masing-masing. Secara default, direktori ini berada dalam namespace App dan di-autoload oleh Composer dan O2System Framework autoloader menggunakan standar autoloading PSR-4.
Hampir seluruh file class-class php pada folder app dapat digenerate menggunakan O2System Console Commands. Untuk mempelajari perintah-perintahnya, jalankan perintah:
php o2system make --help
Seperti yang terlihat pada gambar diatas, struktur pada direktori app memiliki beberapa sub-direktori. Beberapa diantaranya merupakan sub-direktori yang memiliki fungsi penting dan tidak dapat anda gantikan nama sub-direktori tersebut dengan nama lain. Walaupun demikian anda tetap dapat menambahkan sub-direktori baru dengan nama lain sesuai dengan preferensi masing-masing namun harus tetap mematuhi standar penulisan nama direktori PSR-4.
Tempat menyimpan semua file-file konfigurasi aplikasi anda. File Config diharuskan ber-format file PHP, yang berisikan variable bertipe array atau bertipe object dari class O2System\Kernel\Datastructures\Config, berlaku untuk turunannya. Penamaan nama variable harus ber-format camelcase dari nama filename Config tersebut, sedangkan untuk penulisan nama filename harus berstandar PSR-4 yaitu dengan format penulisan StudlyCase.
Script diatas harus disimpan dengan filename
app/Config/YourConfig.php
Tempat menyimpan semua file-file Controller/Commander class aplikasi anda. File Controller/Commander class diharuskan ber-format file PHP, yang berisikan script PHP class Controller. Penamaan class dan filename harus berstandar PSR-4 yaitu dengan format penulisan StudlyCase dan harus disertai dengan namespace.
Script diatas harus disimpan dengan filename
app/Controllers/HelloWorld.php
Tempat menyimpan semua file-file Helper aplikasi anda. File Helper diharuskan ber-format file PHP, yang berisikan script fungsi-fungsi yang anda tulis khusus untuk aplikasi anda. Setiap penulisan fungsi disarankan seperti sample dibawah ini dan harus berstandar PSR-1 dan PSR-2. Sedangkan untuk penulisan nama filename harus berstandar PSR-4 yaitu dengan format penulisan StudlyCase.
Script diatas harus disimpan dengan nama filename
app/Helpers/YourHelper.php
Tempat menyimpan semua file-file Language (bahasa) aplikasi anda. File-file tersebut diharuskan ber-format file INI. Dalam direktori Languages anda dapat mengelompokkan kembali setiap file-file bahasa ke dalam sub-direktori yang diberi nama sesuai dengan standar kode bahasa atau apabila anda merasa tidak perlu mengelompokkannya ke dalam sub-direktori anda dapat menamakan file Language dengan filename yang ditambahkan suffix (akhiran) kode bahasa.
Disimpan didalam sub-direktori berdasarkan bahasa
app/Languages/en-US/nama-file.ini
Disimpan dengan tambahan suffix bahasa
app/Languages/nama-file_en-US.ini
Disimpan didalam sub-direktori berdasarkan bahasa
app/Languages/id-ID/nama-file.ini
Disimpan dengan tambahan suffix bahasa
app/Languages/nama-file_id-ID.ini
Hal terpenting pertama dalam penulisan file Language adalah language key parameter harus dituliskan dengan format CAPSLOCK dan menggunakan underscore (_) sebagai pemisah kata. Hal terpenting kedua yaitu language key parameter pada setiap bahasa tidak boleh berubah seperti pada contoh diatas.
Tips and Trick Jika anda menuliskan nama filename sama dengan salah satu controller/commander class maka secara otomatis file language tersebut akan diload oleh O2System Framework ketika controller/commander tersebut diakses.
Tempat menyimpan semua file-file Library class aplikasi anda. File Library class diharuskan ber-format file PHP yang berisikan script PHP class. Penamaan class dan filename harus berstandar PSR-4 yaitu dengan format penulisan StudlyCase dan harus disertai dengan namespace.
Script diatas harus disimpan dengan nama filename
app/Libraries/MyClass.php
Tempat menyimpan semua file-file Model class aplikasi anda. File Model class diharuskan ber-format file PHP yang berisikan script PHP class. Penamaan class dan filename harus berstandar PSR-4 yaitu dengan format penulisan StudlyCase dan harus disertai dengan namespace.
Script diatas harus disimpan dengan nama filename
app/Models/HelloWorld.php
Tips and Trick Jika anda menuliskan nama filename sama dengan salah satu controller class maka secara otomatis file Model class tersebut akan diload oleh O2System Framework ketika controller tersebut diakses.
Tempat menyimpan file-file halaman statis aplikasi anda. File Page harus ber-format file PHTML yang berisikan gabungan HTML, PHP ataupun script yang sesuai dengan parser engine yang digunakan. Penulisan nama filename pada file Page diharuskan berformat StudlyCaps.
Tempat menyimpan file-file View aplikasi anda. File View harus ber-format file HTML atau PHTML yang berisikan script gabungan HTML, PHP ataupun script yang sesuai dengan parser engine yang digunakan. Penulisan nama filename pada file View sebaiknya ber-format dash.
Direktori cache berfungsi sebagai tempat penyimpanan dari semua file cache dari template parser yang dikompilasi, sesi berbasis file, registri berbasis file, cache manipulasi gambar, file logging dan cache lainnya yang dihasilkan oleh aplikasi dan framework. Setiap file cache disimpan dalam folder yang dinamai sesuai dengan namanya.
Direktori publik berfungsi sebagai root document dari web server anda, di mana semua file yang dapat diakses oleh publik akan ditempatkan di direktori ini seperti file javascript, css, gambar dan asset lainnya. Index.php yang berfungsi sebagai front-controller dari permintaan http aplikasi anda terletak di direktori ini. Asset dan tema yang digunakan oleh aplikasi Anda juga terletak di dalam direktori ini.
Direktori storage berfungsi sebagai tempat penyimpanan raw-files atau file-file yang di-upload dari aplikasi anda.
Direktori vendor berisi library-library dari Composer Dependencies yang diperlukan oleh project aplikasi anda, termasuk didalamnya library-library dari O2System Framework.