SpeedPHP 3 telah berubah dari hanya mendukung MySQL/Smarty menjadi mendukung beberapa tipe database serta beberapa mesin template dan mesin cache data.
SpeedPHP 3 memperkuat dan meningkatkan sebagian besar fungsi dan arsitektur asli, mencapai keseimbangan antara cepat, ringan, dan mudah diperluas.
SpeedPHP 3 telah memperbaiki semua bug dan kesalahan sejak SpeedPHP2, dan stabilitasnya telah mencapai tingkat yang baru.
Melakukan upgrade dari SpeedPHP versi 2 ke SpeedPHP versi 3 sangatlah sederhana dan hanya memerlukan langkah-langkah berikut:
Unduh file SpeedPHP 3.
Hapus file SpeedPHP 2 asli dan ganti dengan file SpeedPHP 3.
Untuk aplikasi SpeedPHP 2 asli, Anda perlu menambahkan fungsi spRun(); di bagian bawah file entri untuk memulai aplikasi.
File HTML statis yang dihasilkan oleh spHtml asli harus dihapus dan folder sementara (biasanya direktori tmp) harus dihapus dan dibuat ulang.
Kotak masukan kata sandi terenkripsi di spAcl asli telah menjadi ekstensi independen di SpeedPHP 3. Silakan buka bagian ekstensi forum SpeedPHP untuk mengunduh ekstensi md5password baru (kotak masukan kata sandi terenkripsi asli) untuk dipasang dan digunakan.
Cara menggunakan SpeedPHP 3:
Penggunaan SpeedPHP 3 pada dasarnya sama dengan SpeedPHP edisi kedua, sehingga manual SpeedPHP edisi kedua juga dapat digunakan pada SpeedPHP 3.
Berbagai petunjuk konfigurasi basis data Petunjuk pengaturan mesin templat Petunjuk konfigurasi cache Mesin templat cepat digunakan dengan mudah Memperkenalkan fitur-fitur baru:
1. Mendukung berbagai jenis database: MySQLi, Sqlite, Oracle, MsSQL, PDO, dll.
2. Tambahkan komputasi awan SAE versi cabang SAE dan versi cabang GBK (khusus untuk platform komputasi awan Sina).
3. Mendukung beberapa mesin template: Smarty, Template Lite, speedy, dll.
4. Mendukung beberapa mekanisme caching: Memcache, Xcache, APC, eAccelerator, dll.
5. Memperbaiki struktur driver database dan mesin templat, meningkatkan struktur logis pengontrol dan kelas tampilan, membuatnya lebih masuk akal dan lebih menghemat sumber daya.
6. Banyak fungsi asli telah diperkuat, fungsi statis generasi spHTML telah ditingkatkan, dan mode URL statis telah ditingkatkan.
7. Tambahkan spRun, spDB, replace,affectRows, runSql, escape,
8. Banyak bug sejak rilis SpeedPHP versi kedua telah diperbaiki, dan stabilitasnya telah ditingkatkan secara signifikan.
9. Untuk menjaga konsistensi konfigurasi aplikasi, anggota SP2 hanya perlu menambahkan spRun ke file entri.
10. Tetap sederhana, mudah dipelajari, dan ringan.
UbahLog
Ekstensi UrlRewrite telah diperbarui, pengontrol/pemetaan tindakan telah ditambahkan, penyembunyian utama/indeks telah dihapus, dan penyembunyian parameter dapat diatur.
Menambahkan fungsi anggota escape untuk menggantikan __val_escape untuk pemfilteran string dan memperbaiki mode nilai templat. Jika nilainya salah, maka tidak akan dikirim ke templat. Ini dapat beradaptasi dengan kekurangan bahwa loop smarty tidak dapat menentukan apakah suatu nilai ada.
Memodifikasi logika pemrosesan fungsi ganti anggota spModel untuk menghindari penambahan catatan baru secara tidak sengaja ketika tidak ada perubahan data.
Optimalkan mode keluaran halaman otomatis, keluaran otomatis sekarang dioperasikan oleh spController.
Memperbaiki masalah prompt dalam fungsi impor. Memperbaiki cara penanganan nilai null di driver. Menghapus pernyataan catatan berjalan SQL yang berlebihan dari beberapa database. Memperbaiki driver Oracle dan MsSQL. Memperbaiki kesalahan pada driver sqlite. Memperbaiki kesalahan pada driver mysqli. Memperbaiki kesalahan yang menyebabkan driver pdo tidak dapat memperoleh data.
Fungsi __val_escape dari spModel dimodifikasi untuk menilai null, angka, dll. spCache didefinisikan sebagai kelas afiliasi spModel sekali pakai. Mirip dengan spVerifier, ia tidak dapat dipanggil berulang kali. Hapus parameter spLinker yang tidak valid. Perbaiki masalah pada fungsi getTable pada driver mssql kode objek tampilan yang dipakai di konstruktor spController. Dipindahkan ke spRun.
Memperbaiki pemrosesan logis konfigurasi 'url_path_base' dan memperbaiki masalah pemrosesan nama tabel dalam batas di driver mssql.
Kerangka kerja SpeedPHP bergabung dengan versi lingkungan komputasi awan SAE
Framework SpeedPHP telah menambahkan cabang versi GBK dan merevisi informasi hak cipta dalam file kode framework SpeedPHP.
spModel menambahkan metode penggantian untuk memperbarui catatan yang memenuhi ketentuan. Jika catatan tidak ada, catatan baru akan ditambahkan.
Memperbaiki logika pembersihan data pager spPager. Memperbaiki logika fungsi spArgs akan menentukan apakah variabel ada dan apakah panjang nilai variabel lebih besar dari 0.
spError akan mencatat informasi kesalahan menggunakan error_log di lingkungan Rilis.
Melindungi prompt kesalahan inisialisasi session_start. Logika pembuatan spHtml yang dioptimalkan. Metode dan logika prompt spHtml yang disesuaikan. Memperbaiki cara mendaftarkan fungsi tampilan. Ini dapat mendukung objek, nama kelas dan nama fungsi sebagai pegangan terdaftar. Menyesuaikan metode prompt dan logika spHtml untuk menghapus pengaturan url_getter dan url_setter yang tidak berguna di html, dan langsung menggunakan fungsi anggota spHtml.
Memperbaiki nilai pengembalian __val_escape menjadi nol.
spModel menambahkan metode runSql. runSql akan menggantikan kueri untuk mengeksekusi pernyataan SQL. Metode kueri dipertahankan untuk kompatibilitas ke depan, tetapi disarankan untuk menggunakan metode runSql dengan arti yang lebih jelas.
spModel menambahkan metodeaffectRows() untuk mendapatkan jumlah rekaman yang terpengaruh oleh pembaruan, pembuatan, dan operasi lainnya.
Fungsi spRun ditambahkan untuk memisahkan proses inti speedphp dan dua langkah eksekusi kode pengguna, sehingga beberapa kode operasi yang memerlukan pustaka kelas tetapi sebelum kode pengguna dieksekusi dapat ditambahkan. Pada saat yang sama, ketika memutakhirkan ke versi kerangka kerja ini, Anda perlu melakukan modifikasi pada file entri: di file entri (biasanya index.php): require(SP_PATH."/SpeedPHP.php"); baris, tambahkan panggilan fungsi spRun( );
Variabel berbasis database conn dimodifikasi menjadi publik
Tingkatkan metode fielding spHtml untuk parameter, gunakan json_encode untuk menggantikan serialisasi yang kurang efisien dan diketik secara ketat, sehingga parameter halaman yang dihasilkan bisa lebih bebas dan efisien. Namun, pada saat yang sama, dalam kode yang ada ditingkatkan ke modifikasi ini, itu akan diperlukan Regenerasi file HTML statis.
Jika konfigurasi default url_path_base kosong, file entrinya adalah /index.php
Memperbaiki kesalahan ketik di kelas spAccessCache. Menambahkan konfigurasi sp_notice_php. Pengembang dapat menyesuaikan program prompt kesalahan. Memodifikasi pesan prompt bahwa metode spContrller tidak dapat ditemukan. Melindungi pesan PEMBERITAHUAN yang dihasilkan ketika array konfigurasi spConfigReady ditimpa masalah nama objek yang didaftarkan oleh fungsi templat dan menghapusnya. Fitur eksperimental "Kotak masukan kata sandi terenkripsi"
Kelas spAccessCache mendukung perluasan fungsi spAccess dengan lebih banyak metode caching dalam bentuk yang diperluas. Saat ini, jenis driver cache yang didukung oleh spAccessCache adalah sebagai berikut: Hal ini memungkinkan pengembang untuk memiliki solusi mesin templat yang cepat dan sederhana selain mesin templat seperti Smarty.
Menambahkan kelas driver basis data db_pdo, db_pdo_mysql, db_pdo_sqlite untuk mendukung antarmuka basis data PDO. Saat ini, tautan PDO mysql dan sqlite didukung dan ditambahkan ke kelas driver basis data db_sae. Basis data SAE MySQL didukung untuk ditambahkan ke kelas driver basis data db_Oracle Oracle tipe database didukung untuk ditambahkan ke kelas driver database db_sqlite, mendukung tipe database Sqlite untuk bergabung dengan kelas driver database db_mssql, mendukung tipe database MSSQL untuk bergabung dengan kelas db_mysqli, mendukung tipe driver database MySQLi, mengubah database mysql nama driver ke db_mysql, tambahkan metode pemformatan batas, ubah metode instantiasi di konstruktor db_mysql, dan tambahkan dukungan untuk mysql Mode tautan panjang database ditambahkan ke file perpustakaan kelas TemplateLite. Kedua variabel $tbl_name dan $_db diubah publik. Konstruktor spModel ditulis ulang untuk mendukung driver beberapa tipe database. Setelah data paging diperoleh, maka akan dihapus, di sini tidak akan menimbulkan kebingungan pada data paging berikutnya. Memodifikasi cara pernyataan SQL mengimplementasikan logika batas untuk mengatasi masalah bahwa beberapa tipe database tidak dapat mendukung sintaks batas.
Sehubungan dengan spController, instance mesin templat diubah. Memperbaiki cara menetapkan nilai ke driver mesin templat untuk melakukan pemrosesan fungsi yang berafiliasi dengan templat dengan toleransi kesalahan untuk mendukung mesin templat yang tidak dapat mendaftarkan fungsi templat. Tingkatkan metode pembacaan jaringan spHtml untuk menghindari masalah tidak dapat membaca file tetapi menghasilkan halaman HTML kosong. Tambahkan rangkaian metode pembacaan jaringan CURL untuk digunakan ketika file_get_contents tidak dapat membaca data jaringan. Tingkatkan prompt file_get_contents dan deteksi apakah lingkungan PHP melarang pembacaan jaringan ketika pembacaan jaringan gagal. Membatasi spHtml untuk hanya menghasilkan file HTML dalam cakupan APP_PATH. Memperbaiki masalah logika dalam fungsi pembacaan dan pembuatan url spHtml.
Variabel mesin templat spController telah didefinisikan ulang untuk mendukung beberapa mesin templat. Memperbaiki masalah pembacaan fungsi __get. Memperbaiki masalah ketika spArgs mendapatkan nilai, defaultnya tidak boleh 0.
Mengubah nilai default konfigurasi db_driver_path dan menambahkan fungsi spDB. spDB dapat mencapai pintasan hanya dengan menggunakan subkelas spModel, dan langsung beroperasi pada tabel (dimiliki oleh spModel) tanpa definisi subkelas spModel. Hapus ampersand spConfigReady, perbaiki masalah jalur keluaran templat otomatis, ubah lokasi driver mysql, transfer direktori Smarty dan transfer driver mysql, hapus file spDB, dan fungsi spDB akan ditempatkan di spFunctions sebagai fungsi inti di masa depan.
Tambahkan direktori Drivers dan tempatkan kelas driver program inti. Ketika tampilan ditutup, Anda masih dapat menggunakan $this->variables dan $this->display untuk penetapan template. Namun, sintaks templatnya harus berupa sintaks PHP biasa.
Memperluas