PHP การอัพเกรดเวอร์ชั่น 7.1 กับปัญหาของ Codeigniter + TCPDF + FPDI

โดย SONGCHAI SAETERN

ปัญหาหลังอัพเกรด PHP 7.1

Declaration of PdfTemplate::addPage()
Declaration of PdfTemplate::SetFont()
Declaration of PdfTemplate::Link()
Declaration of PdfTemplate::Image()

พอรันหน้ารายงาน PDF ปุ๊บ เจอ Error message มาเป็นกระบุง!!



แต่อย่าเพิ่งตกใจไป เข้าไปตาม File และ Line ที่ระบุเลย Let's Go++
เอาล่ะ ตรงดิ่งไปที่ บรรทัด 449

???????

ไม่พบอะไรเลย สุดซอย ก็ถอยออกมาก่อน


มาเริ่มจากฟังก์ชั่นแรก ก็คือ Declaration of PdfTemplate::addPage เอาไปค้นใน Google เลย แล้วมองหาเว็บ StackOverFlow

ก็ได้หน้านี้มา (หาอยู่นานมาก >_<)
https://stackoverflow.com/questions/19912591/fpdi-tcpdf-problems

หลังจากลองแก้ไขตามกระทู้นี้ก็พบว่า "ใช้ได้จริงด้วย"


ก็นั่งพินิจพิเคราะห์อยู่นานสองนาน จนแน่ใจว่า "แค่คัดลอกฟังก์ชั่นที่อยู่หลังคำอธิบาย Error มาวางแทนทีแค่นั้นเอง" (ตามรูปด้านบนนี้)

หลังจากครบทั้ง 4 ฟังก์ชั่น ก็จะเจอ Error ตัวใหม่ๆ O_o'


ก็ได้ใจความว่า ชื่อฟังก์ชั่นต้องไม่เป็นชื่อเดียวกับชื่อคลาสนั่นเอง
(เปล่าหรอก จริงๆผมไม่ได้แปล แค่ก๊อบ error message ไปค้นใน Google มา ^O^)



https://stackoverflow.com/questions/37100373/php-deprecated-methods-with-the-same-name

ตามลิงค์ด้านบนนี้ เข้าไปแก้ไขชื่อฟังก์ชั่นที่ซ้ำกับชื่อคลาสเป็น function __construct() ก็หมดเรื่อง แล้วก็ลองไปรันหน้าเว็บใหม่อีกครั้ง


ยัง ยังไม่หมด!!


ต้องตามไปแก้จุดที่เรียกใช้ฟังก์ชั่นที่มีชื่อเดียวกับคลาสเป็นเรียก __construct() แทนด้วย



และแล้ว ก็ผ่านไปอีก 1 งาน ตอนนี้ TCPDF + FPDI ก็สามารถใช้งานบน PHP 7.1 ได้แล้วล่ะ ^O^

อ่านเรื่องราวการอัพเดตเพิ่มเติมได้ที่