PHPSlides เป็นเฟรมเวิร์ก PHP ที่ออกแบบมาสำหรับเทมเพลตรากฐานที่สร้างขึ้นแล้วที่ใช้ในการสร้าง Router , Api และ database management ?
ใช้ PHPSlides ในการสร้างเราเตอร์ที่มีความปลอดภัยมาก API และฐานข้อมูลที่สร้างฐานข้อมูลเทมเพลต inbuilt ซึ่งยอมรับ - ฐานข้อมูล MySql & Sqlite ยังสามารถตั้งค่าฐานข้อมูลอื่น ๆ ได้
มันมีค่าเริ่มต้นในการป้องกันการฉีด SQL มันป้องกันโครงการจากการโจมตี XXS & CSRF?
เป็นแนวปฏิบัติที่ดีสำหรับผู้เริ่มต้นใน PHP เพื่อเริ่มต้นด้วย phpslides
ด้วย phpslides คำขอทั้งหมดที่มาจากเซิร์ฟเวอร์จะเปลี่ยนเส้นทางไปยัง phpslides สำหรับการตรวจสอบการกำหนดเส้นทาง และตรวจสอบว่าคำขอตรงกับเส้นทางที่ลงทะเบียนแล้วจะส่งคืนหน้า 404 ที่ไม่พบหรือไม่?
ไม่มีการร้องขอสามารถเข้าถึงไฟล์หรือโฟลเดอร์ใด ๆ ในโครงการ PHPSlides เว้นแต่จะระบุไว้ในการกำหนดเส้นทาง?
โดยค่าเริ่มต้นจะส่งคืนหน้า 404 ไม่พบหน้าหากพวกเขานำทางไปยังไฟล์หรือโฟลเดอร์ใด ๆ หรือคำขอใด ๆ ที่ได้รับหากยังไม่ได้ลงทะเบียน?
ต้องการเยี่ยมชมไฟล์โดยตรงหรือไม่? มันจะถูกกำหนดค่าในไฟล์กำหนดค่าสไลด์ แต่สามารถเข้าถึงไฟล์ในไดเรกทอรีสาธารณะได้หรือไม่
นอกจากนี้คุณสามารถระบุประเภทของไฟล์เพื่อเข้าถึงหรือระบุส่วนขยายเฉพาะที่สามารถร้องขอได้จากแต่ละโฟลเดอร์ในไดเรกทอรีสาธารณะหรือโฟลเดอร์ทั้งหมด?
ยอมรับไฟล์รูปภาพวิดีโอเสียงเอกสารหรือข้อความธรรมดาทุกประเภทหรือไม่
อ่านรหัสเริ่มต้นของ PHPSlides และทำความเข้าใจกับแต่ละฟังก์ชันรหัสรหัสนั้นเรียบร้อยและอ่านได้?
ประการแรกเราสร้างโครงการสไลด์ของเราโดยดำเนินการคำสั่งนี้ในเทอร์มินัลของคุณหากมีการติดตั้งนักแต่งเพลงแล้ว
composer create-project dconco/php_slides slide_project โดยที่ slide_project เป็นชื่อโครงการที่คุณจะสร้าง & เป็นไดเรกทอรีโครงการ และจะสร้างโครงการด้วยชื่อที่ระบุที่ไดเรกทอรีเป้าหมายที่คุณติดตั้ง
หากนักแต่งเพลงยังไม่ได้ติดตั้ง ติดตั้งโดยการดำเนินการ:
pkg install composerและเราทุกคนตั้งไว้
เราจะเปิดโครงการของเราใน VSCODE หรือ PHPStorm หรือบรรณาธิการ PHP อื่น ๆ
มาเริ่มโครงการของเราบนเบราว์เซอร์คุณจะตั้งค่าและเริ่มต้นเซิร์ฟเวอร์ Apache ใน XAMPP ของคุณหรือเซิร์ฟเวอร์ PHP อื่น ๆ หากคุณใช้โทรศัพท์คุณอาจใช้ Awebserver สำหรับ PHP Server และเปิดโฮสต์ในเบราว์เซอร์ของคุณคุณจะเห็นเทมเพลตเริ่มต้น
มีวิธีการที่แตกต่างกันของเส้นทางการร้องขอ วิธีการเส้นทางนี้ใช้การรับคำขอจากฝั่งไคลเอ็นต์
เปิดไฟล์ routes/route.php ในตัวแก้ไขของคุณ เปิดโฟลเดอร์ routes ไฟล์ route.php โดยค่าเริ่มต้นคุณจะเห็นเส้นทางแดชบอร์ดลงทะเบียนแล้วคุณสามารถลบออกเพื่อเริ่มต้นจากศูนย์
มาสร้างสไลด์บล็อกง่ายๆเป็นตัวอย่าง ดังนั้นเราจะลงทะเบียนเส้นทางของเราเราจะต้องมี Login Page , Register , Profile และ Posts Page มาลงทะเบียนเส้นทาง PUR ในไฟล์ route.php และเขียนตัวอย่าง:
<?php
include_once dirname ( __DIR__ ) . " /vendor/autoload.php " ;
use PhpSlides Route ;
use PhpSlides view ;
Route:: config ();
Route:: view ( " /login " , " ::Login " );
?>ตัวอย่างด้านบนนี้อธิบาย:
ประการแรกเรานำเข้าไฟล์โหลดอัตโนมัติของเราจากไดเรกทอรีผู้ขายเพื่อให้เราสามารถใช้ชื่อคลาสทั้งหมดของเรา
ด้วย use PhpSlidesRoute เราใช้ในการนำเข้าคลาสเส้นทางของเราเพื่อใช้
ต้องระบุฟังก์ชั่นของ Route::config ที่จุดเริ่มต้นของรหัสของเรา มันทำให้ phpslides กำหนดค่าเส้นทางเว็บไซต์ของเราและทำให้มีความปลอดภัยมากซึ่งช่วยให้สามารถเข้าถึงการกำหนดค่าการกำหนดเส้นทางและเส้นทางที่ร้องขอ
ฟังก์ชั่น Route::config ใช้พารามิเตอร์บูลีน 1 พารามิเตอร์ซึ่งระบุว่าจะอนุญาตให้มีการร้องขอบันทึกหรือไม่ โดยค่าเริ่มต้นจะถูกกำหนดให้เป็นจริง ดังนั้นในแต่ละคำขอจะเขียนข้อมูลส่วนหัวคำขอไปยังไฟล์. .log
และฟังก์ชั่น Route::view ช่วยให้คุณสร้างเส้นทางดู
พารามิเตอร์ที่ส่งผ่านไปจะเป็นสองพารามิเตอร์แรกระบุเส้นทางที่ควรขอให้แสดงพารามิเตอร์ที่สอง
พารามิเตอร์ที่สองแสดงผลไฟล์ในไดเรกทอรีมุมมองซึ่งสามารถเข้าถึงได้ด้วย :: ( ลำไส้ใหญ่คู่ ) และชื่อไฟล์ ไฟล์ใด ๆ ที่เราสร้างในไดเรกทอรีมุมมองจะต้องอยู่ในรูปแบบ fileName.view.php ซึ่ง fileName คือชื่อของไฟล์มุมมองและ .view.php เป็นนามสกุลไฟล์ดังนั้น phpslides จะสังเกตเห็นว่าเป็นไฟล์มุมมอง
ลองสร้างไฟล์ใหม่ที่เรียกว่า Login.view.php ตามที่เราลงทะเบียนไว้ในเส้นทาง จากนั้นเราสามารถเขียนโค้ด HTML ตัวอย่างเล็ก ๆ ได้
<html>
<head>
<title>Login Page</title>
</head>
<body>
<h2>Login Page</h2>
<input type="email" name="emai" />
<input type="password" name="password" />
<button type="submit">Login</button>
</body>
</html>ตัวอย่างของวิธีการรับเส้นทาง
<?php
use PhpSlides Route ;
use PhpSlides view ;
Route:: config ();
Route:: get ( " /login " , Route:: view ( " ::Login " ));
?> คุณเห็นความแตกต่างระหว่างเส้นทาง View & Get ในเส้นทางดูคุณไม่จำเป็นต้องได้รับไฟล์ดูด้วย Route::view คุณเขียนมุมมองเป็นสตริงในพารามิเตอร์ที่ 2
แต่ในเส้นทางรับพารามิเตอร์ที่ 2 ซึ่งใช้เป็นฟังก์ชั่นการโทรกลับใช้รหัสทุกประเภท เช่น Strings, Array, ฟังก์ชั่น เนื่องจากมันส่งคืนโดยตรงไปยังฝั่งไคลเอ็นต์ ด้วยเส้นทาง Get วิธีการขอ URL เฉพาะที่จะได้รับจะต้องเป็นคำขอ GET ดังนั้นเป็นวิธีการทั้งหมดของเส้นทาง
รับเส้นทางด้วยวิธีการปิดฟังก์ชั่น
Route:: get ( " /login " , function () {
return Route:: view ( " ::Login " );
});มันส่งคืนหน้ามุมมองเข้าสู่ระบบเราสามารถส่งคืนค่า PHP ใด ๆ ไปยังเบราว์เซอร์
วิธีการเส้นทางทั้งหมดมีพารามิเตอร์ที่สองเป็นฟังก์ชั่นการโทรกลับซึ่งใช้วิธีการฟังก์ชันหรือวิธีการอื่น ๆ
รับวิธีการเส้นทางด้วยพารามิเตอร์ URL ที่มีการปิด
Route:: get ( " /posts/{id} " , function ( int $ id ) {
return " Posts ID = " . $ id
});ตัวอย่างข้างต้นนี้ลงทะเบียนเส้นทางใหม่ด้วยคำขอ /โพสต์ที่รับคำขอรับด้วยพารามิเตอร์การปิดฟังก์ชั่นของ ID หากคำขอคือ/โพสต์/2 จะส่งคืน "โพสต์ ID = 2" จะได้รับค่า ID และส่งไปยังฝั่งไคลเอ็นต์/เบราว์เซอร์
ตัวอย่างของวิธีการโพสต์เส้นทาง
<?php
use PhpSlides Route ;
use PhpSlides view ;
Route:: config ();
Route::post( " /add_user " , ());
?>มันเรียกวิธีการโพสต์มันบ่งชี้ว่าฟังก์ชันเส้นทางโพสต์สามารถดำเนินการได้เฉพาะในกรณีที่ request_method เป็นคำขอโพสต์ และสามารถใช้ในการส่งข้อมูลแบบฟอร์ม
พารามิเตอร์ที่สองว่างเปล่าสามารถส่งคืนรูปแบบ JSON ได้เนื่องจากวิธีการโพสต์มักใช้ในการส่งคำขอโพสต์ที่ส่งคืนข้อมูลในรูปแบบ JSON พารามิเตอร์ที่ 2 สามารถมีรูปแบบใด ๆ สำหรับฟังก์ชันการโทรกลับ
นั่นคือวิธีการที่เหลือเส้นทาง
ตัวอย่างของวิธีการวางเส้นทาง
Route::put( " /user " , ());วิธีการใส่เป็นเหมือนคำขอโพสต์ในการเพิ่มข้อมูลหรือข้อมูลลงในไฟล์หรือฐานข้อมูลเฉพาะ
ตัวอย่างวิธีการอัปเดตเส้นทาง
Route::update( " /user/{id} " , ());วิธีการอัปเดตมักใช้ในการอัปเดตข้อมูลเช่นในฐานข้อมูล
ตัวอย่างวิธีการลบเส้นทาง
Route::delete( " /user/{id} " , ());วิธีการลบมักใช้ในการลบข้อมูลในฐานข้อมูล
ตัวอย่างวิธีการเส้นทางใด ๆ
Route::any( " /user/{id} " , ()); ด้วย Route::any() สามารถใช้งานได้หากคุณต้องการยอมรับคำขอทุกประเภท สามารถเป็นได้ทั้งโพสต์รับใส่อัปเดตหรือลบขึ้นอยู่กับวิธีเส้นทางที่ร้องขอ
ตัวอย่างของวิธีการเส้นทางที่ไม่ได้รับ
Route:: any ( " * " , Route:: view ( " ::errors::404 " )); ในตัวอย่างข้างต้นนี้เราได้สร้างเส้นทางใด ๆ และทำให้พารามิเตอร์แรกเป็น * ซึ่งบ่งชี้ว่าจะกลับมาเมื่อใดก็ตามที่ไม่มีเส้นทางตรงกับ URL ที่ร้องขอ
เส้นทางที่ไม่มีการเผาควรอยู่ที่จุดสิ้นสุดของเส้นทางที่ลงทะเบียนดังนั้นจึงสามารถดำเนินการได้เมื่อเส้นทางข้างต้นทั้งหมดไม่ตรงกัน
และในพารามิเตอร์ที่สองเรานำทางเพื่อ view โฟลเดอร์และสร้างโฟลเดอร์ชื่อ errors ภายในไดเรกทอรี view จากนั้นสร้างหน้าชื่อ 404.view.php
คุณสามารถสร้าง URL หลายเส้นทางที่จะแสดงหน้าหรือฟังก์ชั่น
สร้าง URL หลายรายการด้วยอาร์เรย์และรายการ URL ในนั้น สามารถใช้วิธีการเส้นทางใด ๆ
หมายเหตุ: คุณไม่สามารถใช้ URL หลาย URL เมื่อใช้พารามิเตอร์เส้นทางด้วย {} craces crace
Route:: view ([ " / " , " /index " , " /dashboard " ], " ::dashboard " ); ตัวอย่างนี้อธิบายว่าเมื่อใดก็ตามที่ URL ที่ร้องขอจะตรงกับ URL ที่ระบุไว้ในอาร์เรย์และจะแสดงผล dashboard.view.php ในเบราว์เซอร์ วิธีการเส้นทางทั้งหมดยอมรับ URL หลายตัว ยังสามารถสร้าง URL หลายตัวสำหรับหน้า 404
PhpSlides ช่วยให้คุณสามารถเข้าถึงปุ่มพารามิเตอร์เส้นทางในคลาสคอนโทรลเลอร์คลาส
คุณสามารถใช้วิธีการเส้นทางใด ๆ สำหรับคอนโทรลเลอร์การกำหนดเส้นทางยกเว้นวิธีการดู ไปกับวิธีการรับกันเถอะ
เราสร้างองค์ประกอบคลาสอย่างง่ายของเราในไดเรกทอรี Controller ที่ไดเรกทอรีรากของโครงการของคุณ
นำทางไปยังไดเรกทอรี Controller และสร้างชื่อคอนโทรลเลอร์ที่คุณเลือก แต่ต้องอยู่ในรูปแบบนี้ ClassName + Controller.php ซึ่งควรเป็น ClassNameController.php
ลองสร้างคอนโทรลเลอร์ใหม่ที่เรียกว่า UserController.php มานำทางไปยังไฟล์ที่สร้างขึ้นและเขียนรหัสบางอย่างในนั้น
<?php
namespace PhpSlides Controller ;
final class UserController extends Controller
{
public function __invoke ( int $ id ) {
return " <h2>Get User with ID = { $ id } </h2> " ;
}
}
?> ในตัวอย่างข้างต้นเราสร้างไฟล์ที่เรียกว่า UserController.php ในโฟลเดอร์ /controller
และเราสร้างเนมสเปซสำหรับคอนโทรลเลอร์คลาสที่จะใช้ในการโทรเข้าชั้นเรียน เราสร้างคลาสที่เรียกว่า UserController และขยายไปยังคลาส Controller ซึ่งช่วยให้คุณสามารถเข้าถึงฟังก์ชั่นที่ได้รับการป้องกัน
ตรวจสอบให้แน่ใจว่าหลังจากทุกส่วนประกอบคลาสที่สร้างขึ้นซึ่งมีเนมสเปซคุณควรเรียกใช้คำสั่งด้านล่างสำหรับการโหลดอัตโนมัติของแต่ละคลาส
composer slides-refreshคำหลักสุดท้ายในชั้นเรียนอธิบายว่าคลาสควรเป็นที่สิ้นสุดและไม่สามารถขยายไปยังคลาสอื่นได้คุณอาจลบออกได้หากควรขยายคลาส
และเราสร้างฟังก์ชั่นสาธารณะของเราที่เรียกว่า __invoke ซึ่งได้รับพารามิเตอร์การปิดในเส้นทางซึ่งจะถูกใช้เพื่อรับพารามิเตอร์ URL และส่งคืนค่าสำหรับฟังก์ชันการโทรกลับ ดังนั้นจึงได้รับพารามิเตอร์การปิด $ ID และอธิบายว่าเป็นจำนวนเต็มโดยใช้ int ก่อนชื่อพารามิเตอร์
มาลงทะเบียนเส้นทางผู้ใช้และทำให้เป็นเส้นทางได้รับการร้องขอเส้นทางทุกประเภทขึ้นอยู่กับการใช้งาน
<?php
use PhpSlides Route ;
use PhpSlides Controller UserController ;
Route:: config ();
Route:: get ( " /user/{id} " , [ UserController::class ]);
?> ในตัวอย่างข้างต้นนี้เราได้สร้างคลาสที่เรียกว่า UserController แล้วและเราได้สร้างวิธีการเส้นทาง Get ซึ่งมีพารามิเตอร์ URL ของ id
จากนั้นเราแสดงคลาส UserController ซึ่งพารามิเตอร์ id ถูกส่งไปยังคลาส UserController ด้วยฟังก์ชัน __invoke
ในคอนโทรลเลอร์คลาสของเราเรายังสามารถสร้างหลายวิธีสำหรับคำขอเส้นทางที่แตกต่างกัน
<?php
final class UserController extends Controller
{
public function __invoke () {
return " <h2>Invoked User Successful. Receieved all users successfully.</h2> " ;
}
public function User ( $ id ) {
return " <h2>Received an ID - $ id for a user.</h2> " ;
}
}
?> ใน UserController เราสร้างวิธีอื่นที่เรียกว่า User() ซึ่งใช้พารามิเตอร์หนึ่งตัวเป็น $id สำหรับพารามิเตอร์การร้องขอ id URL
ลองใช้วิธีการคลาสของ User() ในเส้นทาง
Route:: get ( " /user " , [ UserController::class ]);
Route:: get ( " /user/{id} " , [ UserController::class, ' User ' ]);ในฟังก์ชั่นแรกไม่มีพารามิเตอร์ URL เพราะในกรณีนี้เราจะส่งคืนผู้ใช้ที่มีอยู่ทั้งหมดไม่ใช่ผู้ใช้แต่ละคน
และเราสร้างฟังก์ชันที่สองเป็น /user/{id} นั่นหมายความว่าเราผ่านพารามิเตอร์ id url ไปยังวิธีการ User() เส้นทาง
ในการใช้เมธอด User() โดยผ่านชื่อวิธีซึ่งเป็น User เป็นสตริงลงในอาร์เรย์คอนโทรลเลอร์เส้นทางที่ดัชนีที่ 2 ของอาร์เรย์สามารถใช้ค่าอาร์เรย์สองค่าเท่านั้น
สามารถเพิ่มวิธีการให้ได้มากที่สุดและพารามิเตอร์ URL จำนวนมากเท่าที่จะทำได้
ตัวอย่างด้านล่างสำหรับการสร้างพารามิเตอร์ URL หลายตัว:
Route:: get ( " /user/{id}/post/{post_id} " , function ( $ user_id , $ post_id )
{
return " User ID = $ user_id & Post ID = $ post_id " ;
}); มันมีพารามิเตอร์ URL สองตัวที่เรียกว่า id และ post_id สำหรับ ID ผู้ใช้และ ID โพสต์จากนั้นเราจะได้รับพารามิเตอร์ URL ในพารามิเตอร์ฟังก์ชันปิด สิ่งเดียวกับวิธีการควบคุมเส้นทาง
แต่ตรวจสอบให้แน่ใจว่าตัวแปรพารามิเตอร์การปิดฟังก์ชั่นไม่สามารถเหมือนกันได้อย่างอื่นที่อาจเปลี่ยนความขัดแย้ง แต่พารามิเตอร์ URL อาจเหมือนกัน
การกำหนดค่าใน PHPSlides ทำให้คุณสามารถเข้าถึงได้อย่างเต็มที่ในการกำหนดค่าวิธีการร้องขอ/รับในเส้นทาง และการกำหนดค่าการกำหนดเส้นทางสามารถตั้งค่าในไฟล์ phpslides.config.json
โดยค่าเริ่มต้นทุกที่ในเว็บจะว่างเปล่าแม้ว่าพวกเขาจะนำทางไปยังหน้าใด ๆ ก็ตาม ดังนั้นการกำหนดเส้นทางเว็บจึงใช้เพื่อเพิ่มหน้าไปยังเว็บหากพวกเขาไปตามลิงก์ใด ๆ มันจะส่งคืนหน้าสำหรับ URL และหาก Not Found page setupped มันจะถูกใช้เมื่อใดก็ตามที่หน้าไม่มีอยู่
โดยค่าเริ่มต้นหากพวกเขาเปิด URL ใด ๆ ไปยังเส้นทางใด ๆ ของหน้าเว็บจะว่างเปล่าเว้นแต่จะเพิ่ม Not Found page ดังนั้นมันจะส่งคืนเนื่องจากเว็บไซต์ของคุณปลอดภัยพวกเขาสามารถเข้าถึงส่วนที่คุณต้องการให้เข้าถึงได้เท่านั้น
และการกำหนดค่าใน phpslides ทำให้ง่ายในการอนุญาตให้คุณกำหนดค่าส่วนที่ผู้ใช้สามารถดูเพื่อสร้างเว็บไซต์ที่ปลอดภัยมาก .. เนื่องจากพวกเขาสามารถดูไฟล์ใด ๆ ในโฟลเดอร์สาธารณะได้ แต่ไม่สามารถดูโฟลเดอร์ที่นั่นนอกเหนือจากการกำหนดเส้นทาง
_example ของการกำหนดค่าใน phpslides
เปิด phpslides.config.json ที่ไดเรกทอรีรากของโครงการของคุณ
{
"charset" : " UTF-8 "
}ตัวอย่างข้างต้นนี้ระบุชุด charsets ที่จะใช้ในการส่งคืนไฟล์ทั้งหมดและหน้าเส้นทางไปยัง Brower แต่สามารถเปลี่ยนแปลงได้ตลอดเวลาด้วยรหัส PHP หากคุณต้องการเปลี่ยนบางส่วน
{
"public" : {
"/" : [ " * " ]
}
} เราเพิ่มคีย์ public ในไฟล์ JSON ซึ่งระบุว่าภายในไดเรกทอรี public ไฟล์และไฟล์ที่ซ้อนกันในโฟลเดอร์ที่สามารถเข้าถึงได้
เราเพิ่ม / คีย์ซึ่งระบุรากของไดเรกทอรี public ดังนั้นเราจึงเพิ่มมันมี * (เครื่องหมายดอกจัน) ซึ่งระบุเพื่อเข้าถึงไฟล์ทั้งหมดในรูทของไดเรกทอรี public และเราสามารถระบุส่วนขยายทุกประเภทที่พวกเขาสามารถเข้าถึงได้แม้ว่าไฟล์จะมีอยู่และพวกเขาพยายามเข้าถึงไฟล์ที่ส่วนขยายไม่สามารถใช้ได้ในการกำหนดค่า CCONTIL แต่จะส่งคืน Not Found page พวกเขาสามารถเขียนหลายส่วนในอาร์เรย์ และยังสามารถเขียน image โดยที่พวกเขาสามารถเข้าถึงรูปภาพ video หรือ audio ทั้งหมด
"/" : [ " image " , " audio " , " video " ] ในแต่ละโฟลเดอร์ที่ซ้อนกันภายในไดเรกทอรี public จะถูกระบุเป็นอาร์เรย์ของส่วนขยายในไฟล์กำหนดค่า และหากคุณต้องการอนุญาตให้โฟลเดอร์ที่ซ้อนกันทั้งหมดคุณจะระบุโฟลเดอร์ในไฟล์ JSON และส่วนขยายที่สามารถอนุญาตในไดเรกทอรีที่ซ้อนกันทั้งหมด
เหมือนสมมติว่าไดเรกทอรีอยู่ในรูปแบบนี้:
public:
assets:
image.jpg
file.pdf
vendor:
bootstrap.min.js
images:
image.png
image1.jpg
file.html
ดังนั้นตัวอย่างนี้อธิบายไว้: ในไดเรกทอรี public เรามีโฟลเดอร์ assets และ images ดังนั้นในโฟลเดอร์ assets เรามี 1 ภาพ, 1 ไฟล์ PDF และโฟลเดอร์ vendor 1 โฟลเดอร์ซึ่งมี bootstrap.min.js ดังนั้นหากเราต้องการกำหนดค่า ::
{
"public" : {
"assets" : [ " jpg " , " js " ],
"images" : [ " image " , " video " ]
}
} ในตัวอย่างนี้เราสร้างการกำหนดค่าสำหรับไดเรกทอรี assets และ images เท่านั้นดังนั้นไฟล์และโฟลเดอร์ทั้งหมดในไดเรกทอรี assets จะใช้ส่วนขยายที่เพิ่มเข้ามาในไดเรกทอรี assets ซึ่งระบุว่าในตัวอย่างนี้ส่วนขยาย js ที่ระบุจะได้รับอนุญาตในโฟลเดอร์ vendor หรือเราเพิ่มกุญแจ vendor ลงในไฟล์ JSON
ดังนั้นในขณะที่เรากำหนดค่าไดเรกทอรี assets พวกเขาสามารถเข้าถึงไฟล์ jpg และไฟล์ js ในโฟลเดอร์ vendor เท่านั้น
สำหรับไดเรกทอรี images เราระบุว่าสามารถเข้าถึงไฟล์ใด ๆ ที่เป็น image หรือ video เท่านั้นดังนั้นจึงอนุญาตให้มี 2 ไฟล์ที่มี png & jpg และ Not Found page เมื่อใดก็ตามที่พวกเขาพยายามเข้าถึง file.html ซึ่งไม่ได้เพิ่มส่วนขยาย
หากต้องการดูไฟล์ทั้งหมดที่อยู่ในไดเรกทอรี public ที่มีไฟล์ในโฟลเดอร์ซ้อนกัน คุณไม่ได้เพิ่มโฟลเดอร์ public ก่อนรับไฟล์มันจะส่งคืน Not Found page เช่นเดียวกับตัวอย่างข้างต้นเพื่อเข้าถึงไฟล์ในโฟลเดอร์ assets เราจะทำตาม URL: http://localhost:8000/assets/image.jpg และไม่ใช่ http://localhost:8000/public/assets/image.jpg และหากไฟล์อยู่ในไดเรกทอรีรูทของโครงการมันจะเข้าถึงได้โดยตรงหลังจาก URL โฮสต์: http://localhost:8000/image.jpg
ในเวอร์ชันนี้สไลด์มีวิธีในการจัดการกับหน้ามุมมองสร้างไฟล์มุมมองเทมเพลตของคุณในไดเรกทอรี views ในรูปแบบ fileName + .view.php Extension ซึ่งเป็น fileName.view.php
PHPSlides สร้างไวยากรณ์มุมมองพิเศษ
<? ?>มาเริ่มกันแล้ว ..
<! DOCTYPE html>
<html>
<!-- Php codes if needed -->
<?
?>
<head>
<!-- Meta Tags Info -->
<title>Page Title</title>
</head>
<body>
<!-- Body contents -->
</body>
</html> ในหน้าเทมเพลตมุมมองที่เราเขียนรหัส HTML แท็ก PHP ไม่ควรเริ่มไฟล์แทนที่จะเขียนแท็ก PHP และรหัสภายในแท็ก <html> หรือสถานที่อื่น ๆ นอกเหนือจากจุดเริ่มต้นควรเริ่มเอกสาร HTML ด้วยแท็ <?php <html>
<? ?> แท็กในเทมเพลตมุมมองคือแท็ก PHP สั้น ๆ ที่ใช้ในการเขียนรหัส PHP สั้น ๆ เช่นเดียวกับการใช้คำสั่ง IF หรือสะท้อนข้อมูลไปยังหน้า HTML รหัสตัวอย่าง:
<body>
<? if ( $ user ): ?>
<h1>Hello <? @view $ user ?> </h1>
<? else : ?>
<h1>Hello Guest</h1>
<? endif ; ?>
<p>
<? @view ' welcome to our blog spot! ' ?>
</p>
</body> ตัวอย่างนี้อธิบายว่า: ในองค์ประกอบของร่างกายเราตรวจสอบว่าผู้ใช้ส่งคืนจริงหรือไม่มันจะเพิ่มองค์ประกอบ h1 ด้วยข้อความสวัสดีด้วยค่าตัวแปรผู้ใช้ซึ่งส่งคืนโดยใช้คำหลัก @View ในสไลด์ อย่างอื่นมันจะกลับมาและองค์ประกอบ h1 พร้อมข้อความสวัสดีแขกรับเชิญในแท็ก <p> เราเขียนรหัส PHP ซึ่งใช้คำหลัก @view เพื่อส่งคืนสตริง/ค่าไปยังองค์ประกอบ <p>
:: View & :: root
มุม ::view เป็นเพียงคำที่เขียนในไฟล์เทมเพลตมุมมองที่ส่งคืนตำแหน่งรูทหลังจากชื่อเซิร์ฟเวอร์ในโครงการเริ่มต้นจาก / มักจะใช้ในการเชื่อมโยงไฟล์สาธารณะ และ ::root กำลังส่งคืนตำแหน่งรูทของโครงการของคุณและไม่มีมุม ::view ::root ถูกใช้ใน PHP ในการรวมไฟล์ใด ๆ ของโครงการ แต่ ::view เพียงแค่เข้าถึงสิ่งที่เบราว์เซอร์/ไคลเอ็นต์สามารถใช้งานได้ แต่ไม่สามารถเข้าถึงไฟล์ใด ๆ ในโครงการเมื่อไม่ได้อยู่ในไดเรกทอรี public
ทีนี้ลองจินตนาการว่าเรามีรูปภาพที่เราจะเข้าถึงในไดเรกทอรีสาธารณะและไฟล์ PHP พิเศษที่เราต้องรวมไว้ในหน้ามุมมอง
<body>
<? include ' ::root/components/extraFile.php ' ?>
<div>
<img src="::view/assets/icon.png" alt="Icon" />
</div>
</body> ในกรณีนี้รูทของโครงการถูกระบุว่าเป็น ::root และภายในโครงการเราสร้างโฟลเดอร์ที่เรียกว่า components และไฟล์ใหม่ที่เรียกว่า extraFile.php สำหรับรหัส PHP ใด ๆ ที่จะรวมไว้ในหน้ามุมมอง
มุม ::view เป็นที่ตั้งรูทของโฮสต์เซิร์ฟเวอร์ดังนั้นลองจินตนาการว่า URL โฮสต์เป็น http ::view/ http://localhost:8000/ ดังนั้นจึงระบุว่า ::view และตามปกติในสไลด์ไฟล์และโฟลเดอร์ทั้งหมดใน ::view/public public
ดังนั้น URL เป็น ::view/assets/icon.png ในไดเรกทอรี public สร้างโฟลเดอร์ assets และ icon.png
สไลด์มีวิธีให้คุณรวมไฟล์เทมเพลตมุมมองอื่นไว้ในหน้ามุมมองและไม่เพียง แต่ไฟล์ PHP
2 วิธีในการรวมหน้าดู
<include !/> htmlslides_include PHP ด้วยแท็ก <include !/> HTML คุณสามารถรวมหน้า PHP/มุมมองอื่น ๆ ไว้ในหน้ามุมมองปัจจุบัน ซึ่งช่วยให้คุณเขียนเทมเพลตมุมมองสไลด์ในไฟล์อื่น ๆ เพื่อรวม และยังสามารถรวมไฟล์ PHP อื่น ๆ ที่อยู่ที่ใดก็ได้ในโครงการ
< body >
< include path =" ::root/components/extraFile.php " ! />
< include path =" ::root/views/viewPage.view.php " ! />
</ body > ดังนั้นในแท็กแรกเรารวมไฟล์ PHP ที่อยู่ที่ไดเรกทอรี components และแท็กที่สองเรารวมไฟล์เทมเพลตมุมมองที่อยู่ในไดเรกทอรี views และสามารถใช้แท็ก <include !/> ในหน้าเทมเพลตมุมมองเท่านั้น
slides_include
ฟังก์ชั่นนี้มีวิธีให้คุณรวมไฟล์มุมมองในไฟล์ PHP ใด ๆ และไม่เพียง แต่ในหน้ามุมมองเทมเพลต
<? @view slides_include ( ' ::root/comp/extraFile.php ' ) ?>
<? @view slides_include ( ' ::root/views/page.view.php ' ) ?> PHPSlides APIs realeased ใน -v1.2.0 ซึ่งช่วยให้คุณทำงานกับ API ในโครงการของคุณ API เป็นเหมือนเส้นทาง แต่เป็นการแสดงผลข้อมูลกลับไปที่คำขอไม่ใช่เบราว์เซอร์ สไลด์ให้ฟังก์ชั่น Api ซึ่งช่วยให้คุณสามารถลงทะเบียนเส้นทาง API และตั้งค่าคอนโทรลเลอร์ API ในไฟล์ web.php ลงทะเบียนเส้นทาง API ใหม่ของคุณในไฟล์ routes/api.php
<?php
use PhpSlides Api ;
Api:: get ();
Api:: post ();
Api:: put ();
Api:: patch ();
Api:: update ();
Api:: delete ();
?> ในบล็อกตัวอย่างด้านบนของรหัสเราสร้าง API และนั่นคือวิธีการร้องขอ API ที่มีอยู่ใน API ฟังก์ชั่น Api ใช้เวลา 2 พารามิเตอร์ URL เส้นทาง API และพารามิเตอร์ที่สองคือวิธีการคลาสคอนโทรลเลอร์
โปรดทราบ ว่าก่อนที่คุณจะสามารถสร้าง API ตรวจสอบให้แน่ใจว่าคุณได้ตั้งค่าฟังก์ชั่น Route::config() ในไฟล์ route.php แม้ว่าคุณจะไม่ใช้เส้นทางเว็บ
มาสร้าง API สำหรับเส้นทางคำขอที่กำหนด "/api/users" ด้วยวิธีการโพสต์ซึ่งจะแสดงรายการของผู้ใช้ที่มีอยู่ในฐานข้อมูล และสร้างเส้นทางอื่น "/api/users/{id}" นอกจากนี้ยังมีวิธีการโพสต์ซึ่งจะแสดงผู้ใช้เฉพาะโดย ID ที่กำหนด
<?php
use PhpSlides Api ;
Api:: post ( " /api/users " );
Api:: post ( " /api/users/{id} " , @user);
?> ดังนั้นใน API แรกเราไม่ได้จัดเตรียมพารามิเตอร์ที่สองสำหรับวิธีการใช้ซึ่งโดยค่าเริ่มต้นคือวิธี __invoke และในครั้งที่สองเราใช้ @user ซึ่งจะทำให้วิธีการ user ของคลาสคอนโทรลเลอร์เดียวกัน @ Target ชื่อเมธอดของคลาสคอนโทรลเลอร์
ก่อนอื่นให้สร้างคลาสคอนโทรลเลอร์ของเราในไดเรกทอรี Controller/Api มาตั้งชื่อ UserController กันเถอะ ในชื่อคอนโทรลเลอร์ของเราจะต้องมี Controller เพื่อจบไฟล์ซึ่งอธิบายไฟล์คอนโทรลเลอร์
<?php
namespace PhpSlides Controller ;
final class UserController extends Controller
{
function __invoke () {
$ response = [ ' data ' => ' We have gotten all users id successful ' ];
return json_encode ( $ response );
}
function user ( int $ id ) {
$ response = [ ' data ' => ' The particular user id = $id ' ];
return json_encode ( $ response );
}
}
?> ในคลาส UserController เราสร้างวิธีการทำงานสองวิธีและปรับรูปแบบ JSON ที่เข้ารหัส
ยังไม่เสร็จ .. เราต้องลงทะเบียน URL เส้นทาง API แต่ละรายการสำหรับคลาสคอนโทรลเลอร์ในไฟล์ src/web.php
<?php
use PhpSlides Controller UserController ;
return [
' /api/users ' => UserController::class,
' /api/users/{id} ' => UserController::class
];
?>เราส่งคืนเส้นทางการลงทะเบียน API ตอนนี้ API พร้อมที่จะบริโภค❤?
Hurray ในขณะที่คุณสนุกกับการใช้ phpslides !!!
ฟังก์ชั่นเพิ่มเติมกำลังมาในเวอร์ชันถัดไป