Ini adalah kerangka kerja untuk pengembangan tim kecil dan menengah
Blog Pribadi Sederhana Bybzmt/Blog.php
Blog Pribadi Bybzmt/Blog.php Berdasarkan Kerangka Ini memiliki kinerja yang sangat kuat
| model | File statis | Beranda (2 blog) | Beranda (10 blog) |
|---|---|---|---|
| FPM | 4705 | 1507 | 1237 |
| Swoole | 26607 | 3276 | 2084 |
├── assets 资源目录(如:字体文件等)
├── config
│ ├── dev 开发环境配置
│ ├── product 生产环境配置
├── index.php 项目入口
├── library 其它与composer不兼容的库
├── src
│ ├── Admin 管理后台
│ ├── Api app接口端
│ ├── Backend 内部(内网)接口
│ ├── Common 公共代码目录
│ ├── Console 控制台
│ ├── Wap 手机Web端
│ └── Web Web端
├── static
│ ├── admin 后台静态文件
│ └── web Web端静态文件
├── tests 单元测试目录
├── var 可读写目录(如:模板缓存等)
└── vendor composer库
Karena Swoole adalah mode memori penduduk, siklus hidup variabel global adalah level aplikasi, dan tidak seperti mode FPM, itu hanya tingkat permintaan. Variabel global dapat dipertahankan antara permintaan yang berbeda, sehingga metode asli seperti $ _get dan $ _post tidak dapat digunakan. Kerangka kerja ini membuat objek konteks untuk setiap permintaan dan menyimpan semua data yang terkait dengan permintaan saat ini ke objek konteks.
Objek konteks juga bertanggung jawab untuk memuat dan mengganti fungsi komponen pada hierarki.
Seperti di blog di atas:
Saat menginisialisasi komponen, objek konteks pertama -tama akan mencari komponen yang sesuai dalam namespace -nya. Jika tidak ditemukan, konteks induk akan diinisialisasi. Dengan cara ini, dapat dengan mudah memperluas dan mengganti komponen yang Anda butuhkan.
API:
Objek permintaan adalah swoole_http_request yang digunakan secara langsung
Objek respons juga menggunakan swoole_http_response secara langsung
Dalam mode FPM, kerangka kerja mengimplementasikan lapisan kompatibilitas untuk mempertahankan API yang sama seperti di swoole
Kerangka kerja mengimplementasikan semua objek yang terkait dengan objek konteks sebagai komponen, terutama untuk memberikan fungsi instantiasi yang cepat, dan tidak memerlukan transmisi berulang objek konteks.
Selain itu, komponen juga memiliki beberapa metode yang mudah digunakan dalam komponen apa pun.
Railing tidak mengadopsi pemetaan terbuka, tetapi menggunakan perutean terdaftar, dengan keuntungan relatif bersih.
Proyek routing terletak di Bybzmt/router.php
Jika Anda tidak menyukainya, Anda dapat menggantinya dengan perpustakaan yang Anda sukai, dan sangat mudah untuk mengganti komponen kerangka kerja.
Kerangka kerja merekomendasikan penggunaan pola model domain, menggunakan: layanan, tabel, struktur baris (domain)
Perlu dicatat bahwa pekerjaan tampilan data tidak boleh ditulis ke dalam layanan, tabel, dan baris. Ini hanya bertanggung jawab untuk menyediakan data paling dasar. Mengorganisir struktur data yang sesuai sesuai dengan persyaratan halaman dan API harus diimplementasikan dalam pengontrol dan tampilan.
Basis data dibagi menjadi kelas tabel yang menyediakan fungsi dasar dan kelas TabelPlit yang menyediakan fungsi tabel. Ada juga sifat tablerowcache yang menyediakan fungsi caching. Tabel pengguna apa pun harus diwarisi dari tabel atau kelas TabelPlit, dan ketika cache diperlukan, itu dapat diperkenalkan.
Perhatikan bahwa baik tabel dan cache hanya mendukung operasi GET/GET/INSERT/UPDATE/Hapus di kelas Tabel. Saat menggunakan SQL untuk secara langsung melakukan operasi data, Anda perlu mempertahankan cache yang relevan secara manual atau fungsi tabel.
Kerangka kerja menyediakan metode pemuatan Lazyrow. Saat instantiating, ia hanya merekam ID dan kemudian mencoba memuat dalam batch sampai atribut diakses.
Kerangka kerja menyediakan beberapa fungsi umum dan nyaman untuk digunakan
Cache ini tidak ada hubungannya dengan cache pada tabel di atas, itu mengacu pada cache yang dikelola oleh pengguna. Cobalah untuk membiarkan berbagai jenis cache dikelola dengan kelas yang berbeda untuk menghindari konflik utama.
Kerangka kerja tidak menyediakan fungsi templat, dan disarankan untuk secara langsung membuat program template pihak ketiga yang ada. (Misalnya: ranting)
Fungsi kerangka kerja tidak ingin beradaptasi dengan semua lingkungan, mereka hanya perlu tersedia dalam 80% kasus. Keadaan khusus dapat ditangani secara khusus dalam proyek tertentu.
Tidak ada banyak kode dalam kerangka kerja, jadi cobalah untuk membaca semua kode sebanyak mungkin.