Skip to content

Instantly share code, notes, and snippets.

View tuanpht's full-sized avatar
200 OK!

Pham Tuan tuanpht

200 OK!
View GitHub Profile
tuanpht /
Last active June 7, 2023 07:42 — forked from jhoff/
Bash-only Laravel Artisan tab auto-complete

If you are an Oh-my-zsh user, see the Laravel 5 plugin

For the rest of us Bash users, all of the Laravel Artisan autocomplete solutions out there require installing a composer package to get a list of artisan commands. Turns out this isn't really necessary. Simply add the provided code in ~/.bash_profile ( or similarly sourced file ) and you'll get artisan command tab completes on any project on your system.

    local arg="${COMP_LINE#php }"

    case "$arg" in
tuanpht /
Last active June 26, 2022 09:01
Create local VPS with vagrant


A VPS is just a server machine (Ubuntu, CentOS,...) on the Internet which you can SSH into.

A local VPS is a VPS but running on your local machine thanks to Virtual Machine technology. It's very simple to create a VM thanks to Vagrant, so that you can use it to play with SSH, test deployment, test Ansible playbook,...


  1. Install VirtualBox
  2. Install Vagrant
  3. Create a virtual machine, for example: Ubuntu 20.04
tuanpht / aws-ses.php
Last active May 30, 2022 03:49
PHP/Laravel AWS SES multiple emails multiple recipients
use Aws\Ses\SesClient;
use Illuminate\Mail\Markdown;
// Create SES client
$ses = new SesClient([
'credentials' => [
'key' => config(''),
'secret' => config(''),
tuanpht / RegisterRequest.php
Created July 24, 2019 08:35
Laravel Form Request Testing
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rules\Unique;
class RegisterRequest extends FormRequest
const NAME_MAX_LENGTH = 255;
const EMAIL_MAX_LENGTH = 255;
tuanpht / php.code-snippets
Last active July 19, 2021 07:46
VS Code PHP snippet insert namespace, class, constructor
"Insert namespace": {
"prefix": "name",
"body": ["namespace $1${TM_DIRECTORY/[\\/]/\\\\/g};", "$2"]
"Construct": {
"prefix": "cons",
"body": ["${1:public} function __construct()", "{$2\n}$0"]
"Class": {
tuanpht / tmux-cheatsheet.markdown
Created April 27, 2021 01:16 — forked from MohamedAlaa/tmux-cheatsheet.markdown
tmux shortcuts & cheatsheet

tmux shortcuts & cheatsheet

start new:


start new with session name:

tmux new -s myname
tuanpht /
Created November 12, 2020 16:20
Laravel searchable field


$searchable = [

$petsQuery = Pet::where('user_id', '=', $request->user()->id);
// OR: $petsQuery = Pet::query(). For empty query
tuanpht / create-db.sql
Last active October 1, 2020 16:19
MySQL datetime vs timezone
# Create and insert data
CREATE TABLE `datetime_timestamp` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`datetime_value` datetime NOT NULL,
`timestamp_value` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`inputted_timezone` varchar(255) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
SET @@time_zone = 'SYSTEM';
tuanpht / User.php
Last active March 30, 2020 15:05
Laravel Eloquent integration test model save with DB
namespace App\Models;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Support\Facades\Hash;
class User extends Authenticatable
tuanpht /
Created June 21, 2018 07:05 — forked from wataridori/
Running Laravel Quick Start Project easily using Docker
  • Install Docker
    • Docker for Ubuntu:
      sudo apt-get update && apt-get install -y apt-transport-https ca-certificates
      sudo apt-key adv --keyserver hkp:// --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
      // Open the /etc/apt/sources.list.d/docker.list and add the following line then save it
      // Ubuntu 14.04
      deb ubuntu-trusty main

// Ubuntu 16.04