Rundizbones framework

Rundizbones framework คือ framework ที่เขียนด้วยภาษา PHP โดยตัวเฟรมเวิร์คมีขนาดเล็กกว่า Full stack MVC framework ทั่วไป เช่น Codeigniter, Laravel, Symfony แต่มันมีขนาดใหญ่กว่า micro framework เช่น Silex, Slim PHP framework เป็นต้น.

เฟรมเวิร์คตัวนี้เน้นการทำงานในลักษณะโมดูลาร์ (modular) คือแบ่งงานออกเป็นโมดูล เพื่อความสะดวกในการแยกแยะออกจากกัน และสามารถนำแต่ละโมดูลไปใช้ข้ามโปรเจ็คได้ง่ายกว่า. การทำงานรองรับ Composer โดยแต่ละโมดูลสามารถกำหนด package ที่ตัวเองต้องการได้ และเมื่อทำการติดตั้งผ่านคำสั่งทาง command prompt, PowerShell มันจะนำรายการทั้งหมดไปรวมอยู่ใน composer.json ที่เดียวแล้วทำการติดตั้งไว้ในโฟลเดอร์เดียวกัน.

ดาวน์โหลด

ติดตั้ง

  • การติดตั้งนั้น ให้ทำการดาวน์โหลดไฟล์แล้วแตกออกในโฟลเดอร์ที่ต้องการใช้งาน ตัวอย่างเช่น C:\wwwroot.
  • หน้าเว็บไซต์ที่มีไฟล์ index.php จะอยู่ในโฟลเดอร์ public ดังนั้นหน้าแรกของเว็บจะอยู่ที่ C:\wwwroot\public และสมมุติว่า URL http://localhost ชี้มาที่โฟลเดอร์ดังกล่าว.
    แต่ทั้งนี้สามารถย้ายตำแหน่งได้ ซึ่งจะขอยกไว้อธิบายในภายหลัง.
  • ทำซ้ำไฟล์ composer.default.json ไปเป็น composer.json. ในขั้นตอนนี้เมื่อทำเสร็จจะต้องมีทั้ง 2 ไฟล์ที่เหมือนกัน.
  • รันคำสั่ง composer install.
  • เปิดหน้าเว็บไซต์ไปยังตำแหน่งที่ติดตั้ง แล้วตามด้วย /rundizbones เช่น http://localhost/rundizbones
  • ถ้าหากทำการติดตั้งอย่างถูกต้อง จะขึ้นหน้า welcome เป็นอันเสร็จสิ้น.

ย้ายตำแหน่ง public

ในขั้นต้นนั้น ตำแหน่ง public folder จะมีไว้สำหรับเสิร์ฟหน้าเว็บไซต์ผ่านทาง web server โดยตำแหน่งเก็บไฟล์อื่นๆจะอยู่นอกการเข้าถึงผ่านทาง web server ทั้งหมด. ตัวอย่างเช่น เมื่อแตกไฟล์ออกมาไว้ใน C:\wwwroot หน้าแรกของเว็บ คือ index.php จะอยู่ใน C:\wwwroot\public\index.php ดังนั้นการกำหนด web server document root ควรชี้ไปที่ C:\wwwroot\public. แต่ถ้าหากว่าต้องการจะย้ายหรือไว้ในโฟลเดอร์อื่นก็ย่อมทำได้ เช่นบน server จริง index.php อาจอยู่ใน /home/wwwroot/public_html และไฟล์ต่างๆของเฟรมเวิร์คก็จะอยู่ใน /home/wwwroot เป็นต้น.

ตัวอย่างตำแหน่งไฟล์จากค่าเริ่มต้นที่ยังไม่มีการย้าย index.php

config/
Modules/
public/
    .htaccess
    index.php
    ...
storage/
System/
    vendor/
    ...
...
composer.default.json
composer.json

