Kotchasan PHP Framework

welcome โปรเจ็คแรกของคชสาร

โปรเจ็ค welcome เป็นโปรเจ็คอย่างง่ายๆใช้สำหรับอธิบายการใช้งานคชสารเว็บเฟรมเวิร์คในการแสดงผลหน้าเว็บไซต์ มีโครงสร้างไดเรคทอรี่ดังรูป
  • welcome/
    1. modules/
      1. index/
        1. views/ 
          1. index.php Index\Index\View
        2. controllers/ 
          1. index.php Index\Index\Controller
    2. 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>';
    }
}