[Yii2] Why Yii2 Framwork – Yii2 框架選型指南

Introduction 為什麼選擇Yii2作為PHP Framework。 特色 Application Components Components事先定義,透過Magic Method用到才new出來,效能與結構兼具考量。 概念如同CodeIgniter 3的Library(不做Alias),在單一Request cycle中為一次性啟動物件(Singleton)。 Asset Manager Assets支援物件導向管理,並且支援application內動態生成(適合用在Composer assets)。特色包含繼承、載入順序、重複載入防止。 保留Controller作為預設路由 如同CodeIgniter,預設使用Controller資料夾結構映射Route,但也支援自訂Route Map。 Yii2 Url Manager的Rule還可以支援URL生成比對,對應的Route Value在Url::to()宣告是可以自動生成Route Key。例如,’test’ => ‘site/action’的rule在URL::to設定site/action實際會生成test。 Pure Template Engine PHP本身就是個樣板引擎! Yii2使用原生PHP達到框架View Layout,相對於Laravel額外多一層打造的Blade引擎或CodeIgniter沒架構的純粹View引入法,Yii2扮演著中庸最適解決方案。 原理是使用規範的嵌入點打造每個Layout,藉由Controller決定選用的Layout套入Content View。 …補齊中…

[Yii2] Yii 2 Advanced Template 開發流程指南

Intro Yii 2 Advanced Project Template 適合前後站台Spec開發模板。 Dev – 開發人員 建置與更新其實與Composer流程相同: ./init –env=Development –overwrite=All composer install Prod/Stage – 佈署 Stage的建置與更新也相同,唯獨佈署時Stage可以包固定流程以確保每次更新: ./init –env=Production –overwrite=All composer install 設定檔 設定檔位於/environments內,更新後對應的環境得再跑一次init。

[Network] Wireshark 指令&過濾速查指南

Intro Wireshark(前稱Ethereal)是一個免費開源的網路封包分析軟體。網路封包分析軟體的功能是截取網路封包,並盡可能顯示出最為詳細的網路封包資料。 Download Wireshark 建議使用安裝版,像Winpcap這種Lib需要連帶安裝 設定 Name Resolution Edit > Preferences > Name Resolution > Resolve network(IP) addresses 過濾 Filter Bar左邊即有Display Filters可以快速使用。 For example: # IP && port ip.addr == 123.18.2.20 && tcp.port != 80

[lftp] LFTP指令指南|mirror鏡像 – lftp Command Guide

LFTP連線 | 基本操作 | 連線設定 | FTPS| SFTP Intro lftp在這年頭還是有機會用到,像被綁架的主機環境僅提供FTP Access。 至於為何使用lftp? 使用過ftp就知道…連folder控制都成問題。 文件:LFTP – the manual page lftp連線 lftp [-d] [-e cmd] [-p port] [-u user[,pass]] [site] For example: lftp www.yourdomain.com -u username,password 也可以先連線至site後再使用login: lftp www.yourdomain.com login <user> [<pass>] […]

[Network] Coin-Hive (coinhive.com) Block – 惡意廣告挖礦防範

Coin-Hive猖狂了Javascript惡意挖礦市場,實在令人看不下去。 想要體驗測試被挖礦的話,可以到這篇網頁:http://blog.xuite.net/jason_kuso/kuso/556581915 進入後即可查看CPU使用量;最後測試日期:2018-02-13 Hosts解法 C:\Windows\System32\drivers\etc: 127.0.0.1 coinhive.com 瀏覽器擴充套件解法 畢竟Coinhive只是其中一間做這種的,要防範多種還是得靠社群的力量: uBlock Origin AdBlocker Ultimate

[PHP] 三元運算式 – Ternary Operator (?:) – 簡化if (符號:問號/冒號 | ? | : )

簡介 三元運算子,在許多程式語言都會有,基本上您可以把它想成是if的一種簡化. 直接來看例子比較: // Example usage for: Ternary Operator $action = (empty($_POST[‘action’])) ? ‘default’ : $_POST[‘action’]; // The above is identical to this if/else statement if (empty($_POST[‘action’])) { $action = ‘default’; } else { $action = $_POST[‘action’]; } 可以直接參考官方文件:PHP Comparison […]

[MySQL] InnoDB Transaction – 交易指南 (SELECT … FOR UPDATE)

鎖資料列(可讀/不可讀) MySQL Document 14.5.2.4 Locking Reads 主要分為sharedLock與lockForUpdate: sharedLock locks only for write, lockForUpdate also prevents them from being selected Pessimistic Locking (SELECT … FOR UPDATE) 談到pessimistic concurrency control(Lock row for read),實作上再Transaction內使用: SELECT … FOR UPDATE 則結果列將會被鎖定且不可讀,應用上可做不重複流水號等等。

[Linux] 網路卡設定 – Network Configuration – CentOS/Ubuntu

CentOS 官網文件:14.1. Network Configuration Files Path: /etc/sysconfig/network-scripts/ 依照每張網卡擁有各自設定檔: ifcfg-eth0 ifcfg-eth1 新增流程: 如上格式新增完成一張網卡設定檔後,啟用該編號 ifup eth1 設定範例: DEVICE=eth1 BOOTPROTO=static ONBOOT=yes IPADDR=192.168.0.100 NETMASK=255.255.255.0 Centos 預設 ONBOOT 是關閉的,開啟才能開機自動啟用網卡 Debian resolv.conf – Debian Wiki networking – Where should I configure DNS in Debian 11? – […]

[PHP][HTML][JS] 網頁自動轉址/導向頁面範例 301 & 302

HTML HTML Meta Refresh 效果同於 JS location.replace(),Browser 不會產生新的 history.state: <meta http-equiv="refresh" content="0;url=http://code.yidas.com" /> Example HTML page: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="refresh" content="0;url=http://code.yidas.com" /> <title>Redirection</title> </head> <body></body> </html> Front-End Javascript Replace – 轉導取代 history.state (Moved Permanently) <script>location.replace("http://code.yidas.com");</script> […]