การย้าย index.php ไปยังโฟลเดอร์อื่นๆที่อยู่ในระดับเดียวกัน สามารถทำได้ทันที เช่น ย้ายจาก /public/index.php ไปยัง /public_html/index.php, หรือ /htdocs/index.php เป็นต้น.

การย้าย index.php ออกมาที่ระดับเดียวกันกับ composer.json ก็สามารถทำได้เช่นกัน แต่ไม่แนะนำเพราะซอร์สโค้ดต่างๆที่คุณผู้อ่านจะพัฒนาต่อไปนั้น จะอยู่ใต้การเสิร์ฟของ web server และเมื่อมันทำงานผิดพลาดก็อาจเปิดเผยซอร์สโค้ดให้เห็นได้. การย้ายออกมาระดับเดียวกับ composer.json เมื่อย้ายออกมาแล้ว ให้แก้ไขดังต่อไปนี้.

  • เปิดไฟล์ index.php เพื่อแก้ไข.
  • มองหาบรรทัดที่มีการ define ROOT_PATH แล้วแก้ไขดังต่อไปนี้. define('ROOT_PATH', __DIR__);
  • เปิดไฟล์ rdb เพื่อแก้ไข. (เฉพาะกรณีที่คุณผู้อ่านต้องการใช้งานคำสั่ง php rdb ผ่านทาง command prompt.)
  • มองหาบรรทัดที่มีการ define PUBLIC_PATH แล้วแก้ไขดังต่อไปนี้. define('PUBLIC_PATH', __DIR__);

การย้าย index.php ไปยังโฟลเดอร์ย่อยๆลงไป เช่น /public/sub1/sub2.

  • เปิดไฟล์ index.php เพื่อแก้ไข.
  • มองหาบรรทัดที่มีการ define ROOT_PATH แล้วแก้ไขดังต่อไปนี้. define('ROOT_PATH', dirname(dirname(dirname(__DIR__))));
  • เปิดไฟล์ rdb เพื่อแก้ไข. (เฉพาะกรณีที่คุณผู้อ่านต้องการใช้งานคำสั่ง php rdb ผ่านทาง command prompt.)
  • มองหาบรรทัดที่มีการ define PUBLIC_PATH แล้วแก้ไขดังต่อไปนี้. define('PUBLIC_PATH', __DIR__ . '/public/sub1/sub2');

ปรับแต่ง config

การแก้ไขค่า config ต่างๆสามารถทำได้โดยกำหนดค่า APP_ENV ใน index.php ก่อน เช่น กำหนดเป็น development หรือ production. จากนั้นทำการคัดลอกและทำซ้ำไฟล์ต่างๆที่ต้องการแก้ไขใน config/default ไปยัง config/APP_ENV ที่กำหนดไว้ อย่างเช่น กำหนดไว้เป็น development ก็คัดลอกทำซ้ำไฟล์จาก config/default ไปยัง config/development.

อย่าแก้ไขค่าในไฟล์ต่างๆใน config/default โดยตรง และควร copy ไฟล์เฉพาะที่ต้องการจะแก้ไขเท่านั้น.

เริ่มต้นโค้ด

ก่อนจะเริ่มต้นพ้ฒนาโปรเจ็คของคุณ ขอแนะนำให้ทำการศึกษาโครงสร้างโฟลเดอร์ต่างๆ รวมถึงคำสั่งภายใน php rdb และเอกสารที่อัพเดทล่าสุดได้ที่ wiki ของเฟรมเวิร์คนี้.

โมดูลอื่นๆ

ทางผู้เขียนได้จัดทำโมดูลต่างๆเพื่อใช้งานบนเฟรมเวิร์คนี้. ผู้อ่านสามารถดาวน์โหลดไปใช้งานหรือใช้เป็นตัวอย่างได้ ตามการอนุญาตที่กำหนดไว้ให้ โดยสามารถเลือกดาวน์โหลดได้บน GitHub Rundizbones.

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *

คุณอาจใช้แท็กHTMLและแอททริบิวต์เหล่านี้: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>