ข้อผิดพลาด PHP สำหรับเด็กเจ๋งๆ
whoops เป็นเฟรมเวิร์กตัวจัดการข้อผิดพลาดสำหรับ PHP นอกกรอบมันมีอินเทอร์เฟซข้อผิดพลาดที่สวยงามซึ่งช่วยให้คุณแก้ไขจุดบกพร่องโครงการเว็บของคุณ แต่โดยพื้นฐานแล้วมันเป็นระบบการจัดการข้อผิดพลาดแบบซ้อนที่เรียบง่าย แต่ทรงพลัง
หากคุณใช้ Laravel 4, Laravel 5.5+ หรือ Mezzio แสดงว่าคุณมี Whoops แล้ว นอกจากนี้ยังมีคำแนะนำจากชุมชนเกี่ยวกับวิธีการรวม Whoops เข้ากับ Silex 1, Silex 2, Phalcon, Laravel 3, Laravel 5, CakePHP 3, CakePHP 4, Zend 2, Zend 3, Yii 1, FuelPHP, Slim, Pimple, Laminas, หรือเฟรมเวิร์กใดๆ ที่ใช้มิดเดิลแวร์ StackPHP หรือมิดเดิลแวร์ PSR-7
หากคุณไม่ได้ใช้เฟรมเวิร์กเหล่านี้ ต่อไปนี้เป็นวิธีติดตั้งที่ง่ายมาก:
ใช้ Composer เพื่อติดตั้ง Whoops ในโครงการของคุณ:
composer require filp/whoops
ลงทะเบียนตัวจัดการที่น่ารักในรหัสของคุณ:
$ whoops = new Whoops Run ;
$ whoops -> pushHandler ( new Whoops Handler PrettyPageHandler );
$ whoops -> register ();
สำหรับตัวเลือกเพิ่มเติม โปรดดู ไฟล์ตัวอย่าง ใน examples/
เพื่อทำความเข้าใจว่าสิ่งต่างๆ ทำงานอย่างไร โปรดดูเอกสารประกอบ API และรายการตัวจัดการที่มีอยู่ด้านล่าง
คุณอาจต้องการแทนที่การเรียกของระบบบางรายการที่ใช้ Whoops ในการทำเช่นนั้น ให้ขยาย WhoopsUtilSystemFacade
แทนที่ฟังก์ชันที่คุณต้องการและส่งผ่านเป็นอาร์กิวเมนต์ไปยังตัวสร้าง Run
คุณยังอาจรวบรวม HTML ที่สร้างขึ้นเพื่อประมวลผลด้วยตนเอง:
$ whoops = new Whoops Run ;
$ whoops -> allowQuit ( false );
$ whoops -> writeToOutput ( false );
$ whoops -> pushHandler ( new Whoops Handler PrettyPageHandler );
$ html = $ whoops -> handleException ( $ e );
ขณะนี้ whoops มาพร้อมกับตัวจัดการในตัวดังต่อไปนี้ ซึ่งมีอยู่ในเนมสเปซ WhoopsHandler
:
PrettyPageHandler
- แสดงหน้าข้อผิดพลาดที่สวยงามเมื่อมีบางอย่างเกิดขึ้นPlainTextHandler
- ส่งออกข้อความธรรมดาเพื่อใช้ในแอปพลิเคชัน CLICallbackHandler
- ล้อมการปิดหรือการโทรอื่นๆ เป็นตัวจัดการ คุณไม่จำเป็นต้องใช้ตัวจัดการนี้อย่างชัดเจน whoops จะล้อมการปิดหรือการโทรที่คุณส่งไปยัง WhoopsRun::pushHandler
โดยอัตโนมัติJsonResponseHandler
- จับข้อยกเว้นและส่งคืนข้อมูลเป็นสตริง JSON สามารถใช้เพื่อเล่นได้ดีกับคำขอ AJAXXmlResponseHandler
- จับข้อยกเว้นและส่งกลับข้อมูลในรูปแบบสตริง XML สามารถใช้เพื่อเล่นได้ดีกับคำขอ AJAXคุณยังสามารถใช้ตัวจัดการแบบเสียบได้ เช่น ตัวจัดการ SOAP
ห้องสมุดนี้ได้รับการพัฒนาโดย Filipe Dobreira เป็นหลัก และปัจจุบัน Denis Sokolov เป็นผู้ดูแลรักษา การแก้ไขและการปรับปรุงที่ยอดเยี่ยมมากมายถูกส่งมาจากผู้มีส่วนร่วมหลายคน ขอขอบคุณเป็นพิเศษสำหรับ Graham Campbell และ Markus Staab สำหรับการมีส่วนร่วมอย่างต่อเนื่อง