[HTML] IE 相容性檢視問題

今天收到客戶反應IE有問題

檢查一下發現是瀏覽器判斷內容後自動選擇IE舊版本模式下去做相容性檢視

大部分情況下在html head區塊宣告X-UA-Compatible指定IE瀏覽模式即可解決:

<meta http-equiv="X-UA-Compatible" content="IE=11" / >

 

[ZendFramework 2] 頁面接值

在Zend Framework 2頁面接值可使用Zend\Mvc\Controller\Plugin\Params
Zend Controller Plugins
Controller Plugins 預設會被預先載入,所以不需要額外用use載入。

$this->params()->fromRoute(); // Route Match
$this->params()->fromHeader(); // Header
$this->params()->fromQuery(); // Get
$this->params()->fromPost(); // Post
$this->params()->fromFiles(); // Files

 

[PHP] 判斷json格式資料

直接利用json_decode

<?php
$str_1 = '{"number":"21","data":"abc"';
$str_2 = '<status>inherit</status><parent>113</parent>';
// output: true
echo ( json_decode($str_1) ? 'true' : 'false' );
// output: false
echo ( json_decode($str_2) ? 'true' : 'false' );
?>

[Git] tag 操作

一個專案如果 commit 了 N 次,就算 commit message 寫得很完整,如果要很快的找到特定版本也是有點困難。

利用 git tag 幫 commit 加入標籤,操作上就更方便迅速。

# 列出所有標籤
git tag

# 新增一個標籤,名稱為 my-tag
git tag my-tag

# 如果要自訂註解,可以利用參數 -m,沒有加 -m 的話預設會以 HEAD (當前版本) commit message 為標籤的 message
git tag my-tag -m "My tag message."

# 如果要寫多行註解,可以利用參數 -a 開啟編輯器編寫
git tag -a my-tag

# 從指定標籤開一個新 branch
git branch new-branch my-tag

# 查看標籤詳細資料
git show my-tag

# 針對指定 commit 做標籤
git tag my-tag d3a0dcb

# push 指定標籤 (多個標籤以空白隔開)
git push origin my-tag

# push 所有 tag
git push --tags

# 刪除本機端指定標籤 (多個標籤以空白隔開)
git tag -d my-tag

# 刪除本機端所有標籤
git tag | xargs git tag -d

# 刪除遠端指定標籤 (多個標籤以空白隔開,但是每個標籤前面都要加上 :refs/tags/)
git push origin :refs/tags/my-tag

 

有關 Tag update:

在更新本機標籤時需要使用 git fetch,而不是 git pull

git remote update 雖然會把新的標籤拉下來

但是若兩端皆存在相同名稱的標籤,且遠端版本較新時

git remote update 並不會更新本機標籤

由於標籤和 branch 性質不相同,如果要更新標籤,需要在強制模式 (參數 --force) 下執行 (除了 fetch)

以下為更新標籤的操作方式

# 覆寫標籤 (以當前 branch 最後一次的 commit 寫入)
git tag -f my-tag

# 覆寫遠端指定標籤 (多個標籤以空白隔開)
git push -f --follow-tags origin my-tag

# 覆寫遠端所有標籤 (本機端不存在的標籤不會覆寫上去)
git push -f --tags

# 從遠端覆寫本機端所有標籤 (遠端不存在的標籤不會被覆寫)
git fetch --tags

 

為標籤重新命名:

Git 本身並沒有辦法讓標籤直接重新命名

因此需要用建立新標籤 + 移除舊標籤的方式達成

# 使用 old-tag 的 commit 建立新標籤 new-tag
git tag new-tag old-tag

# 刪除本機端舊標籤
git tag -d old-tag

# 刪除遠端舊標籤
git push origin :refs/tags/old-tag

# 上傳新標籤
git push origin new-tag

 

如果專案有多人協作

請通知你的夥伴們執行 git pull --prune --tags

否則舊標籤仍然會存在於他們的電腦上

且他們在 push 時就很有可能又把舊標籤 push 上去


Reference: git tag – How do you rename a Git tag? – Stack Overflow