Menu

Thursday, November 21, 2019

[Laravel - Package] วิธีการติดตั้งและตั้งค่า Laravel Permission
[Laravel - Package] How to Install and Config Laravel Permission

laravel-permission เป็น package สำหรับจัดการ roles และ permissions ของ user ใน database

วิธีการติดตั้ง

  1. สั่งติดตั้ง laravel-permission package
  2. composer require spatie/laravel-permission
  3. สร้างไฟล์ migration ของ package ใน project
  4. php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider" --tag="migrations"
    
  5. รัน migrate เพื่อสร้างตารางในฐานข้อมูล
  6. php artisan migrate
    
  7. สร้างไฟล์ config ของ package ใน project
  8. php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider" --tag="config"
    

Wednesday, November 20, 2019

[Laravel - Package] การสร้าง PHPDOC สำหรับ Laravel Model
[Laravel - Package] How to Generate PHP Document for Laravel Model

เราสามารถสร้าง PHPDOC ของ Laravel Model ได้ง่ายๆ ดังนี้
  1. ติดตั้ง Package Laravel IDE Helper เข้าไปใน Project โดยรันคำสั่งต่อไปนี้
    composer require --dev barryvdh/laravel-ide-helper
    
  2. รันคำสั่งต่อไปนี้ เพื่อสร้าง PHPDOC ของ Laravel Model 
    php artisan ide-helper:models -R
    

Monday, November 18, 2019

[VSCODE] วิธีการย่อโค้ดในไฟล์โดยอัตโนมัติใน Visual Studio Code
[VSCODE] How to Automatically Fold Code Files in Visual Studio Code

หลายๆครั้งที่เราเขียนโค้ด โดยที่ในหนึ่งไฟล์จำเป็นต้องมี Function จำนวนมาก เมื่อเราต้องการแก้ไขหรือเรียกใช้ฟังก์ชั่นใดฟังก์ชั่นหนึ่ง เราจำเป็นต้องเลื่อนหน้าจอขึ้นลงหลายครั้ง เพื่อหาโค้ดตำแหน่งที่เราต้องการ

การย่อฟังก์ชั่นเป็นวิธีนึงที่จะช่วยลดเวลาในเลื่อนหาโค้ดได้ แต่เนื่องจากมี Function จำนวนมาก การย่อฟังก์ชั่นทีละฟังก์ชั่นนั้นใช้เวลามาก

ดังนั้นเราจะใช้วิธีการย่อฟังก์ชั่นโดยอัตโนมัติ โดยใช้ extension ชื่อ Auto Fold ซึ่ง extension ตัวนี้จะย่อ Function และส่วนต่างๆของโค้ดให้เราโดยอัตโนมัติ เมื่อเราเปิดไฟล์

Tuesday, November 12, 2019

[PHP] วิธีการสร้าง Slug จากข้อความที่กำหนด
[PHP] How to Slugify a String

Slug เป็น Identifier ประเภทหนึ่งที่ใช้อ้างอิงถึงข้อมูลเช่นเดียวกับ id ใน database แตกต่างกันตรงที่ Slug เป็น identifier ที่คนสามารถอ่านเข้าใจ

โค้ดสำหรับสร้าง Slug จากข้อความที่กำหนดเป็นดังนี้
public static function slugify($str, $delimiter = '-')
{
    // Replace none alphanumeric with delimiter
    $str = preg_replace('/[^A-Za-z0-9]+/', $delimiter, $str);

    // Replace duplicated delimiter
    $str = preg_replace("/$delimiter+/", $delimiter, $str);

    // Trim delimiter
    $str = trim($str, $delimiter);

    // Convert to lower case
    $str = strtolower($str);

    return $str;
}

Tuesday, November 5, 2019

[Docker] วิธีการแก้ไขข้อผิดพลาด "SSL error: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version"
[Docker] How to Fix "SSL error: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version"

หลังจากที่รันคำสั่งของ laradock ดังต่อไปนี้ผ่าน Docker Toolbox on Windows
docker-compose up -d nginx workspace mysql phpmyadmin 
จะได้ข้อผิดพลาดตามด้านล่างนี้
ERROR: SSL error: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version (_ssl.c:661)
วิธีแก้ไข คือ ให้รันคำสั่งตามข้างนี้ก่อน แล้วจึงรันคำสั่งข้างต้นอีกที
export COMPOSE_TLS_VERSION=TLSv1_2
กรณีที่ต้องการตั้งค่าถาวรให้เพิ่มคำสั่งข้างบนในไฟล์ ~/.bash_proflle