Emmet hotkey sublime text 3

{ "keys": ["ctrl+t"], "command": "new_file" },

{ "keys": ["shift+alt+e"], "command": "open_dir", "args": {"dir": "$file_path", "file": "$file_name"}},

{ "keys": ["ctrl+alt+p"], "command": "prompt_select_workspace"},

{ "keys": ["ctrl+shift+r"], "command": "reindent" , "args": { "single_line": false }},

{ "keys": ["alt+r"], "command": "reveal_in_side_bar"},


{
    "keys": ["shift+ctrl+g"],
    "command": "emmet_wrap_with_abbreviation",
    "context": [{"key": "setting.is_widget",  "operand": false }]
},

{
    "keys": ["ctrl+alt+j"],
    "command": "emmet_go_to_tag_pair"
},

{
    "keys": ["shift+ctrl+;"],
    "command": "emmet_remove_tag"
},

{
    "keys": ["ctrl+'"],
    "command": "emmet_convert_data_url"
},

{
    "keys": ["shift+ctrl+'"],
    "command": "emmet_rename_tag"
},

{ "keys": ["ctrl+shift+j"], "command": "expand_selection", "args": {"to": "indentation"} },
{ "keys": ["ctrl+shift+a"], "command": "expand_selection", "args": {"to": "tag"} },

{ "keys": ["ctrl+j"], "command": "join_lines" },
{ "keys": ["ctrl+shift+d"], "command": "duplicate_line" },


Leearning Javascipt

Create Object (tạo đối tượng) có 2 cách

Object literals

//đối tượng có 1 thuộc tính và 1 phương thức (method)
var myCar = {
brand: 'Toyota',
run: function(){
console.log('running');
}
};

Object constructor

//Tạo 1 đối tượng mới
var myApple = new Object();

//Thêm các thuộc tính cho đối tượng
myApple.color = ‘red’;
myApple.shape = ’round’;
myApple.howSweet = function(){
console.log(‘I am sweet’);
};

Cách tạo hàng loạt các Object cùng loại/kiểu có cùng thuộc tính và phương thức như nhau:

Sử dụng mẫu khởi tạo:

function Fruit (_color, _name){
this.color = _color;
this.name = _name;

this.showName = function(){
console.log(this.name);
}
};

Với hàm khởi tạo này, ta có thể tạo hàng loạt các đối tượng kiểu Fruit như sau:

var mangoFruit = new Fruit('yellow', 'Mango');
var appleFruit = new Fruit('red', 'Apple');

Sử dụng prototype

function Fruit (_color, _name){
};

Fruit.prototype.color = ‘general_color’;
Fruit.prototype.name = ‘general_name’;
Fruit.prototype.showName = function(){
console.log(this.name);
};

Với cách này thì ta cũng vẫn sẽ sử dụng hàm Fruit() để tạo ra các đối tượng object như cách ở trên:

var mangoFruit = new Fruit('yellow', 'Mango');
var appleFruit = new Fruit('red', 'Apple');

 

Function được coi là một Object, bản thân nó cũng có một property tên là prototype
một prototype cũng là một object

Prototype của Object (dùng __proto__)
Prototype của Function (dùng để thêm property & method & có tính thừa kế)

Muốn một đối tượng được kế thừa thuộc tính & phương thức của một hàm khởi tạo thì các thuộc tính & phương thức phải được thêm vào qua prototype của function khởi tạo

Muốn thêm 1 thuộc tính & phương thức, mà cho phép kế thừa thì phải thêm qua prototype

Existing object & object Contructor

function Person(first, last, age, eye) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eye;
}

 

How to change the document root in XAMPP on windows

I have installed XAMPP in C drive on my windows. Today I thought I will move my installation to another directory.

After searching the web for couple of minutes, I got a solution that worked perfectly. Here are the steps you have to follow.

  1. Open the file httpd.conf from the location C:/xampp/apache/conf
  2. Search for DocumentRoot and you will get something like this

    DocumentRoot “C:/xampp/htdocs”

  3. Update the DocumentRoot to new location. For example, if you want to update the DocumentRoot to D:/www , then you will have the following line after updating the location

    DocumentRoot  “D:/www”

  4. Then find the Directory and you will fine something similar to

    <Directory “C:/xampp/htdocs”>

  5. Update it to new location like this

    <Directory “D:/www”>

  6. Then finally restart the Apache server using XAMPP control panel or manually.

That’s it, you are done. The DocumentRoot has been moved to new place successfully.

Create virual host in apache

Step 1) C:\WINDOWS\system32\drivers\etc\ Open the “hosts” file :

127.0.0.1 localhost
127.0.0.1 test.com
127.0.0.1 example.com

Step 2) xampp\apache\conf\extra\httpd-vhosts.conf

