การใช้งาน Load
Load เป็นคลาสที่สร้างขึ้นมาเพื่อเรียกใช้งานไฟล์ต่างๆ ได้ง่ายขึ้นและสะดวกขึ้น
ในการที่เราจะเรียกใช้ไฟล์โดยผ่านการตรวจสอบไฟล์มาแล้ว โดยเขียนโค๊ดเพียงแค่บรรทัดเดียว ท่านสามารถที่จะใช้คลาส Load ในการอำนวยความสะดวกให้ท่านได้
Load/core , Load/helper
ถ้าหากเราทำการสร้าง Core หรือ Helper ขึ้นมาใช้งานเอง หรือจะเรียกใช้งานส่วนต่างๆที่มีอยู่ในระบบ ท่านจำเป็นที่จะใช้ Load->core
หรือ Load->helper
<?php
defined( 'Q_APP' ) or die( 'คุณไม่มีสิทธิ์เข้าถึงไฟล์นี้โดยตรง' );
$app = new App;
$app::render( function() use ( $app ) {
// โหลด Core
$mycore = $app->load->core( 'ชื่อ Core' );
// โหลด Helper
$app->load->helper( 'ชื่อ Helper' );
} );
?>
สำคัญ : ให้เขียนเพียงชื่อไฟล์เท่านั้น โดยไม่ต้องใส่ .php
ระบบจะทำการหาไฟล์จากโฟลเดอร์ System/
ก่อนที่จะไปหาในโฟลเดอร์ Application/
ค่าที่ส่งกลับมา
Load/php
ไฟล์ PHP ที่เราจะโหลดมาใช้งานจะต้องอยู่ในโฟลเดอร์ Application/Public/
เท่านั้น และนอกจากนี้เราสามารถส่งค่าตัวแปรไปให้ไฟล์ที่เราเรียกมาใช้งานได้อีกด้วย เช่น
# ไฟล์ Home.php
<?php
defined( 'Q_APP' ) or die( 'คุณไม่มีสิทธิ์เข้าถึงไฟล์นี้โดยตรง' );
$app = new App;
$app::render( function() use ( $app ) {
$app->load->php( 'Welcome' , array(
'myname' => 'Kittichai Mala-in'
) );
} );
?>
# ไฟล์ Welcome.php
<?php
defined( 'Q_APP' ) or die( 'คุณไม่มีสิทธิ์เข้าถึงไฟล์นี้โดยตรง' );
$app = new App;
$app::render( function() use ( $app ) {
echo $myname;
} );
?>
แต่ถ้าหากชื่อตัวแปรที่คุณกำหนดไปซ้ำกับตัวแปรอื่น จะเกิด Error ขึ้นทันที
Load/javascript , Load/css , Load/img
การเรียกใช้งาน JavaScript , CSS และ Image มีด้วยกันสองแบบคือ
เรียกใช้ไฟล์ที่อยู่ภายใต้ Application/Assets/
เรียกใช้ไฟล์ที่อยู่ภายนอกเว็บไซต์ อาทิเช่น CDN
ค่า Parameters ของ 2 เมธอดนี้เหมือนกันทุกประการ คือ $path, $customLink = false , $attributes = array()
การเรียกใช้ในแบบที่ 1
<?php
defined( 'Q_APP' ) or die( 'คุณไม่มีสิทธิ์เข้าถึงไฟล์นี้โดยตรง' );
$app = new App;
$app::render( function() use ( $app ) {
// Javascript แบบปกติ
// Application/Assets/Js/Script.js
echo $app->load->javascript( 'Script' );
// แบบกำหนด Attributes
echo $app->load->javascript( 'Script' , false , array(
'ATTR_Name' => 'ATTR_Value'
) );
// CSS แบบปกติ
// Application/Assets/Css/Style.css
echo $app->load->css( 'Style' );
// แบบกำหนด Attributes
echo $app->load->css( 'Style' , false , array(
'ATTR_Name' => 'ATTR_Value'
) );
// Img แบบปกติ
// Application/Assets/Img/Image.jpg
echo $app->load->img( 'Image.jpg' );
// แบบกำหนด Attributes
echo $app->load->img( 'Image.jpg' , false , array(
'ATTR_Name' => 'ATTR_Value'
) );
} );
?>
การเรียกใช้ในแบบที่ 2
<?php
defined( 'Q_APP' ) or die( 'คุณไม่มีสิทธิ์เข้าถึงไฟล์นี้โดยตรง' );
$app = new App;
$app::render( function() use ( $app ) {
// Javascript
// https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js
echo $app->load->javascript( 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js' , true );
// CSS
// https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.4.0/js/bootstrap.min.js
echo $app->load->css( 'https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.4.0/js/bootstrap.min.js' , true );
// Img
// https://cdn4.buysellads.net/uu/1/3386/1525189943-38523.png
echo $app->load->img( 'https://cdn4.buysellads.net/uu/1/3386/1525189943-38523.png' , true );
} );
?>
ความหมายของแต่ละ Parameters
ชื่อไฟล์หรือที่อยู่ของไฟล์ที่จะเรียกใช้งาน
false = จะทำการเรียกไฟล์ที่อยู่ภายใน Application/Assets/
true = จะทำการเรียกไฟล์ได้ตามความต้องการ (ต้องใส่นามสกุลไฟล์)
ค่าปกติคือ false
รับค่ามาเป็น Array โดย
Array Key = ชื่อ Attribute
Array Value = Value ของ Attribute
Load/html
Load->html สามารถดึงไฟล์ได้จากที่เดียวเท่านั้นก็คือภายในโฟลเดอร์ Application/Public/
และยังสามารถทำการ Replace ข้อมูลใน HTML ได้
# ไฟล์ Home.php
<?php
defined( 'Q_APP' ) or die( 'คุณไม่มีสิทธิ์เข้าถึงไฟล์นี้โดยตรง' );
$app = new App;
$app::render( function() use ( $app ) {
echo $app->load->html( 'Welcome' , array(
'WEBSITE::TITLE' => 'หัวข้อเว็บไซต์',
'WEBSITE::H1' => 'หัวข้อ'
) );
} );
?>
# ไฟล์ Welcome.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>WEBSITE::TITLE</title>
</head>
<body>
<h1>WEBSITE::H1</h1>
</body>
</html>
จากโค๊ดข้างบน ข้อความ WEBSITE::TITLE
และ WEBSITE::H1
ในไฟล์ Welcome.html จะถูกแทนที่ด้วย "หัวข้อเว็บไซต์" และ "หัวข้อ" ตามลำดับ