SpeedPHP 3 ได้เปลี่ยนจากการรองรับ MySQL/Smarty เพียงอย่างเดียวเป็นการรองรับฐานข้อมูลหลายประเภท รวมถึงกลไกเทมเพลตหลายแบบและกลไกแคชข้อมูล
SpeedPHP 3 เสริมความแข็งแกร่งและปรับปรุงฟังก์ชันและสถาปัตยกรรมดั้งเดิมส่วนใหญ่ โดยทำให้เกิดความสมดุลระหว่างความรวดเร็ว ความเบา และการขยายที่ง่ายดาย
SpeedPHP 3 ได้แก้ไขข้อบกพร่องและข้อผิดพลาดทั้งหมดตั้งแต่ SpeedPHP2 และความเสถียรของมันก็มาถึงระดับใหม่แล้ว
การอัพเกรดจาก SpeedPHP เวอร์ชัน 2 เป็น SpeedPHP เวอร์ชัน 3 นั้นง่ายมาก และต้องการเพียงขั้นตอนต่อไปนี้:
ดาวน์โหลดไฟล์ SpeedPHP3
ลบไฟล์ SpeedPHP 2 ดั้งเดิมออกและแทนที่ด้วยไฟล์ SpeedPHP 3
สำหรับแอปพลิเคชัน SpeedPHP 2 ดั้งเดิม คุณต้องเพิ่มฟังก์ชัน spRun(); ที่ด้านล่างของไฟล์รายการเพื่อเริ่มแอปพลิเคชัน
ไฟล์ HTML แบบคงที่ที่สร้างโดย spHtml ดั้งเดิมจะต้องถูกลบ และจะต้องลบและสร้างโฟลเดอร์ชั่วคราว (โดยปกติคือไดเร็กทอรี tmp)
กล่องป้อนรหัสผ่านที่เข้ารหัสใน spAcl ดั้งเดิมได้กลายเป็นส่วนขยายอิสระใน SpeedPHP 3 โปรดไปที่ส่วนส่วนขยายฟอรัม SpeedPHP เพื่อดาวน์โหลดส่วนขยาย md5password ใหม่ (กล่องป้อนรหัสผ่านที่เข้ารหัสดั้งเดิม) เพื่อติดตั้งและใช้งาน
วิธีใช้ SpeedPHP 3:
โดยพื้นฐานแล้วการใช้ SpeedPHP 3 นั้นเหมือนกับ SpeedPHP รุ่นที่สอง ดังนั้นคู่มือ SpeedPHP รุ่นที่สองจึงสามารถใช้กับ SpeedPHP 3 ได้เช่นกัน
คำแนะนำการกำหนดค่าฐานข้อมูลต่างๆ คำแนะนำการตั้งค่ากลไกแม่แบบ คำแนะนำการกำหนดค่าแคช กลไกแม่แบบที่รวดเร็ว ใช้งานง่าย แนะนำคุณสมบัติใหม่:
1. รองรับฐานข้อมูลหลายประเภท: MySQLi, Sqlite, Oracle, MsSQL, PDO ฯลฯ
2. เพิ่ม SAE คลาวด์คอมพิวติ้ง เวอร์ชันสาขา SAE และเวอร์ชันสาขา GBK (เฉพาะสำหรับแพลตฟอร์มการประมวลผลคลาวด์ Sina)
3. รองรับเอนจิ้นเทมเพลตหลายตัว: Smarty, Template Lite, รวดเร็ว ฯลฯ
4. รองรับกลไกการแคชที่หลากหลาย: Memcache, Xcache, APC, eAccelerator เป็นต้น
5. ปรับปรุงฐานข้อมูลและโครงสร้างไดรเวอร์กลไกเทมเพลต ปรับปรุงโครงสร้างลอจิคัลของคอนโทรลเลอร์และคลาสดู ทำให้สมเหตุสมผลยิ่งขึ้น และประหยัดทรัพยากรเพิ่มเติม
6. ฟังก์ชั่นดั้งเดิมจำนวนมากได้รับการปรับปรุงให้ดีขึ้น ฟังก์ชั่นคงที่ในการสร้าง spHTML ได้รับการปรับปรุง และโหมด URL แบบคงที่ได้รับการปรับปรุง
7. เพิ่ม spRun, spDB, แทนที่, ได้รับผลกระทบRows, runSql, หนี,
8. ข้อบกพร่องมากมายนับตั้งแต่เปิดตัว SpeedPHP เวอร์ชันที่สองได้รับการแก้ไขแล้ว และความเสถียรได้รับการปรับปรุงอย่างมาก
9. เพื่อรักษาการกำหนดค่าแอปพลิเคชันให้สอดคล้องกัน สมาชิก SP2 จะต้องเพิ่ม spRun ลงในไฟล์รายการเท่านั้น
10. ทำให้มันเรียบง่าย เรียนรู้ได้ง่าย และมีน้ำหนักเบา
บันทึกการเปลี่ยนแปลง
ส่วนขยาย UrlRewrite ได้รับการอัปเดต เพิ่มการแมปตัวควบคุม/การดำเนินการ การซ่อนหลัก/ดัชนีถูกลบออก และสามารถตั้งค่าการซ่อนพารามิเตอร์ได้
เพิ่มฟังก์ชัน Escape Member เพื่อแทนที่ __val_escape สำหรับการกรองสตริงและแก้ไขโหมดค่าเทมเพลต หากค่าเป็นเท็จ ค่าดังกล่าวจะไม่ถูกส่งไปยังเทมเพลต สิ่งนี้สามารถปรับให้เข้ากับข้อบกพร่องที่ลูปของ smarty ไม่สามารถระบุได้ว่ามีค่าอยู่หรือไม่
แก้ไขตรรกะการประมวลผลของฟังก์ชันแทนที่สมาชิกของ spModel เพื่อหลีกเลี่ยงการเพิ่มบันทึกใหม่โดยไม่ได้ตั้งใจเมื่อไม่มีการเปลี่ยนแปลงข้อมูล
ปรับโหมดเอาต์พุตหน้าอัตโนมัติให้เหมาะสม ขณะนี้เอาต์พุตอัตโนมัติถูกควบคุมโดย spController
แก้ไขปัญหาพรอมต์ในฟังก์ชันนำเข้า แก้ไขวิธีจัดการค่า Null ในไดรเวอร์ ลบคำสั่งบันทึกการรัน SQL ที่ซ้ำซ้อนออกจากฐานข้อมูลบางส่วน แก้ไขข้อผิดพลาดในไดรเวอร์ sqlite
ฟังก์ชัน __val_escape ของ spModel ได้รับการแก้ไขเพื่อตัดสินค่าว่าง ตัวเลข ฯลฯ spCache ถูกกำหนดให้เป็นคลาสในเครือ spModel แบบใช้ครั้งเดียว ไม่สามารถเรียกได้หลายครั้ง รหัสของวัตถุมุมมองที่สร้างอินสแตนซ์ในตัวสร้าง spController ย้ายออกไปใน spRun
แก้ไขการประมวลผลเชิงตรรกะของการกำหนดค่า 'url_path_base' และแก้ไขปัญหาการประมวลผลชื่อตารางในขีดจำกัดในไดรเวอร์ mssql
เฟรมเวิร์ก SpeedPHP เป็นส่วนหนึ่งของเวอร์ชันสภาพแวดล้อมการประมวลผลบนคลาวด์ SAE
เฟรมเวิร์ก SpeedPHP ได้เพิ่มสาขาของเวอร์ชัน GBK และแก้ไขข้อมูลลิขสิทธิ์ในไฟล์โค้ดเฟรมเวิร์ก SpeedPHP
spModel เพิ่มวิธีการแทนที่เพื่ออัพเดตเรคคอร์ดที่ตรงตามเงื่อนไข หากไม่มีเรคคอร์ด จะมีการเพิ่มเรคคอร์ดใหม่
แก้ไขตรรกะของการล้างข้อมูลเพจเจอร์ของ spPager แก้ไขตรรกะของฟังก์ชัน spArgs แล้ว จะพิจารณาว่ามีตัวแปรอยู่หรือไม่ และความยาวของค่าตัวแปรมากกว่า 0 หรือไม่
spError จะบันทึกข้อมูลข้อผิดพลาดโดยใช้ error_log ในสภาพแวดล้อม Release
ป้องกันข้อผิดพลาดของการเริ่มต้น session_start ปรับให้เหมาะสมวิธีการแสดง spHtml และตรรกะ แก้ไขวิธีการลงทะเบียนฟังก์ชันมุมมอง ปรับวิธีการแจ้งและตรรกะของ spHtml เพื่อลบการตั้งค่าที่ไม่มีประโยชน์ url_getter และ url_setter ใน html และใช้ฟังก์ชันสมาชิกของ spHtml โดยตรง
แก้ไขค่าส่งคืน __val_escape ที่เป็นโมฆะ
spModel เพิ่มเมธอด runSql runSql จะแทนที่การสืบค้นเพื่อดำเนินการคำสั่ง SQL วิธีการสืบค้นจะถูกเก็บไว้เพื่อความเข้ากันได้ในการส่งต่อ แต่ขอแนะนำให้ใช้วิธี runSql ที่มีความหมายที่ชัดเจนยิ่งขึ้น
spModel เพิ่มเมธอดที่ได้รับผลกระทบRows() เพื่อรับจำนวนเรกคอร์ดที่ได้รับผลกระทบจากการอัปเดต สร้าง และการดำเนินการอื่น ๆ
ฟังก์ชั่น spRun ถูกเพิ่มเพื่อแยกกระบวนการหลัก speedphp และขั้นตอนสองขั้นตอนในการรันโค้ดผู้ใช้ เพื่อให้โค้ดการดำเนินการบางอย่างที่ต้องใช้ไลบรารีคลาส แต่ก่อนที่จะรันโค้ดผู้ใช้นั้นสามารถเพิ่มได้ ในเวลาเดียวกัน เมื่ออัปเกรดเป็นเฟรมเวิร์กเวอร์ชันนี้ คุณจะต้องทำการแก้ไขไฟล์รายการ: ในไฟล์รายการ (ปกติคือ index.php): need(SP_PATH."/SpeedPHP.php"); ด้านล่างนี้ บรรทัด เพิ่มการเรียกใช้ฟังก์ชัน spRun( );
Conn ตัวแปรที่ขับเคลื่อนด้วยฐานข้อมูลได้รับการแก้ไขเป็นสาธารณะ
ปรับปรุงวิธีการฟิลด์ของ spHtml สำหรับพารามิเตอร์ ใช้ json_encode เพื่อแทนที่ซีเรียลไลซ์ที่มีประสิทธิภาพน้อยกว่าและพิมพ์อย่างเข้มงวด เพื่อให้พารามิเตอร์ของเพจที่สร้างขึ้นสามารถว่างและมีประสิทธิภาพมากขึ้น อย่างไรก็ตาม ในเวลาเดียวกันในโค้ดที่มีอยู่ที่อัปเกรดเป็นการปรับเปลี่ยนนี้ มันจะจำเป็น สร้างไฟล์ HTML แบบคงที่ใหม่
เมื่อการกำหนดค่าเริ่มต้น url_path_base ว่างเปล่า ไฟล์รายการจะเป็น /index.php
แก้ไขข้อผิดพลาดในการพิมพ์ในคลาส spAccessCache เพิ่มการกำหนดค่า sp_notice_php นักพัฒนาสามารถปรับแต่งข้อความแจ้งข้อผิดพลาดที่ไม่พบเมธอด spContrller ปัญหาชื่อออบเจ็กต์ที่ลงทะเบียนโดยฟังก์ชันเทมเพลตและลบออกคุณสมบัติการทดลอง "กล่องป้อนรหัสผ่านที่เข้ารหัส"
คลาส spAccessCache รองรับการขยายฟังก์ชัน spAccess ด้วยวิธีแคชเพิ่มเติมในรูปแบบขยาย ในปัจจุบัน ประเภทไดรเวอร์แคชที่ spAccessCache รองรับมีดังนี้: ช่วยให้นักพัฒนามีโซลูชันเครื่องมือเทมเพลตที่รวดเร็วและง่ายดาย นอกเหนือจากกลไกเทมเพลตเช่น Smarty
เพิ่มคลาสไดรเวอร์ฐานข้อมูล db_pdo, db_pdo_mysql, db_pdo_sqlite เพื่อรองรับอินเทอร์เฟซฐานข้อมูล PDO ปัจจุบันรองรับลิงก์ PDO mysql และ sqlite ลงในคลาสไดรเวอร์ฐานข้อมูล SAE MySQL เพื่อเพิ่มคลาสไดรเวอร์ฐานข้อมูล db_oracle ประเภทฐานข้อมูลได้รับการสนับสนุนให้เพิ่มลงในคลาสไดรเวอร์ฐานข้อมูล db_sqlite รองรับประเภทฐานข้อมูล Sqlite เพื่อเข้าร่วมคลาสไดรเวอร์ฐานข้อมูล db_mssql รองรับประเภทฐานข้อมูล MSSQL เพื่อเข้าร่วมคลาส db_mysqli รองรับประเภทไดรเวอร์ฐานข้อมูล MySQLi เปลี่ยนฐานข้อมูล mysql ชื่อไดรเวอร์เป็น db_mysql เพิ่มวิธีการจัดรูปแบบแบบจำกัด แก้ไขวิธีการสร้างอินสแตนซ์ในตัวสร้าง db_mysql และเพิ่มการรองรับสำหรับ mysql โหมดลิงก์แบบยาวของฐานข้อมูลจะถูกเพิ่มลงในไฟล์ไลบรารีคลาส TemplateLite ตัวแปรสองตัว $tbl_name และ $_db จะถูกเปลี่ยนเป็น สาธารณะ ตัวสร้างของ spModel ถูกเขียนใหม่เพื่อรองรับไดรเวอร์ของฐานข้อมูลหลายประเภท หลังจากได้รับข้อมูลเพจแล้ว มันจะถูกลบออก ที่นี่ มันจะไม่ทำให้เกิดความสับสนในข้อมูลเพจถัดไป ปรับเปลี่ยนวิธีที่คำสั่ง SQL ใช้ลอจิกจำกัดเพื่อรับมือกับปัญหาที่ฐานข้อมูลบางประเภทไม่สามารถรองรับไวยากรณ์จำกัดได้
เมื่อใช้ร่วมกับ spController อินสแตนซ์กลไกเทมเพลตจะเปลี่ยนไป ปรับปรุงวิธีการกำหนดค่าให้กับไดรเวอร์กลไกแม่แบบเพื่อดำเนินการประมวลผลที่ทนต่อข้อผิดพลาดของฟังก์ชันที่เกี่ยวข้องกับเทมเพลต เพื่อรองรับกลไกเทมเพลตที่ไม่สามารถลงทะเบียนฟังก์ชันเทมเพลตได้ ปรับปรุงวิธีการอ่านเครือข่ายของ spHtml เพื่อหลีกเลี่ยงปัญหาไม่สามารถอ่านไฟล์ได้ แต่สร้างหน้า HTML เปล่า เพิ่มชุดวิธีการอ่านเครือข่าย CURL เพื่อใช้เมื่อ file_get_contents ไม่สามารถอ่านข้อมูลเครือข่ายได้ ปรับปรุงพรอมต์ของ file_get_contents และตรวจสอบว่าสภาพแวดล้อม PHP ห้ามการอ่านเครือข่ายหรือไม่เมื่อการอ่านเครือข่ายล้มเหลว จำกัด spHtml ให้สร้างเฉพาะไฟล์ HTML ภายในขอบเขตของ APP_PATH แก้ไขปัญหาตรรกะในฟังก์ชันการอ่านและสร้าง URL ของ spHtml
ตัวแปรกลไกเทมเพลตของ spController ได้รับการออกแบบใหม่เพื่อรองรับกลไกเทมเพลตหลายรายการ แก้ไขปัญหาการอ่านของฟังก์ชัน __get แก้ไขปัญหาที่เมื่อ spArgs ได้รับค่า ค่าเริ่มต้นจะไม่สามารถเป็น 0 ได้
เปลี่ยนค่าเริ่มต้นของการกำหนดค่า db_driver_path และเพิ่มฟังก์ชัน spDB สามารถใช้ทางลัดได้ง่ายๆ โดยใช้คลาสย่อย spModel และดำเนินการโดยตรงบนตาราง (เป็นเจ้าของโดย spModel) โดยไม่มีคำจำกัดความของคลาสย่อย spModel ลบเครื่องหมายแอมเพอร์แซนด์ของ spConfigReady แก้ไขปัญหาเส้นทางของเอาต์พุตเทมเพลตอัตโนมัติ เปลี่ยนตำแหน่งไดรเวอร์ mysql ถ่ายโอนไดเร็กทอรี Smarty และถ่ายโอนไดรเวอร์ mysql ลบไฟล์ spDB และฟังก์ชัน spDB จะถูกวางไว้ใน spFunctions เป็นฟังก์ชันหลักใน อนาคต
เพิ่มไดเร็กทอรี Drivers และวางคลาสไดรเวอร์โปรแกรมหลัก เมื่อปิดมุมมอง คุณยังคงสามารถใช้ $this->variables และ $this->display สำหรับการกำหนดเทมเพลตได้ อย่างไรก็ตาม ไวยากรณ์เทมเพลตจะต้องเป็นไวยากรณ์ PHP ธรรมดา
ขยาย