นักพัฒนา WordPress หลายคนโหยหาฟีเจอร์ต่างๆ เช่น Eloquent, Blade, Service Container และ Service Provider เพื่อช่วยพวกเขาสร้างปลั๊กอินที่มีประสิทธิภาพ Falcon อยู่ที่นี่เพื่อเปลี่ยนเกมและนำความสามารถเหล่านี้มาสู่ปลายนิ้วของคุณ
โปรดทราบ: ปลั๊กอินนี้ให้บริการต่างๆ มากมาย และไม่ได้มีวัตถุประสงค์เพื่อใช้เป็นฐานสำหรับการสร้างปลั๊กอินใหม่
เวอร์ชัน PHP ขั้นต่ำ: 8.2
สร้างไดเรกทอรี: ในโฟลเดอร์ wp-content
หากไม่มีโฟลเดอร์ mu-plugins
ให้สร้างขึ้นใหม่ วางโฟลเดอร์ falcon-base-services
ไว้ข้างใน
สร้างไฟล์ Loader: ในรูทของโฟลเดอร์ mu-plugins
ให้สร้างไฟล์ PHP พร้อมชื่อที่คุณเลือก และเพิ่มโค้ดต่อไปนี้:
<?php
require ' falcon-base-services/falcon-base-services.php ' ;
โปรดทราบว่าเนื้อหาของโฟลเดอร์ mu-plugins
ไม่จำเป็นต้องเปิดใช้งานในผู้ดูแลระบบ WordPress และดำเนินการก่อนปลั๊กอินอื่นๆ ทั้งหมด นอกจากนี้ WordPress จะไม่สแกนโฟลเดอร์ภายใน mu-plugins
เว้นแต่จะได้รับคำแนะนำอย่างชัดเจน
ติดตั้งการพึ่งพา: เปิดเทอร์มินัลในโฟลเดอร์ falcon-base-services
และรันคำสั่งต่อไปนี้:
composer install
หากคุณยังไม่ได้ติดตั้ง Composer คุณสามารถดาวน์โหลดและติดตั้งได้จากลิงก์นี้
ขณะนี้ปลั๊กอินพร้อมใช้งานแล้ว เรามาสำรวจคุณสมบัติและวิธีใช้งานกันดีกว่า
หากคุณต้องการให้ไซต์อยู่ในโหมดการบำรุงรักษา เพียงเปลี่ยนชื่อไฟล์ maintenance.example.php
ในโฟลเดอร์ storage
เป็น maintenance.php
คุณยังสามารถแก้ไขเนื้อหาของไฟล์ได้ตามต้องการ
รายการที่กล่าวถึงในไฟล์ .env.example
มีความสำคัญ เปลี่ยนชื่อไฟล์เป็น . .env
คุณสามารถตั้งค่าตัวแปรของคุณในไฟล์ .env
และใช้ตัวแปรเหล่านั้นได้ทุกที่ในโค้ดของคุณดังนี้:
$ _ENV [ ' item ' ];
//or
env ( ' item ' )
หากต้องการตั้งค่ารายการใน var $_ENV ทั่วโลก คุณสามารถใช้:
setEnv ( $ key , $ value );
คุณยังสามารถใช้ไฟล์การกำหนดค่าในโครงการของคุณที่ส่งคืนอาร์เรย์ได้ วางไฟล์การกำหนดค่าไว้ในโฟลเดอร์กำหนดค่าและเข้าถึงค่าที่ต้องการโดยใช้ฟังก์ชัน falconConfig($file, $key = null, $folder_path = null)
$file
: ชื่อของไฟล์คอนฟิกูเรชัน
$key
: คีย์ของอาร์เรย์ที่ร้องขอ หากเป็นค่าว่าง เนื้อหาไฟล์ทั้งหมดจะถูกส่งกลับ
$folder_path
: ตามค่าเริ่มต้น เส้นทางไปยังไฟล์การกำหนดค่าจะอยู่ในโฟลเดอร์การกำหนดค่า หากคุณต้องการมีการกำหนดค่าใหม่ในโปรเจ็กต์ของคุณ คุณสามารถระบุเส้นทางไปยังโฟลเดอร์ใหม่ได้
ปลั๊กอินใช้คอนเทนเนอร์บริการที่มีประสิทธิภาพพร้อมความสามารถในการเดินสายอัตโนมัติ
Singleton Services: ลงทะเบียนบริการ singleton โดยใช้:
FALCON_CONTAINER -> singleton (Test::class);
// or
FALCON_CONTAINER -> singleton ( ' test ' , Test::class);
บริการที่ไม่ใช่ซิงเกิลตัน: ลงทะเบียนบริการที่ไม่ใช่ซิงเกิลตันโดยใช้:
FALCON_CONTAINER -> bind (Test::class);
// or
FALCON_CONTAINER -> bind ( ' test ' , Test::class);
การใช้การปิด: คุณยังสามารถใช้การปิด:
FALCON_CONTAINER -> bind ( ' test ' , function () { return Test::class; });
การใช้บริการ: ใช้วิธี get
เพื่อเรียกบริการ:
FALCON_CONTAINER -> get ( ' test ' );
FALCON_CONTAINER -> get (Test::class);
วิธีการแก้ไข: แก้ไขวิธีการจากคลาสโดยใช้:
FALCON_CONTAINER -> getMethod (Test::class, ' run ' );
สิ่งนี้จะแก้ไขการขึ้นต่อกันใด ๆ ที่จำเป็นโดยทั้งคลาสและวิธีการโดยอัตโนมัติ
หากต้องการสร้างผู้ให้บริการ ให้สร้างคลาสในโฟลเดอร์ app/providers
และขยายคลาส ServiceProvider
ใช้วิธี register
และ boot
ตามความจำเป็น จากนั้นเพิ่มที่อยู่ของผู้ให้บริการในไฟล์ providers.php
ที่อยู่ในโฟลเดอร์ bootstrap
ตาราง WordPress เริ่มต้นทั้งหมดมีให้เป็นโมเดลในโฟลเดอร์ app/Model
ตาราง WooCommerce
จะถูกเพิ่มเร็วๆ นี้ คุณสามารถใช้ทั้ง Query Builder และ Eloquent อันทรงพลังเพื่อโต้ตอบกับตารางเหล่านี้
( new FalconBaseServices Model Post ())-> published ()-> with ( ' author ' )-> get ();
falconDB ():: table ( ' wp_posts ' )
-> where ( ' post_status ' , ' publish ' )
-> leftJoin ( ' wp_users ' , ' wp_posts.post_author ' , ' = ' , ' wp_users.ID ' )
-> select ( ' wp_posts.* ' , ' wp_users.user_nicename ' )
-> get ();
หากคุณต้องการใช้ตารางใหม่เป็นแบบจำลอง ให้สร้างคลาสโดยขยายคลาส FalconBaseServicesModelBaseModel
หากตารางไม่ได้ใช้คำนำหน้าเริ่มต้น ให้ตั้งค่า $with_prefix
เป็นเท็จ:
protected $ with_prefix = false ;
กฎและการใช้งานโมเดลและ Query Builder/Eloquent เหมือนกับเอกสารประกอบของ Laravel ทุกประการ
ตามค่าเริ่มต้น Blade จะถูกใช้เป็นเอ็นจิ้นเทมเพลต ซึ่งแตกต่างจากการใช้งานมาตรฐานเล็กน้อย ให้ความสนใจกับตัวอย่าง:
falconTemplate ()-> setViewDir ( ' path to dir ' )-> setView ( ' name of file without extension ' )
-> share ([ ' item ' => ' value ' ])-> render ();
คุณยังสามารถใช้ทวิก คลาสที่ได้รับมาจากอินเทอร์เฟซ app/Services/TemplateEngine/Template.php
มีอยู่ในพาธ app/Services/TemplateEngine/Implements/Twig.php
เพียงเพิ่ม Twig ลงในปลั๊กอินผ่าน Composer จากนั้นแก้ไขไฟล์ app/Providers/TemplateServiceProvider.php
การใช้งานจะคล้ายกับตัวอย่างข้างต้น
หากต้องการใช้ตัวบันทึกให้ใช้ falconLogger():
falconLogger ()-> error ( ' message ' , [ ' data ' => ' value ' ]);
หากคุณต้องการให้ ProcessIdProcessor
, GitProcessor
และ MemoryUsageProcessor
รวมอยู่ในบันทึก ให้ตั้งค่ารายการที่เกี่ยวข้องในไฟล์ .env เป็น true
หากต้องการใช้อีเมล คุณสามารถใช้ falconEmail():
falconEmail ()-> send ( $ to , $ subject , $ content , $ from = null , $ bcc = null );
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีใช้อีเมล โปรดดูที่ไฟล์ app/Services/Sender/Implements/Email/PHPMailer.php
ขอให้มีความสุขในการเขียนโค้ด!