[Laravel] 使用 MigrateSpecific 遷移指定檔案到資料庫

當我們將 migration file 遷移到資料庫後,日後想要直接修改原先的 migration file 而不是新增一個去做結構變更時,可以透過 migrate:refresh 重新遷移,但是如果前一次遷移包含多個檔案時,這些資料表都會受到影響;若想要修改的資料表不屬於上一個批次(batch),透過 –step 選項去做遷移,影響範圍就會更大。

常見的做法是建立一個臨時目錄,將 migration file 放進去後執行遷移,但是這個做法僅適用於第一次遷移;另一種方式是修改資料表 migrations 的批次號碼,讓指定的 migration file 成為上一個批次。

這些都是臨時性做法,若是有很多批要修改就會很麻煩,所以我就寫了一個小工具,之後用一行指令就可以解決這個問題。

 

Package Name: MigrateSpecific
Version: 1.2.1
Site: https://github.com/caloskao/migrate-specific

Read more “[Laravel] 使用 MigrateSpecific 遷移指定檔案到資料庫”

[PHP] 提升 json_encode() 資料可讀性

PHP 可藉由 json_encode()json_decode() 來編碼與解碼 JSON 格式的資料,在一般情況下不需要特別給予任何參數,但如果將 JSON 格式資料直接儲存的話,預設是儲存一行文,在不靠任何工具的前提下僅以肉眼辨識會顯得有點吃力。

$data = [
    '5b8e2e456106f8.12710761' => [
        'id' => '5b8e2e456106f8.12710761',
        'description' => '',
        'options' => [],
        'size' => 1243916,
        'create_at' => '2018-09-04 15:04:02'
    ]
];
echo json_encode($data);

 

輸出如下:

{"5b8e2e456106f8.12710761":{"id":"5b8e2e456106f8.12710761","description":"","options":[],"size":1243916,"create_at":"2018-09-04 15:04:02"}}

 

如果想要提升 JSON 格式資料的可讀性,只需要將 json_encode() 的第二個參數設為 JSON_PRETTY_PRINT 即可。

echo json_encode($data, JSON_PRETTY_PRINT);

 

輸出:

{
    "5b8e2e456106f8.12710761": {
        "id": "5b8e2e456106f8.12710761",
        "description": "",
        "options": [],
        "size": 1243916,
        "create_at": "2018-09-04 15:04:02"
    }
}

 

PHP 5.6.6 以上可選擇的參數共有 11 個,詳細說明可見 PHP 官網 

 

 

 
 

[PHP] 序列化資料線上編輯器

PHP 可以透過 serialize() 將物件轉換成序列化文字資料後儲存在任何地方,需要使用的時候再透過 unserialize() 進行反序列化後得到原始物件,但因為序列化資料會記錄資料長度,因此如果想直接修改序列化資料的內容,需要連同資料長度也一起算進去,手動修改時麻煩且容易出錯。這時候可以透過 Serialized PHP Editor  這個 PHP 序列化資料線上編輯器進行修改就會方便很多。

Read more “[PHP] 序列化資料線上編輯器”

[Ubuntu] 安裝 Apache HTTP Server 2.4 + PHP 7.1 + PHP-FPM

操作環境:
OS: Ubuntu Server 16.04.3 LTS amd64
Apache Version: 2.4.27
PHP Version: 7.1.8

 

Step 1. 更新 APT Source,取得最新版套件資訊

# 安裝software-properties-common (已安裝者可跳過此步驟)
sudo apt-get install -y software-properties-common

# 加入 Apache PPA
sudo add-apt-repository -y ppa:ondrej/apache2

# 加入 PHP PPA
sudo add-apt-repository -y ppa:ondrej/php

# 更新套件清單
sudo apt-get update

Read more “[Ubuntu] 安裝 Apache HTTP Server 2.4 + PHP 7.1 + PHP-FPM”