DocumentRoot C:/xampp/htdocs/test/
ServerName www.test.com

DocumentRoot C:/xampp/htdocs/example/
ServerName www.example.com

Step 3) C:\xampp\apache\conf\httpd.conf.

Scroll down to the Supplemental configuration section at the end, and locate the following section (around line 500),

Remove the # from the beginning of the second line so the section now looks like this:

#Virtual hosts
Include conf/extra/httpd-vhosts.conf

Step 4) Restart XAMPP and now run in your browser :

www.example.com or www.test.com

Set up WordPress by command line

WP-CLI: dùng để cài đặt wp, quản lý theme và plugin = command line. Việc này sẽ giúp cài đặt nhanh hơn trên server. Nếu không thích thì chỉ cần download wp về server = command line và cài đặt = giao diện như bình thường

  • Vào folder cần cài đặt wp
  • chạy lệnh bên dưới để download wp version mới nhất
wp core download --allow-root

Update WordPress command line:

wp core update --allow-root

Update all plugins:

wp plugin update --all

Update specific plugin:

wp plugin update woocommerce --version=1.x.x

Tham khảo thêm bài này:

Quản trị WordPress bằng lệnh với WP-CLI

 

Cách cài đặt wpcli trên Window 10

  • Download wp-cli.phar manually and save it to a folder, for example c:\wp-cli
  • Create new file with named wp.bat (please make sure that it’s wp.bat not wp.bat.txt)
  • Add variable to your Patch to make sure php & wp command line running (go to Control Panel > System > Advance system setting)
  • Check php wp-cli.phar –info , wp –info

Để command line chạy được trong Git Bash:

  • Tạo file wp (không có đuôi extension)
  • Copy & paste đoạn code sau:
#!/usr/bin/env sh

dir=$(d=${0%[/\\]*}; cd "$d"; pwd)

# See if we are running in Cygwin by checking for cygpath program
if command -v 'cygpath' >/dev/null 2>&1; then
   # Cygwin paths start with /cygdrive/ which will break windows PHP,
   # so we need to translate the dir path to windows format. However
   # we could be using cygwin PHP which does not require this, so we
   # test if the path to PHP starts with /cygdrive/ rather than /usr/bin
   if [[ $(which php) == /cygdrive/* ]]; then
       dir=$(cygpath -m $dir);
   fi
fi

dir=$(echo $dir | sed 's/ /\ /g')
"${dir}/wp-cli.phar" "$@"

Download toàn bô file phải tạo trong C:\wp-cli: >>> wp-cli

 

 

 

How to use GIT command line

Git clone: lấy một project mới về

Git checkout -b (branh-name): tách và tạo nhánh mới

Git checkout (branch-name): chuyển nhánh

Git pull: lấy code từ remote về local branch

Git add .  or Git add -A: chấp nhận các thay đổi trong code

Git commit -m “meassage”: đưa code lên local

Git push: đẩy code từ local lên remote branch

Git fetch: lấy code về remote/origin branch, khi khi đang trên bất kỳ nhánh nào.

Git merge (branch-name): gộp nhánh bất kỳ vào nhánh hiện tại (đang được checkout)

Xóa nhánh ở local

Git branch -d <branch_name>: xóa an toàn, chỉ xóa được khi đã được merge

Git branch -D <branch_name>: hard delete, xóa bất kể branch đã được merge hay chưa.

Xóa nhánh trên remote

git push –delete <remote_name> <branch_name>

Ex: git push –delete origin kiditran_branch

Lưu lại thay đổi khi có một việc dở dang xen ngang, mà chưa muốn tạo commit

Git stash save: lưu thay đổi

Git stash list: xem lại danh sách các thay đổi đã lưu

Xóa bỏ trạng thái của một vài commit

Git revert <commit_id>:  commit_id chỉ định sẽ bị xóa bỏ, các commit mới hơn vẫn được giữ nguyên

Git reset –hard  <commit_id>: đưa head về vị trí commit_id, loạt bỏ tất cả các thay đổi, stage sau thời điểm commit_id reset.

 

Phân biệt các branch: local, remote & origin

Trước khi push code lên remote cần phải kiểm tra xem trên remote có bất kỳ thay đổi nào không bằng cách dùng git fetch.

Git fetch: get source code from Remote to origin/remote, k cần phải chuyển sang nhánh develop để pull code về.

EX: get code from develop branch to origin/develop

Git merge origin/develop: để merge tất cả code từ develop vào my branch.

NOTE: khi này code mới nhất trên develop remote chưa được lấy về develop local, mà chỉ lấy về branch origin/develop, nếu muốn lấy trên local cần phải checkout nhánh develop và git pull.

Sau khi merge, nếu có bất kỳ conflict nào cần phải xử lý ngay trước khi push lên remote.