คุณจะแสดงเอาต์พุต php ไปยังคอนโซลของ phpstorm ได้อย่างไร

เมื่อเปิดใช้งานดีบักเกอร์ (xdebug) ใน phpstorm แล้ว คุณสามารถรันสคริปต์ php ของคุณ (โดยไม่ต้องดีบัก) จากภายใน phpstorm

คุณจะดูผลลัพธ์ของสคริปต์ในคอนโซล phpstorms ได้อย่างไร

ฉันต้องการดูผลลัพธ์ของ php ก่อนที่เบราว์เซอร์จะอ่าน - โดยพื้นฐานแล้วสิ่งที่คุณจะเห็นหากคุณคลิก "ดูซอร์ส" ในเบราว์เซอร์

ที่นี่คือวิดีโอของนักพัฒนา jetbrains ทำสิ่งนี้ (2 นาที: 05 วินาทีในวิดีโอ) - เขาไม่ได้อธิบายวิธีกำหนดค่า phpstorm ให้ทำ


person Michael Coleman    schedule 17.07.2014    source แหล่งที่มา
comment
ฉันไม่เห็นอะไรเกี่ยวกับ HTML ใน 2:05 ในวิดีโอนั้น   -  person LazyOne    schedule 17.07.2014
comment
รับทราบ ฉันได้อัปเดตคำถามแล้ว ขอบคุณ   -  person Michael Coleman    schedule 17.07.2014


คำตอบ (2)


ขณะนี้ไม่มีตัวเลือกดังกล่าวใน PhpStorm: เพื่อแสดงบัฟเฟอร์ของเว็บเซิร์ฟเวอร์ (สิ่งที่ถูกส่งไปยังเบราว์เซอร์) เมื่อทำการดีบัก หน้าเว็บ (หมายเหตุ: สิ่งนี้ควรใช้ได้เฉพาะเมื่อทำการดีบั๊กเท่านั้น)

ตัวเลือกดังกล่าวมีอยู่ในช่วงเวลาสั้นๆ เมื่อประมาณ 4 ปีที่แล้ว (แยกแท็บ Script Output ในหน้าต่างเครื่องมือดีบักเกอร์: http://youtrack.jetbrains.com/issue/WI-2826 ).. แต่มีปัญหาค่อนข้างน้อยและได้ถูกลบออกไปจนกว่าจะมีการใช้งานอย่างเหมาะสม

http://youtrack.jetbrains.com/issue/WI-18214 --> http://youtrack.jetbrains.com/issue/WI-4466


ในวิดีโอนั้น โดยเฉพาะอย่างยิ่งประมาณ 2:05 ตามที่คุณแนะนำ สคริปต์ CLI ธรรมดาจะถูกดำเนินการ (ใช้การกำหนดค่า Run/Debug ประเภท PHP Script) ดังนั้นจึงสามารถจับเอาต์พุตดังกล่าวทั้งหมดได้อย่างง่ายดาย (เอาต์พุต std มาตรฐาน ).

ด้วย CLI scipt มันง่าย - IDE เป็นพาเรนต์ที่นี่ (ผู้ที่เริ่มเรียกใช้สคริปต์) เพื่อให้สามารถรวบรวมเอาต์พุต std ได้อย่างง่ายดาย หากคุณรันสคริปต์หน้าเว็บของคุณในสภาพแวดล้อม CLI คุณจะได้รับ HTML ของคุณในเอาต์พุตคอนโซลปกติ

สำหรับหน้าเว็บ มันทำงานแตกต่างออกไป (กระบวนการทั้งหมด): เอาต์พุตสคริปต์จะถูกส่งไปยังเว็บเซิร์ฟเวอร์ (พาเรนต์) ก่อน ซึ่งจะส่งไปยังเบราว์เซอร์ตามลำดับ เนื่องจาก IDE ไม่ได้มีส่วนร่วมในการเรียกใช้สคริปต์โดยตรง การสกัดกั้นดังกล่าวจึงสามารถเกิดขึ้นได้ในระหว่างการดีบักเท่านั้น โดยที่ตัวดีบักเกอร์สามารถส่งสำเนาของเอาต์พุตสคริปต์ที่รวบรวมกลับไปยัง IDE ได้

person LazyOne    schedule 17.07.2014
comment
ฉันเห็นแล้วขอบคุณ ดังนั้นผลลัพธ์ของล่าม php ไม่ใช่ผลลัพธ์สุดท้ายที่ส่งไปยังเบราว์เซอร์ใช่ไหม เอาต์พุต php จะถูกส่งไปยังเว็บเซิร์ฟเวอร์ก่อน (ในกรณีนี้คือ apache) ซึ่งจะสร้างเอาต์พุตที่ส่งไปยังเบราว์เซอร์? . - person Michael Coleman; 18.07.2014
comment
ถูกต้อง. นั่นคือเวลาที่การบีบอัดแบบทันทีเกิดขึ้น ฯลฯ - person LazyOne; 18.07.2014
comment
ขอบคุณ. แก้ไขแล้ว ฉันจะลงคะแนน แต่ฉันไม่มีคะแนนชื่อเสียงเพียงพอ! - person Michael Coleman; 18.07.2014

กรอบงานเว็บส่วนใหญ่ บัฟเฟอร์เอาต์พุต ก่อนที่จะส่งผลลัพธ์ไปยังเว็บเซิร์ฟเวอร์ หากต้องการดูเนื้อหาของบัฟเฟอร์นี้ ขั้นแรกให้แทรกเบรกพอยต์ในตำแหน่งที่ต้องการ จากนั้นเมื่อถึงเบรกพอยต์ จากนั้นไปที่แท็บ Debug=>คอนโซล และดำเนินการฟังก์ชัน ob_get_contents() การบัฟเฟอร์เอาต์พุตของ PHP รองรับระดับที่ซ้อนกัน ดังนั้น โปรดคำนึงถึงสิ่งนี้เมื่อเลือกเบรกพอยต์ แน่นอนว่าถ้า CMS/framework ไม่ได้ใช้การบัฟเฟอร์เอาต์พุต วิธีการนี้ก็ใช้ไม่ได้

person ttk    schedule 13.06.2019