Kami sangat menyarankan kerangka kerja kami untuk blog pribadi, kantor berita & pengembangan API REST.
Sama seperti kerangka PHP lainnya, kami memulai proyek ini berdasarkan arsitektur MVC dengan layanan unggulan seperti $Add->Loader , REST API , SharedLayouts , Middlewares & konsep keamanan yang telah ditentukan sebelumnya. Segala sesuatu yang lebih sederhana sesederhana menginstalnya di server Anda!
Unduh dari repositori ini:
composer create-project miladxandi/simplist
Ingat versi PHP Anda harus lebih dari 7 dan alamat permintaan lokal harus ditetapkan:
public_html/
Setelah itu, Anda harus mengatur nama pengguna & tabel database Anda! Dalam proyek lokal untuk penggunaan pertama, nilai -nilai ini harus seperti ini:
Tabel: Simplist_Simplist
Nama pengguna: Root
Kata sandi: kosong (tanpa nilai atau string kosong)
Anda dapat mengubah nilai -nilai ini dengan pergi ke model Layer dan mengubahnya dalam connection.phtml di folder Core/Configurations, atau buka alamat ini:
Core/Configurations/Connection.phtml
CATATAN: Ada file tabel SQL di folder "Resources" yang dapat dengan mudah mengimpornya ke database MySQL lokal atau online
Sampai Anda mengerjakan direktori kerja lokal, protokol HTTPS dimatikan, tetapi jika Anda ingin mengunggahnya di server Anda, protokol HTTPS dapat dinyalakan dengan membuat "secureProtocol" true di folder inti, di folder konfigurasi Anda dapat menemukan file routing, atau pergi ke alamat ini:
Core/Configurations/Routing.phtml
Anda dapat mengubah $SecureProtocol = false; hingga $SecureProtocol = true;
Ini benar -benar diinstal dan siap digunakan.
Untuk menentukan rute Anda sendiri, buka alamat ini:
Rute/pengaturan/routes.phtml
Hanya ada pengembalian array yang mengembalikan URL sebagai kunci array dan konfigurasinya sebagai nilainya. Setiap rute baru harus dibuat dengan tepat dari template ini:
'/aboutus' => [
'target'=>'Main.Home.Aboutus',
'get'=> true,
'post'=> false,
'middleware'=>'Main.Home.Aboutus'
'important'=>false
],
Izinkan saya menggambarkannya baris demi baris:
'/aboutus'
Ini adalah alamat web yang akan memproses alamat yang diminta oleh pengontrol dan menengah dan merupakan kunci dari array. Catatan: Sistem router kami tidak sensitif terhadap kasus, tetapi Anda harus mendefinisikan rute kecil.
'target'=>'Main.Home.Aboutus'
Ini berarti pengontrol target adalah "homecontroller" di folder "utama" folder pengontrol dan setelah meminta alamat ini alamat "tentangus" akan disebut seperti yang ditulisnya di akhir
'target'=>'Main.Home.Aboutus'controller. Anda juga dapat memproses padaQuerry Stringdengan mendapatkannya, dalam parameter fungsinya. Anda juga dapat membuat beberapa permintaan ke database dalam file pengontrol. NilaiQuerry Stringatau Database yang diberikan harus dimasukkan ke dalam array dengan nama$Viewbag. Anda dapat mengirimkannya ke halaman web Anda dengan kode ini:View::Process("Main.Home.Post",$Viewbag);Sekarang dapat diakses dari file "view" yang diminta di "public_html/view/...". Alih -alih menulis kode logika Anda ke pengontrol, kami mendorong Anda untuk memasukkannya ke dalam folder "logika" di folder model. Ada beberapa kontrak hebat di folder ini untuk membantu Anda mengembangkan bisnis Anda lebih baik dari sebelumnya.
Catatan: Pengontrol dan Middlewares harus dibuat dengan ekstensi Controller.phtml atau Middleware.phtml yang tepat, tetapi harus ditulis di sini tanpa ekstensi ini. Misalnya, kami memiliki "homecontroller" tetapi kami dapat mengaksesnya dengan menulis namanya tanpa kata "controller": "rumah"
'get'=> true atau 'post'=> false
Ini adalah metode permintaan server umum yang dapat kami definisikan di sini. Jika Anda ingin menolak permintaan pos apa pun, Anda hanya perlu mengubah nilai
postkefalse. Kemudian Anda dapat melihat setiap permintaan dengan metode permintaanPOSTakan menunjukkan kepada Anda kesalahan "Metode Permintaan Tidak Diizinkan".
'middleware'=>'Main.Home.Aboutus'
Ketika tidak ada konflik dengan URL yang diminta & metode permintaan yang ditentukan, sebelum meluncurkan pengontrol, kami memiliki beberapa middleware untuk melakukan beberapa validasi. Ini dapat digunakan untuk memeriksa cookie keamanan atau opsi bahasa situs web dan dll. Setiap middleware harus mengembalikan
truedalam kunci "status" untuk lulus ujian. Middlewares juga dapat memproses padaQuerry Stringdengan mendapatkannya, dalam parameter fungsinya. Sama seperti pengontrol, kita membutuhkan nama murni mereka tanpa kata "middleware".
'important'=>false
Seperti yang Anda baca sebelumnya, sistem kami tidak peka kasus secara default, tetapi kadang -kadang Anda perlu memproses pada URL sensitif kasus untuk memvalidasi beberapa token dan data sensitif atau alasan lainnya. Anda dapat mengubah aturan ini dari sistem perutean kami dengan menggunakan
'important'=>trueatau mematikannya dengan'important'=>false. Catatan: Kunci ini dalam routing array tidak diperlukan.
Untuk menentukan rute Anda sendiri, buka alamat ini:
Rute/Pengaturan/API.PHTML
Hanya ada pengembalian array yang mengembalikan URL sebagai kunci array dan konfigurasinya sebagai nilainya. Setiap rute baru harus dibuat dengan tepat dari template ini:
'/api' => [
'target' => 'Api.Home.Index',
'allowed'=> 'get',
'blocked'=> 'DELETE',
'middleware'=>'Main.Home.Index',
'important'=>false
]
Izinkan saya menggambarkannya baris demi baris:
'/api'
Ini adalah alamat web untuk menelepon API dan akan memproses layanan yang diminta oleh pengontrol dan tiddwares dan merupakan kunci dari array. Catatan: Sistem router kami tidak sensitif terhadap kasus, tetapi Anda harus mendefinisikan rute kecil.
'target' => 'Api.Home.Index'
Ini berarti pengontrol target adalah "homecontroller" di folder "API" folder pengontrol dan setelah meminta alamat "indeks" alamat ini akan disebut seperti yang ditulisnya di akhir
'target' => 'Api.Home.Index'controller. Anda juga dapat memproses padaQuerry Stringdengan mendapatkannya, dalam parameter fungsinya. Anda juga dapat membuat beberapa permintaan ke database dalam file pengontrol. Alih -alih menulis kode logika Anda ke pengontrol, kami mendorong Anda untuk memasukkannya ke dalam folder "logika" di folder model. Ada beberapa kontrak hebat di folder ini untuk membantu Anda mengembangkan bisnis Anda lebih baik dari sebelumnya.
Catatan: Pengontrol dan Middlewares harus dibuat dengan ekstensi Controller.phtml atau Middleware.phtml yang tepat, tetapi harus ditulis di sini tanpa ekstensi ini. Misalnya, kami memiliki "homecontroller" tetapi kami dapat mengaksesnya dengan menulis namanya tanpa kata "controller": "rumah"
'allowed'=> 'get' atau 'blocked'=> 'DELETE'
Jika Anda ingin membiarkan aplikasi Anda berfungsi sebagai kata kerja HTTP, Anda dapat mendefinisikannya di sini dan memisahkannya dengan koma untuk membiarkan API Anda menggunakan metode ini. Misalnya kami ingin aplikasi kami berinteraksi dengan server kami dengan
POSTdanGETmetode; Jadi kami harus mendefinisikan keduanya di sini seperti ini:
'allowed'=> 'get,post'
Kemudian kami ingin membatasi beberapa kata kerja HTTP dari permintaan ke server kami, kami perlu menulisnya di bagian
blockeddari bagian ini:
'blocked'=> 'DELETE'
Kita dapat menulis sebanyak kata kerja yang kita inginkan di bagian ini.
'middleware'=>'Main.Home.Aboutus'
Ketika tidak ada konflik dengan URL yang diminta & metode permintaan yang ditentukan, sebelum meluncurkan pengontrol, kami memiliki beberapa middleware untuk melakukan beberapa validasi. Ini dapat digunakan untuk memeriksa cookie keamanan atau opsi bahasa situs web dan dll. Setiap middleware harus mengembalikan
truedalam kunci "status" untuk lulus ujian. Middlewares juga dapat memproses padaQuerry Stringdengan mendapatkannya, dalam parameter fungsinya. Sama seperti pengontrol, kita membutuhkan nama murni mereka tanpa kata "middleware".
'important'=>false
Seperti yang Anda baca sebelumnya, sistem kami tidak peka kasus secara default, tetapi kadang -kadang Anda perlu memproses pada URL sensitif kasus untuk memvalidasi beberapa token dan data sensitif atau alasan lainnya. Anda dapat mengubah aturan ini dari sistem perutean kami dengan menggunakan
'important'=>trueatau mematikannya dengan'important'=>false. Catatan: Kunci ini dalam routing array tidak diperlukan.
Perpustakaan oLoad adalah layanan yang lebih sederhana dan ditentukan untuk membantu bagian head HTML Anda menjadi lebih bersih. Jika Anda perlu menggunakan pustaka ini, Anda harus menggunakan kode ini di file tampilan Anda pada awalnya:
<?php $Add = new CoreRequirementoLoad("../../..","Style/Main","Script/Main","Content/Main"); ?>
Dalam kode ini, Anda dapat mendefinisikan lokasi yang berbeda untuk JS, CSS, gambar, dan dll. Saat kami membiarkan Anda menyesuaikan aplikasi, ../../.. akan menunjukkan kepada Anda akar default dari konten ini, tetapi Anda dapat mengubahnya di setiap halaman yang Anda buat.
Kode ini dapat mengimpor pustaka atau gambar JS atau CSS eksternal.
Juga, dapat menambahkan jenis file unik ke proyek Anda.
Ini adalah kode lengkap untuk menunjukkan bagaimana Anda bisa menampilkan gambar di html Anda:
<?php $Add->Loader("png","eastCloud","Shared",true,false,"eastCloud",24,24,"Style","Class"); ?>
Kode ini berarti:
<?php $Add->Loader(Extension: "png",Name: "eastCloud",UniqueUrl: "Shared",Local: true,UniqueType: false,ImageAlt: "eastCloud",ImageWidth: 24,ImageHeight: 24,ImageStyle: "Style",ImageClass: "Class"); ?>
Dan akan membuat tag <img> lengkap di mana saja yang digunakan.
Anda dapat menambahkan perpustakaan JS dan CSS seperti ini; Tetapi kecuali semuanya setelah argumen Local dalam metode itu dan ekstensi mereka sendiri seperti ini:
<?php $Add->Loader("css","Style",null,true); ?>
<?php $Add->Loader("js","Script",null,true); ?>
Argumen UniqueUrl memungkinkan Anda mendefinisikan perpustakaan atau gambar internal atau eksternal. Jika tidak perlu mendefinisikan UniqueUrl , tinggalkan saja kutipan ganda kosong ( "" ) atau lulus nol sebagai argumennya. Null secara default.
Argumen Local berarti perpustakaan atau gambar adalah file lokal atau tidak, sistem akan menggunakan root default dengan argumen yang diberikan untuk menemukan file itu jika Local true .
Argumen UniqueType harus true jika ekstensi adalah segalanya kecuali JS, CSS, PNG, JPEG, JPG, dan ICO. Itu false secara default.
Ekstensi js akan membuat lengkap <script src="../../../Script/Main/main.js"></script> kode di mana pun Anda menyebutnya. Ekstensi css akan membuat lengkap <link rel="stylesheet" type="text/css" href="../../../Style/Shared/File.css"> Kode di mana pun Anda menyebutnya.
SharedLayouts adalah nama layanan yang lebih sederhana yang ada di folder bersama di folder tampilan ( public_html/View/Shared ).
Ini berisi 2 folder dan file .phtml dengan nama "tata letak" secara default. File tata letak dapat berisi satu atau lebih kelas untuk setiap bagian proyek. Misalnya ada kelas seperti ini:
class MainLayouts { public static function _Header() { include "Main/_HeaderLayout.phtml"; } public static function _Menu() { include "Main/_MenuLayout.phtml"; } public static function _Footer() { include "Main/_FooterLayout.phtml"; } }
Ini termasuk beberapa metode untuk memuat beberapa file tampilan lainnya sebagai header, menu dan footer. Tidak ada konsep yang kompleks.
Kami meletakkan beberapa file Mark Down dengan ekstensi ".md" sebagai file panduan terperinci kami. Kami sangat menyarankan Anda untuk mengunduh dan menginstal penampil Mark Down untuk brower Anda untuk melihat file ini dengan pengalaman yang lebih baik.