welcome โปรเจ็คแรกของคชสาร
โปรเจ็ค welcome เป็นโปรเจ็คอย่างง่ายๆใช้สำหรับอธิบายการใช้งานคชสารเว็บเฟรมเวิร์คในการแสดงผลหน้าเว็บไซต์ มีโครงสร้างไดเรคทอรี่ดังรูป
เริ่มกันที่ไฟล์แรก index.php เป็นไฟล์หลักสำหรับการเรียกเว็บไซต์ ไฟล์นี้มีข้อแตกต่างจากไฟล์เริ่มต้นของคชสาร คือ การเรียกใช้ไฟล์ load.php เท่านั้น เนื่องจากโปรเจ็ค welcome อยู่ภายใต้ไดเรคทอรี่ projects/ ดังนั้นการเรียกใช้ไฟล์ load.php เลยต้องชี้ไปที่ ../../Kotchasan/load.php
ไฟล์ที่ 2 เป็นไฟล์คอนโทรลเลอร์หลักของ คชสารพีเอชพีเฟรมเวิร์ค modules/index/controllers/index.php โดยมีเมธอด index() ซึ่งเป็นเมธอดเริ่มต้นที่คชสารเรียกใช้ ซึ่งในตัวอย่างนี้เมื่อเรียกเมธอด index() จะเป็นการไปเรียกใช้ View เพื่อแสดงผลอีกทึ
ไฟล์สุดท้าย คือ modules/index/views/index.php ซึ่งเป็น View ใน MVC ทำหน้าที่สร้างโค้ด HTML เพื่อแสดงผลบนบราวเซอร์ ที่เมธอด render() ตามที่เรียกมาจาก Controller
- welcome/
- modules/
- index/
- views/
- index.php Index\Index\View
- controllers/
- index.php Index\Index\Controller
- index.php
เริ่มกันที่ไฟล์แรก index.php เป็นไฟล์หลักสำหรับการเรียกเว็บไซต์ ไฟล์นี้มีข้อแตกต่างจากไฟล์เริ่มต้นของคชสาร คือ การเรียกใช้ไฟล์ load.php เท่านั้น เนื่องจากโปรเจ็ค welcome อยู่ภายใต้ไดเรคทอรี่ projects/ ดังนั้นการเรียกใช้ไฟล์ load.php เลยต้องชี้ไปที่ ../../Kotchasan/load.php
<?php
/*
* @filesource index.php.
*
* @author Goragod Wiriya <admin@goragod.com>
* @link http://www.kotchasan.com/
* @copyright 2016 Goragod.com
* @license http://www.kotchasan.com/license/
*/
/**
* 0 (default )บันทึกข้อผิดพลาดร้ายแรงลง error_log .php
* 1 บันทึกข้อผิดพลาดและคำเตือนลง error_log .php
* 2 แสดงผลข้อผิดพลาดและคำเตือนออกทางหน้าจอ (ใช้เฉพาะตอนออกแบบเท่านั้น)
*/
//define('DEBUG', 0);
/**
* false (default)
* true บันทึกการ query ฐานข้อมูลลง log (ใช้เฉพาะตอนออกแบบเท่านั้น)
*/
//define('DB_LOG', false);
// load Kotchasan
include '../../Kotchasan/load.php';
// inint Kotchasan Framework
Kotchasan::createWebApplication()->run();
ไฟล์ที่ 2 เป็นไฟล์คอนโทรลเลอร์หลักของ คชสารพีเอชพีเฟรมเวิร์ค modules/index/controllers/index.php โดยมีเมธอด index() ซึ่งเป็นเมธอดเริ่มต้นที่คชสารเรียกใช้ ซึ่งในตัวอย่างนี้เมื่อเรียกเมธอด index() จะเป็นการไปเรียกใช้ View เพื่อแสดงผลอีกทึ
<?php
/*
* @filesource index/controllers/index.php
* @link http://www.kotchasan.com/
* @copyright 2016 Goragod.com
* @license http://www.kotchasan.com/license/
*/
namespace Index\Index;
use \Kotchasan\Http\Request;
/**
* default Controller
*
* @author Goragod Wiriya <admin@goragod.com>
*
* @since 1.0
*/
class Controller extends \Kotchasan\Controller
{
/**
* แสดงผล
*
* @param Request $request
*/
public function index(Request $request)
{
createClass('Index\Index\View')->render();
}
}
ไฟล์สุดท้าย คือ modules/index/views/index.php ซึ่งเป็น View ใน MVC ทำหน้าที่สร้างโค้ด HTML เพื่อแสดงผลบนบราวเซอร์ ที่เมธอด render() ตามที่เรียกมาจาก Controller
<?php
/*
* @filesource index/views/index.php
* @link http://www.kotchasan.com/
* @copyright 2016 Goragod.com
* @license http://www.kotchasan.com/license/
*/
namespace Index\Index;
/*
* default View
*
* @author Goragod Wiriya <admin@goragod.com>
*
* @since 1.0
*/
class View extends \Kotchasan\View
{
public function render()
{
echo '<html style="height:100%;width:100%"><head>';
echo '<meta charset=utf-8>';
echo '<link href="https://fonts.googleapis.com/css?family=Itim&subset=thai,latin" rel="stylesheet" type="text/css">';
echo '<meta name=viewport content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">';
echo '<style>';
echo '.warper{display:inline-block;text-align:center;height:50%;}';
echo '.warper::before{content:"";display:inline-block;height:100%;vertical-align:middle;width:0px;}';
echo '</style>';
echo '</head><body style="height:100%;width:100%;margin:0;font-family:Itim, Tahoma, Loma;color:#666;">';
echo '<div class=warper style="display:block"><div class="warper"><div>';
echo '<img src="'.WEB_URL.'../../skin/img/kotchasan.png" style="width:100px" alt="Kotchasan PHP Framework">';
echo '<h1 style="line-height:1.8;margin:0;text-shadow:3px 3px 0 rgba(0,0,0,0.1);font-weight:normal;">คชสาร (Kotchasan)</h1>';
echo 'Siam PHP Framework';
echo '</div></div></body></html>';
}
}