Kerangka kerja Sunhill adalah kerangka pengembangan aplikasi PHP yang sederhana, cepat, dan kuat yang memungkinkan Anda untuk mengembangkan aplikasi yang lebih modern dengan menggunakan pola MVC (Model - View - Controller).
htaccess.txt ke .htaccess (penting)System/Config.php dan edit database, cache, dan pengaturan sistem Anda.Lihat di bawah untuk detail lebih lanjut.
root
├── App
│ ├── Controllers
│ │ ├── Error.php
│ │ └── Home.php
│ ├── Models
│ │ ├── Error.php
│ │ └── Home.php
│ └── Views
│ ├── Error.php
│ └── Home.php
├── Core
│ ├── App.php
│ ├── Controller.php
│ ├── Model.php
│ └── View.php
├── Public
│ ├── cache
│ ├── css
│ ├── img
│ └── js
├── System
│ ├── Config.php
│ ├── SunCache.php
│ ├── SunDB.php
│ └── SunSitemap.php
├── .htaccess
├── index.php
└── init.php
App/Controller : Buat pengontrol khusus Anda di folder ini.
App/Models : Buat model khusus Anda di folder ini.
App/Views : Buat tampilan khusus Anda di folder ini.
Core : Folder ini berisi aplikasi utama, model, tampilan, dan file pengontrol. Semua model kustom, tampilan, dan file controller mewarisi dari ini. Jangan membuat perubahan pada file -file ini jika tidak perlu benar -benar.
Public : Unggah semua file khusus Anda (CSS, JS, IMG, Bootstrap, dll.) Ke dalam folder ini. Tampilan khusus Anda akan menggunakan file -file ini.
System : Folder ini berisi kelas sistem dan file konfigurasi. Buat perubahan Anda hanya di file konfigurasi.
Buka file System/Config.php dan buat perubahan Anda.
Pengaturan Basis Data:
define ( ' DB_HOST ' , ' localhost ' ); // database host
define ( ' DB_PORT ' , ' 3306 ' ); // database port
define ( ' DB_DBNAME ' , '' ); // database name
define ( ' DB_USERNAME ' , '' ); // database username
define ( ' DB_PASSWORD ' , '' ); // database passwordPengaturan cache:
$ cacheConfig = [
' cacheDir ' => ' /../Public/cache ' , // cache folder path
' fileExtension ' => ' html ' , // cache file extension
' storageTime ' => 24 * 60 * 60 , // storage time (seconds)
' contentMinify ' => true , // content minification
' showTime ' => true , // show page load time
' sefUrl ' => true // website sef url status
];Pengaturan Sistem:
define ( ' SYS_PHPERR ' , true ); // php errors (show or hide, true / false)
define ( ' SYS_SYSERR ' , false ); // system errors (shor or hide, true / false)
define ( ' SYS_PGCACHE ' , false ); // page caching (true / false)
define ( ' SYS_CHEXCLUDE ' , []); // excluded pages for page caching (array)
define ( ' SYS_HOMEPAGE ' , ' home ' ); // home page (index, home, main, etc.)
define ( ' SYS_ERRPAGE ' , ' error ' ); // error page (if requested page does not exist, redirect to this page)URL Contoh:
https://www.web_address.com/[controller_name]/[method_name]/[parameters]
Hubungi halaman (pengontrol):
https://www.sunhillint.com/user
Alamat ini akan menghubungi pengontrol User .
Hubungi halaman (pengontrol) dengan tindakan (metode):
https://www.sunhillint.com/user/list
Alamat ini akan menghubungi pengontrol User dan menjalankan metode list .
Hubungi halaman (pengontrol) dengan tindakan (metode) dan parameter:
https://www.sunhillint.com/user/update/3
Alamat ini akan menghubungi pengontrol User dan menjalankan metode update dengan 3 parameter.
Pengontrol menanggapi tindakan pengguna (mengirimkan formulir, mengklik tautan, dll.). Pengontrol adalah kelas yang memperluas kelas Core Controller.
Pengontrol disimpan di folder App/Controllers . Pengontrol rumah sampel dan kesalahan disertakan. Kelas pengontrol harus berada di namespace App/Controllers . Anda dapat menambahkan subdirektori untuk mengatur pengontrol Anda, jadi saat menambahkan rute untuk pengontrol ini, Anda perlu menentukan namespace.
Contoh Konten File Pengontrol (Tanpa Akses Database, Halaman Statis):
public function show () {
require_once ( $ this -> view ); // include view file (with $result content)
}Contoh Konten File Pengontrol (dengan Akses Database, Halaman Dinamis):
public function show () {
if (! empty ( $ this -> model )) { // if this page needs database
$ result = ( $ this -> model )-> show (); // call model class' show method
}
require_once ( $ this -> view ); // include view file (with $result content)
}Kelas pengontrol berisi metode yang merupakan tindakan. Untuk membuat tindakan, tambahkan nama metode di pengontrol dan gunakan ini ke dalam URL (parameter rute).
URL Contoh:
https://www.web_address.com/[controller_name]
Semua halaman harus memiliki file controller dan show metode harus ada di dalamnya.
Tampilan digunakan untuk menampilkan informasi. Lihat file masuk ke folder App/Views . Tidak ada akses database atau hal seperti itu yang terjadi dalam file tampilan.
Tampilan Perluas kelas CoreView dan jika View (halaman) Anda membutuhkan akses basis data, nilai -nilai Anda akan diteruskan dari file pengontrol.
Contoh tampilan file konten untuk beberapa catatan (di dalam tag HTML):
foreach ( $ result as $ row ) {
echo " ... " ;
}atau (untuk satu catatan):
echo $ result [ 0 ][ ' content ' ];Semua halaman harus memiliki file tampilan.
Model digunakan untuk mendapatkan dan menyimpan data di aplikasi Anda. Mereka tidak tahu apa -apa tentang bagaimana data ini akan disajikan dalam pandangan. Model memperluas kelas CoreModel dan menggunakan PDO untuk mengakses database (termasuk kelas SundB). Mereka disimpan di folder App/Models .
Semua halaman harus memiliki file model (bahkan jika itu kosong) dan show metode harus ada di dalamnya.
Menggunakan kelas SundB PDO melalui model utama:
$ result = $ this -> query ( ' SELECT * FROM table_name ' ); // send query to the main model
return $ result ; // return the result to the controllerMenggunakan kelas SundB PDO secara langsung:
$ result = ( $ this -> pdo )-> select ( ' table_name ' )
-> run (); // select all records from the table
return $ result ; // return the result to the controllerSilakan lihat kelas SundB PDO untuk penggunaan terperinci.
Kerangka kerja mencakup sistem caching halaman khusus (kelas Suncache).
Sistem caching dapat diaktifkan/dinonaktifkan dalam file System/Config.php :
define ( ' SYS_PGCACHE ' , true ); // page caching (true / false) Halaman yang dikecualikan dapat didefinisikan dalam file System/Config.php :
define ( ' SYS_CHEXCLUDE ' , [ ' home ' , ' error ' ]); // excluded pages for page caching (array) Pengaturan cache dapat diubah di file System/Config.php :
$ cacheConfig = [
' cacheDir ' => ' /../Public/cache ' , // cache folder path
' fileExtension ' => ' html ' , // cache file extension
' storageTime ' => 24 * 60 * 60 , // storage time (seconds)
' contentMinify ' => true , // content minification
' showTime ' => true , // show page load time
' sefUrl ' => true // website sef url status
];Silakan lihat kelas Suncache untuk penggunaan terperinci.