FluentPDO เป็นตัวสร้างคิวรี PHP SQL โดยใช้ PDO เป็นไลบรารีที่รวดเร็วและไม่ซับซ้อนซึ่งมีตัวสร้างการรวมอัจฉริยะ ซึ่งจะสร้างการรวมตารางให้คุณโดยอัตโนมัติ
อินเทอร์เฟซที่ใช้งานง่ายสำหรับการสร้างแบบสอบถามที่มีประสิทธิภาพ
รองรับฐานข้อมูลใด ๆ ที่เข้ากันได้กับ PDO
ความสามารถในการสร้างแบบสอบถาม SELECT, INSERT, UPDATE & DELETE ที่ซับซ้อนด้วยโค้ดเพียงเล็กน้อย
พิมพ์คำใบ้สำหรับวิธีการวิเศษด้วยการเติมโค้ดให้สมบูรณ์ใน IDE อัจฉริยะ
การเปิดตัว FluentPDO ที่เสถียรและได้รับการบำรุงรักษาอย่างแข็งขัน รองรับ PHP 7.3 ถึง PHP 8.0 อย่างเป็นทางการ แต่สามารถทำงานร่วมกับ PHP 7 เวอร์ชันก่อนหน้าได้
FluentPDO รุ่นดั้งเดิม ไม่ได้รับการสนับสนุนอีกต่อไปและจะไม่ได้รับการบำรุงรักษาหรืออัปเดต เวอร์ชันนี้ใช้งานได้กับ PHP 5.4 ถึง 7.1
เวอร์ชันนี้เป็นการเขียน Fluent ใหม่ทั้งหมดตั้งแต่ต้นจนจบ ข้อได้เปรียบหลักคือการใช้หน่วยความจำน้อยลงอย่างมาก และประสิทธิภาพในการสร้างคิวรีที่สูงกว่ามาก นอกจากนี้ยังมีข้อจำกัดเพิ่มเติมบางประการเพื่อให้ข้อความค้นหาอ่านและบำรุงรักษาได้ง่ายขึ้น การจัดทำเอกสารยังเป็นคำขอที่พบบ่อยมากและเวอร์ชัน 3 ได้รับการจัดทำเอกสารอย่างครบถ้วนควบคู่ไปกับการพัฒนา รายละเอียดและตัวชี้วัดจะถูกโพสต์เมื่อมีข้อมูล
Sitepoint - เริ่มต้นใช้งาน FluentPDO
วิธีที่แนะนำในการติดตั้ง FluentPDO คือผ่านทางผู้แต่ง
เพิ่มบรรทัดต่อไปนี้ในไฟล์ composer.json ของคุณ:
"require": {
...
"envms/fluentpdo": "^2.2.0"
} อัปเดตการอ้างอิงของคุณด้วย composer update และคุณทำเสร็จแล้ว!
หากคุณไม่ต้องการใช้ผู้แต่ง ให้ดาวน์โหลดรุ่นล่าสุด สร้างไดเร็กทอรี Envms/FluentPDO ในไดเร็กทอรีไลบรารีของคุณ และวางที่เก็บนี้ลงไป สุดท้ายเพิ่ม:
ต้องการ '[lib-dir]/Envms/FluentPDO/src/Query.php';
ไปที่ด้านบนของใบสมัครของคุณ หมายเหตุ: คุณจะต้องมีตัวโหลดอัตโนมัติเพื่อใช้ FluentPDO โดยไม่ต้องเปลี่ยนซอร์สโค้ด
สร้างอินสแตนซ์ PDO ใหม่ และส่งอินสแตนซ์ไปยัง FluentPDO:
$pdo = new PDO('mysql:dbname=fluentdb', 'user', 'password');$fluent = EnvmsFluentPDOQuery ใหม่($pdo);จากนั้น การสร้างแบบสอบถามก็ทำได้ง่ายและรวดเร็ว:
$query = $fluent->จาก('ความคิดเห็น')
->ที่ไหน('article.published_at > ?', $date)
->orderBy('published_at DESC')
->ขีดจำกัด(5);ซึ่งจะสร้างแบบสอบถามด้านล่าง:
SELECT comment.*จาก commentLEFT JOIN บทความบน article.id = comment.article_idWHERE article.published_at > ?ORDER BY article.published_at DESCLIMIT 5
ในการรับข้อมูลจากการเลือก สิ่งที่เราทำคือวนซ้ำอาร์เรย์ที่ส่งคืน:
foreach ($สอบถามเป็น $row) {echo "$row['title']n";
-มาเริ่มด้วยการเข้าร่วมแบบดั้งเดิมด้านล่าง:
$query = $fluent->จาก('บทความ')
->leftJoin('ผู้ใช้บน user.id = article.user_id')
->select('user.name');มันค่อนข้างละเอียดและไม่ฉลาดมาก หากตารางของคุณใช้ชื่อคีย์หลักและคีย์ต่างประเทศที่เหมาะสม คุณสามารถย่อชื่อด้านบนให้สั้นลงได้:
$query = $fluent->จาก('บทความ')
->leftJoin('ผู้ใช้')
->select('user.name');นั่นดีกว่าแต่ไม่เหมาะ อย่างไรก็ตาม มันจะง่ายกว่าถ้า ไม่เขียนการรวมใดๆ :
$query = $fluent->จาก('บทความ')
->select('user.name');เจ๋งใช่มั้ย? FluentPDO สามารถสร้างการรวมให้คุณได้ โดยคุณเพิ่มชื่อตารางต่างประเทศไว้ข้างหน้าคอลัมน์ที่ร้องขอ
ตัวอย่างข้อมูลทั้งสามด้านบนจะสร้างข้อความค้นหาเดียวกันทุกประการ:
เลือกบทความ * ชื่อผู้ใช้ จากบทความ ผู้ใช้ซ้ายเข้าร่วมบน user.id = article.user_id
ท้ายที่สุด เป็นความคิดที่ดีที่จะปล่อยทรัพยากรทันทีที่ทำหน้าที่ของตนเสร็จสิ้น:
$คล่องแคล่ว->ปิด();
$query = $fluent->from('article')->where('id', 1)->fetch();$query = $fluent->from('user', 1)->fetch(); // เวอร์ชันที่สั้นกว่าหากเลือกหนึ่งแถวด้วยคีย์หลัก $values = array('title' => 'article 1', 'content' => 'content 1');$query = $fluent->insertInto('article')->values($values)->execute( );$query = $fluent->insertInto('article', $values)->execute(); // เวอร์ชันสั้นกว่า $set = array('published_at' => new FluentLiteral('NOW()'));$query = $fluent->update('article')->set($set)->where('id', 1 )->execute();$query = $fluent->update('article', $set, 1)->execute(); // เวอร์ชันที่สั้นลงหากอัปเดตหนึ่งแถวด้วยคีย์หลัก $query = $fluent->deleteFrom('article')->where('id', 1)->execute();$query = $fluent->deleteFrom('article', 1)->execute(); // เวอร์ชันที่สั้นกว่าหากลบหนึ่งแถวด้วยคีย์หลัก หมายเหตุ : คำสั่ง INSERT, UPDATE และ DELETE จะทำงานหลังจากที่คุณโทร ->execute() เท่านั้น
ฟรีสำหรับการใช้งานเชิงพาณิชย์และไม่ใช่เชิงพาณิชย์ภายใต้ลิขสิทธิ์ Apache 2.0 หรือ GPL 2.0