Sederhana adalah proyek yang menyatukan satu set paket untuk bekerja dengan PHP dengan cepat dan minimal. Lebih sedikit lagi!
Untuk mulai menggunakan yang sederhana, Anda dapat menggunakan perintah:
$ composer create-project phpzm/simplesAtau buat salinan Repositori White Master
$ git clone https://github.com/phpzm/simples.git < dir >
$ cd < dir >
$ rm .git
$ composer installSekarang Anda telah mengunduh arsitektur dasar, dan Anda perlu mengatur beberapa detail untuk digunakan menggunakan fitur dasar yang bahagia untuk situs web atau sistem PHP.
Dua pengaturan yang tersedia sebagai basis yang akan kami sebutkan di bawah ini diarahkan ke URL yang sama: http://localhost:8080 sebelum memulai salah satu mode server, buat salinan file contoh .env yang tersedia dengan proyek tersebut
$ composer run env:initMembuat salinan file contoh yang tersedia bersama dengan proyek
$ composer run docker:initSelanjutnya Anda dapat menggunakan perintah yang digunakan untuk menjalankan wadah atau menggunakan
$ composer run docker:serve --timeout=0Untuk menggunakan server pengembangan yang dilengkapi dengan PHP, gunakan perintah di bawah ini
$ composer run php:serve --timeout=0 Semuanya berjalan dengan baik, saat mengakses URL http://localhost:8080 Anda sudah akan melihat halaman presentasi default kami
Oke, URL yang seharusnya berhasil tidak apa -apa, tapi mari kita buat gambaran tentang apa yang terjadi baginya untuk lari.
Di folder ini Anda akan menemukan satu -satunya titik masuk untuk permintaan yang akan dimiliki aplikasi Anda. Saat membuka file index.php yang ada di dalamnya kami menemukan interaksi pertama dengan file sederhana. Selain file PHP, ada juga file yang biasanya kami sebut assets . Mereka adalah gambar, file gaya, dan fitur yang digunakan untuk meningkatkan visualisasi sumber daya aplikasi. Folder ini akan digunakan untuk meninggalkan dokumen terbuka yang dapat diakses oleh siapa saja.
Direktori ini berisi daftar file PHP yang digunakan untuk mengonfigurasi perilaku aplikasi. Saat melihat file -file ini, Anda akan melihat bahwa ada fungsi yang disebut env digunakan untuk mendefinisikan beberapa properti. Fungsi ini memulihkan nilai -nilai yang didefinisikan dalam .env .
Akhirnya kami tiba di mana pesta itu terjadi. Simples dilengkapi dengan pengaturan yang tepat untuk menggunakan direktori ini untuk berkonsultasi dengan dokumen yang akan Anda buat. Seperti yang dapat Anda lakukan, kami membagi semuanya menjadi beberapa bagian.
Ini menampung dokumen yang terkait dengan komposisi sumber daya secara tidak langsung. Awalnya dikonfigurasi dengan 3 direktori (email, lokal, tampilan), tetapi Anda dapat menumbuhkannya dengan nyaman. Anda dapat melihat di file config/app.php instruksi konfigurasi yang mirip dengan yang di bawah ini. Berdasarkan contoh, kita dapat menggunakan helper config('app.resources.root') bahwa nilai app/resources akan dikembalikan dan ini adalah seberapa sederhana menempatkan fitur yang digunakannya.
[config/app.php]
<?php
( . . . )
' resources ' => [
' root ' => ' app/resources ' ,
]
(...) Kami akan melihat lebih banyak tentang bagian views ini dan penggunaan bagian template.
Ini adalah jalur yang disarankan untuk menggunakan rute. Ini dijelaskan dalam config/route.php di mana Anda dapat memasukkan array file yang akan diinisialisasi untuk menyusun rute aplikasi.
[config/route.php]
<?php
( . . . )
' files ' => [
' app/routes/index.php '
]
(...) Oleh karena itu, ketika permintaan HTTP dikirim ke public/index.php akan mulai mencari rute di file app/routes/index.php . Kemudian, di bagian pembuatan rute, kita akan melihat cara membuat rute dengan cara yang terorganisir menggunakan yang sederhana.
Folder ini secara langsung terkait dengan autoloader Composer melalui konfigurasi di composer.json
[composer.json]
(...)
"autoload": {
"psr-4": {
"App\": "app/src/"
}
}
(...)
Artinya, namepace standar yang akan Anda gunakan adalah App dan file harus berada di dalam folder yang dijelaskan di atas. Jelas Anda dapat memodifikasi ini. Perhatikan bahwa menggunakan konvensi PSR-4 saat Anda membuat dokumen dengan namespace yang tepat Anda dapat menggunakannya secara transparan. Kami akan membahas lebih detail tentang ini di bagian komposisi struktural.
Sebagai cara untuk menunjukkan jalur awal, kami menyarankan folder ini yang disebut storage pada akar proyek untuk memelihara dokumen yang tidak dapat terbuka untuk akses publik.
Folder vendor secara otomatis dibuat oleh Composer . Ini memiliki ketergantungan yang akan digunakan proyek Anda dan pengaturan pemuatan file. Itu secara default dikonfigurasi dalam file .gitignore yang akan diabaikan oleh Git
Konfigurasi yang rute pertama (atau rute pertama) akan dipanggil adalah default dalam app/config/route.php .
Pengaturan akses sumber daya aplikasi dapat dilakukan di file rute. Perintah dapat ditulis langsung pada file file (di mana variabel $ router akan tersedia untuk alasan lingkup) atau menggunakan pengembalian penutupan yang menerima $ router sebagai parameter.
Rute sederhana
return function ( $ router ) {
$ router -> on ( ' GET ' , ' / ' , function () {
return ' Hello World! ' ;
});
}Rute dinamis
return function ( $ router ) {
$ router -> get ( ' /:controller/:method ' , function ( $ controller , $ method ) {
return ' Hello World! ' ;
});
}Grup Rota
return function ( $ router ) {
// lista com arquivos de rota
$ router -> group ( ' GET ' , ' /site ' , [ ' more/files/routes.php ' , ' more/files/site.php ' ]);
// pasta que contém arquivos de rotas
$ router -> group ( ' * ' , ' /api ' , ' api/routes ' );
}Rute dengan interaksi dengan pengontrol
return function ( $ router ) {
$ router -> post ( ' /client/save ' , ' NamespaceClientController@save ' );
$ router -> resource ( ' client ' , ' NamespaceClientController ' );
} A $router->resource akan membuat:
| Kata kerja | Jalur | Tindakan | Nama rute |
|---|---|---|---|
| Mendapatkan | /route | indeks | Route.index |
| Mendapatkan | /route/create | Membuat | Route.create |
| Mendapatkan | /route/{id} | menunjukkan | Route.Show |
| Mendapatkan | /route/{id}/edit | edit | Rute.Edit |
| Pos | /route | Stere | Rute.store |
| Put/patch | /route/{id} | memperbarui | Route.update |
| Menghapus | /route/{id} | menghancurkan | Route.destroy |