วิธีติดตั้ง Lumen PHP Framework ตัวเล็กเร็วแรงทรงพลังจาก Laravel


🕑 8 ก.ย. 2562
วิธีติดตั้ง 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

คำสั่งสร้างโปรเจคของ Lumen

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

คำสั่ง start โปรเจค Lumen

จากนั้นให้เข้า browser ใส่ url >> localhost:8000  ถ้าขึ้นข้อความ Lumen (5.8.12) (Laravel Components 5.8.*) แสดงว่าการติดตั้ง Lumen เสร็จสมบูรณ์พร้อมใช้งานแล้วจ้า

ติดตั้ง 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


สุดท้ายนี้ขอให้ทุกคนสนุกกับการเขียนโปรแกรมน่ะจ๊ะบายบ๊ายเจอกันใหม่ในบทความหน้า

เทพควิช-lnwquiz