วิธีติดตั้ง Lumen PHP Framework ตัวเล็กเร็วแรงทรงพลังจาก Laravel
ถ้าคุณเป็น PHP Web Developer ที่ทำงานด้าน Web Service (RESTful web API ) ต้องลองติดตั้งและใช้ Lumen PHP Framework ดูแล้วคุณจะติดใจในความเร็วของมัน
Lumen Framework พัฒนามาจาก Laravel PHP Framework โดยมีแนวคิดที่จะทำให้ Framework ตัวเล็กลงโดยการตัด Package บางตัวที่ไม่จำเป็นสำหรับการทำ Web Service ออกไปทำให้ Lumen ทำงานได้เร็วกว่า Laravel มาก
นอกจาก Lumen จะนิยมนำมาใช้ทำระบบ Web Service แล้ว Lumen ยังสามารถนำมาใช้พัฒนาระบบเว็บต่างๆได้ไม่แพ้ codeigniter หรือ macro framework ตัวอื่นๆเลย
Server Requirements
- PHP >= 7.1.3
- OpenSSL PHP Extension
- PDO PHP Extension
- Mbstring PHP Extension
วิธีการติดตั้ง Lumen PHP Framework
ก่อนอื่นให้เปิด Terminal หรือ Command Prompt ขึ้นมาแล้ว cd เข้าไปยังโฟนเดอร์หลักที่จะสร้างโปรเจค ตัวอย่างนี้แอดมินจะสร้างโปรเจคไว้ที่ E:\xampp-php7.3\htdocs
การติดตั้ง Lumen Framework ต้องตั้งผ่าน Composer ใครยังไม่ติดตั้ง composer ต้องติดตั้ง composer ลงเครื่องก่อนน่ะ
คำสั่งติดตั้ง Lumen
composer global require "laravel/lumen-installer"
การสร้างโปรเจคมี 2 แบบ
1.ใช้คำสั่ง lumen new
lumen new my-web
2.สร้างโปรเจคด้วย Composer โดยใช้คำสั่ง Create-Project
composer create-project --prefer-dist laravel/lumen my-web
หลังจากสร้างโปรเจคเสร็จแล้วให้ใช้คำสั่ง php -S localhost:8000 -t public เพื่อ start โปรเจค
php -S localhost:8000 -t public
จากนั้นให้เข้า browser ใส่ url >> localhost:8000 ถ้าขึ้นข้อความ Lumen (5.8.12) (Laravel Components 5.8.*)แสดงว่าการติดตั้ง Lumen เสร็จสมบูรณ์พร้อมใช้งานแล้วจ้า
การตั้งค่า Config ของ Lumen PHP Framework
การตั้งค่า Config ของ Lumen ให้ไปที่ไฟล์ .env ซึ่งในไฟล์จะมีค่าต่างๆ ให้ config ดังรูปด้านล่าง
APP_ENV=local
APP_DEBUG=false
APP_KEY=
APP_TIMEZONE=UTC
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=db_name_xxx
DB_USERNAME=root
DB_PASSWORD=xxx
CACHE_DRIVER=file
QUEUE_DRIVER=sync
APP_DEBUG=false คือการตั้งค่าให้แสดง error หรือเปล่า
CACHE_DRIVER=file คือการกำหนดการใช้ cache ถ้าเราไม่ได้ใช้คำสั่งที่เกี่ยวกับการทำ cache จะกำหนดหรือไม่ก็ได้ครับ
ฟีเจอร์บางส่วนของ Lumen PHP Framework
1Routing
Route ของ Lumen ก็จะคล้ายๆกับ php framework ตัวอื่นๆ คือใช้กำหนดว่าถ้าเข้ามาด้วย url นี้จะให้ไปทำงานที่ Controller ไหน Function ไหน
$router->get('xxx', 'ControllerName@functionName');
$router->get('foo', function () {
return 'Hello World';
});
$router->post('foo', function () {
//
});
<?php
$router->get($uri, $callback);
$router->post($uri, $callback);
$router->put($uri, $callback);
$router->patch($uri, $callback);
$router->delete($uri, $callback);
$router->options($uri, $callback);
Route Parameters
$router->get('user/{id}', function ($id) {
return 'User '.$id;
});
$router->get('posts/{postId}/comments/{commentId}', function ($postId, $commentId) {
//
});
<?php
$router->get('user/{id}', 'UserController@show');
รายละเอียดการใช้งาน Route > https://lumen.laravel.com/docs/5.8/routing
2Database
- Basic Queries
$results = app('db')->select("SELECT * FROM users");
$results = DB::select("SELECT * FROM users");
- Query Builder แอดมินใช้ตัวนี้บ่อยสุดอิๆ
$user = DB::table('users')->where('name', 'John')->first();
echo $user->name;
$users = DB::table('users')->count();
- Eloquent ORM
$flight = App\Flight::where('number', 'FR 900')->first();
$flights = App\Flight::find([1, 2, 3]);
3ระบบ Cache
Cache คือฟีเจอร์ที่ทำให้การแสดงผลข้อมูลไม่ต้องไป query ต่อ database ตลอดเวลายิ่งถ้าเว็บไหนที่มีคนเข้าเยอะๆต้องทำ Cache ไว้น่ะจ๊ะไม่งั้น Database ล่มแน่นอน
- File cache เป็นการทำ Cache แบบง่ายที่สุดแล้วล่ะและเหมาะกับเว็บที่ใช้ share hosting เพราะไม่ต้องลงโปรแกรมหรือ config ค่าอะไรเพิ่มเติมซึ่งเว็บ lnwquiz.com ก็ใช้ระบบ File cache น่ะจ๊ะ
$value = Cache::store('file')->get('foo');
- Database cache
Schema::create('cache', function ($table) {
$table->string('key')->unique();
$table->text('value');
$table->integer('expiration');
});
- Memcached
- .Redis
สุดท้ายนี้ขอให้ทุกคนสนุกกับการเขียนโปรแกรมน่ะจ๊ะบายบ๊ายเจอกันใหม่ในบทความหน้า