ตอนที่1.5: ทำ Subdomain + ตั้งค่า .htaccess กับ ดูโครงสร้างของ laravel

ก่อนที่จะทะยานเข้าไปยังรายละเอียดที่ลึกกว่านี้ จุดที่สำคัญอย่างหนึ่ง(คิดว่างั้นนะ) ก็คือเรื่องพื้นฐาน อย่างเช่นพวกเรื่องของ โครงสร้าง และ ความต้องการของ framework

Pretty URLs
     เป็นการตัดการใช้งาน index.php ออกไปเพื่อให้สะดวกในการใช้งาน(และเพื่อผลพลอยได้ทาง SEO) ซึ่งจริงๆ ตามเข้าไปอ่านจากในลิ้งค์เลยก็ได้นะ ไม่ยาก แต่เผื่อใครขี้เกียจจะแปล ผมจะแปลมัวๆ ให้อ่านก็แล้วกัน ... ตึ่งโป๊ะ!

1.) เช็ก Apache ก่อนเลยว่าเราได้เปิด mod_rewrite ไว้แล้วรึยัง ถ้าเป็น IIS ลองไปหาดูพวก URL Rewrite ตัวนี้มาเล่นดูนะครับ

2.) ถ้าติดตั้ง Module ที่ว่าไปแล้วให้เปิดไฟล์ public/.htaccess ขึ้นมาได้เลย จากนั้นก็ก๊อบโค้ดพวกนี้ไปใส่
Options +FollowSymLinks
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]


แต่ถ้าเป็น IIS ก็ใช้ตัวนี้ (ผมไม่ได้คิดเองนะ Laravel มัน Generate มาให้เองเบย ฮ่าๆ ๆ )
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>



3.) เปิดไฟล์ bin\apache\Apache2.2.21\conf แล้วก็ Uncomment บรรทัดนี้
Include conf/extra/httpd-vhosts.conf

4.) เข้าไปอ่านตาม Blog นี้ (เริ่มขี้เกียจละ)

5.) ทีนี้ใน virtual host เราก็ point folder ไปที่ public ตัวอย่างเช่น
<virtualhost>
ServerName laravel.localhost.com
ServerAlias www.laravel.localhost.com
DocumentRoot "D:\wamp\www\laravel\public"
ErrorLog "logs\errors.log"
<directory laravel="" public="" wamp="" www="">
Options Indexes FollowSymLinks
AllowOverride all
Order Deny,Allow
Deny from all
Allow from all
</directory>
</virtualhost>


ปล.อย่าลืม Restart Apache ด้วยนะจ๊ะ

ทีนี้เวลาที่เราเข้าใช้งานเราก็เข้าผ่านการใช้ Subdomain ได้แล้ว


โครงสร้างของ Laravel
แนะนำเลยครับว่าไปหาซื้อมาเถอะครับ เล่มนี้
ไม่มีผิดหวังจริงๆ หรือจะไปหาโหลดตามเว็บบิท ก็ได้ มีเกลื่อนเหมือนกัน เอาเป็นว่า นานา จิตตังก็แล้วกันนะจ๊ะ ;)

เปิดไปอ่านที่หัวข้อ Project Structure ได้เล๊ยยยยยแล้วคุณจะเห็นหน้าตาโปรเจคมันประมาณนี้แล

YOUR_PROJECT
    |--app/
    |--bootstrap/
    |--vendor/
    |--public/
    |--.gitattributes
    |--.gitignore
    |--artisan
    |--composer.json
    |--composer.lock
    |--phpunit.xml
    |--server.php

app
    พวกโค้ดที่เราจะเขียน พวกคอนฟิก หรือพวกหน้า default จะอยู่ในนี้หมดเลย ทั้ง Controllers, Models, Views ด้วยนะเออ

bootstrap
    ประกอบไปด้วยไฟล์หลักๆ ดังนี้ หลักๆเลยก็คือเป็นส่วนหลักๆ ของระบบ ไม่ต้องแก้มัน ดีฝุดๆ

  1. paths.php ตรงตามชื่อมันเลย ก็คือเป็นการสร้างเกี่ยวกับ filesystem paths
  2. autoload,php, start.php เป็นไฟล์เกี่ยวกับการเริ่มกระบวนการต่างๆ ที่มีอยู่ในระบบ

vendor
    พวก Composer packet จะอยู่ในนี้หมดเลย

public
    พวก js, css หรือ images ควจจะอยู่ในนี้ จะได้ไม่ต้องไปปนกับตัวโค้ดให้วุ่นวาย

artisan
   เท่าที่ลองอ่าน ลอง Research ดูนะ artisan จะเป็นเหมือนตัวที่เราเอาไว้ใช้ทำงานผ่าน Comman line

server.php
    @todo: This will require more research. <<< ในหนังสือเค้าว่ามาแบบนี้ ... เง้อ!

เข้ามาดู Application Directory อีกหน่อย
commands/
config/
controllers/
database/
lang/
models/
start/
storage/
tests/
views/
filters.php
routes.php

controllers/, models/, views/
    ก็ MVC ง่ะ.... รึป่าว ฮ่าๆ ๆ ๆ  น่าจะใช่แล้วนะ ชื่อมันก็ตรงกันนิ

config/, database/
    คอนฟิกต่างๆ ของระบบ ไม่ว่าจะเป็นติดต่อกับฐานข้อมูล, URL ของ Application, Timezone บลา บลา บลา เยอะแยะ

routes.php
    บังคับเส้นทางต่างๆ ที่เราจะใช้ใน app


เท่าที่ลองอ่านๆ ดูก็ประมาณนี้ล่ะ
รายละเอียดลึกๆ อย่าพึ่งถามแล๊ยยยย กูก็อ่านไปด้วยเขียนไปด้วยนี่ล่ะ ก๊าาาาาก ลองรันตามดูบ้างอะไรบ้าง เอาเป็นว่าถ้าว่างเว้นจากงาน ก็จะกระดึ๊บๆ อ่านไปเรื่อยๆ ทำไปเรื่อย เสร็จแล้วก็เอามาเขียนลง Blog ละกันน่อ อุอุ

สุดท้ายก็ไม่มีอะไร แค่อยากอวดลูกสาวหัวแก้วหัวแหวน กิกิกิ

Comments