เล่น laravel 4 บน appfog

appfog คือบริการ PaaS (Platform as a Service) ยอดนิยมตัวหนึ่ง
ใช้ฟรีด้วย (รีบไปสมัครมาเล่นนะ)

laravel 4 คือ php framework ที่น่าสนใจตัวหนึ่ง (ว่าแต่ทำไมมันมาน่าสนใจตอนเวอร์ชั่น 4 ล่ะ)
ผมเองไม่รู้หรอกว่ามันน่าสนใจอย่างไร แต่เห็นว่ามีคนมาเขียน tutorial กันเต็มเลย
ประกอบกับ appfog เองก็ support ด้วย
เลยขอลองสักหน่อย

ขั้นแรก
ลง composer ก่อน ไปโหลดที่ http://getcomposer.org/download/ 
สำหรับ windows แค่ใช้ตัว installer 

จากนั้น
> git clone https://github.com/laravel/laravel.git laravel
> cd laravel && composer install

รอสักพัก
ระหว่างรอก็ไปสร้าง vhost ยิงมาที่โฟลเดอร์ที่เราสร้าง

เมื่อ composer install เสร็จเรียบร้อย
ก็ไปสร้าง .htaccess

[.htaccess]
RewriteEngine on
RewriteCond %{REQUEST_URI} !public/
RewriteRule (.*) /public/$1 [L]

ตรงนี้จริงๆแล้วสามารถสั่งให้ vhost ยิงไปที่ public ได้เลย
แต่ว่ามันจะใช้กับ appfog ไม่ได้ เพราะ appfog ก็คล้ายๆกับ share host ทั่วไป
ที่เราต้องสั่ง apache ผ่าน .htaccess

ลองรันบน local ดู

จากนั้นก็อัพโหลดขึ้น appfog
> af login
> af update project-name

ถ้าหากว่ามี error เกิดขึ้นขณะอัพโหลด
ก็ให้รัน update อีกรอบ

ปล.
ณ วันนี้ (2013-06-09) laravel 4 เหมือนจะ stable เรียบร้อยแล้ว

ครั้งแรกกับ expressjs

package.js
เอาไว้จัดการ package ต้องกำหนดที่ไฟล์นี้ แล้วค่อยสั่ง install ผ่าน npm

การเขียนเบื้องต้น

define express object
var express = require(‘express’);
var app = express();

define routes
app.get(pattern, function(request, response){
  response.setHeader(‘Content-Type’, ‘text/plain’);
  response.end(‘Hello’);
})

bind listening ก็คือจะรัน app น่ะ
app.listen(3000);
console.log(‘Listening on port 3000’);

มันไม่ได้มีอะไรมากเลย
ทำไปอ่าน api (http://expressjs.com/api.html) ไปยังได้

expressjs จริงๆก็ใช้งานง่ายนะ มาพร้อมกับ jade ที่เป็น js template
และสามารถเปลี่ยน template engine ก็ง่าย
ติดตรงที่มันเป็น micro framework ดังนั้นโครงสร้างอยากจะได้อย่างไรก็ต้องทำเอง 😀

Note
expressjs คือ nodejs microframework 
จะใช้งานก็ต้องลง nodejs ก่อน ซึ่งใน share host ธรรมดาจะลงไม่ได้นะ เพราะว่าเข้า terminal ไม่ได้

ผมไม่มี hosting ใดๆทั้งสิ้น
แต่ไปใช้ appfog 🙂 ไม่ต้องติดตั้ง ไม่ต้องทำ server แค่สมัคร อัพโค้ด เปิดเว็บ จบ

สุดยอดที่ปรึกษา

ที่บริษัทจ้างที่ปรึกษาจาก aws เพื่อมาช่วยจัดการ source control

ที่นี่มีโค้ดห่วยๆเยอะ ซึ่งเค้าเอาโค้ดห่วยๆเนี่ยไปทำเป็นเว็บหลายๆตัว
featured เท่ากันหมด แต่ทำเป็นคนละภาษา

ปัญหาก็เลยเกิดขึ้น เมื่อมีการแก้ไขที่ไม่เหมือนกัน
ทำให้แต่ละเว็บไซด์เริ่มมีบั๊คที่แตกต่างกัน ทำให้เกิดการแก้ไขที่แตกต่างกัน และใช้คนละโค้ดกันในที่สุด

ที่ปรึกษาก็เลยแนะนำว่า “เอางี้สิ คุณใช้ Git นะแล้วก็สร้าง repository สำหรับทุกๆเว็บเลยเป็นงัย”

ผมก็เลยบอกกลับไปว่า “แล้วมันแตกต่างจากเดิมไหม สัส”

เกรียนจริงๆ