CakePHP 的 DB 設定 和 全域變數/常數 等設定, 應該在哪設, 怎麼使用等.
作者: Tsung
CakePHP 入門、安裝 及 其它設定和準備工作
CakePHP 總算最近有花時間好好玩一下, 來做個一連串的筆記吧~
首先要使用 CakePHP 前, 第一步先了解何謂 MVC(Model-view-controller):
- Model: 檢查資料型態/驗證, 與 DB 溝通(儲存/查詢) 等.
- Controller: 程式的流程, 商業邏輯等. 是 Model 與 View 的中間層
- View: 頁面瀏覽, 使用者看到的頁面就是這邊.
再來就是下載 CakePHP 來安裝看看囉~
註: 此篇為 CakePHP 1.1.x 版, 1.2.x 以上的, 可能要做些微調整.
Mplayer 快轉 index file 建立 與 讀取
在看影片的時後, 經常性的快轉, 特別是預告, 或者前面的歌之類的, 都會直接快轉的讓他跳過, 但是有些影片會說沒辦法快轉, 所以要幫他重新做一次index, 做完後就可以快轉囉~
一般小檔案就直接做 idx 即可:
mplayer -idx filename.avi
CSS 使用 px 和 em 的差異
CSS 在設計頁面的時後, 並不是說 px 就一定不要用, 只是要注意說, 畫面放大的時後, px 指定的是不會跟著一起放大, 所以我的做法是如下:
- 文字: 使用 em 或 %.
- 間距: 兩個 Module 的間距這種, 用 px (不然畫面放大, 間距也跟著放大, 也蠻難看的.
IE 偵測 Memory Leaks 的程式
IE 在寫 JavaScript 的時後, 如果沒有好好處理, 很容易產生 Memory Leaks.
PHP: 移除"同時寫入" MySQL 資料的程式(資料重覆)
規畫 DB 時沒注意到, 有一個欄位是這種狀況: 寫入前檢查是否有此 URL, 有的話, 就不再寫入, 這個現在一看就知道, 該加 UNIQUE KEY, 但是當初規劃時並沒注意到此事(或者是加的時後不能加), 然後自己測, 或者網站量小的時後是都不會有問題的, 但是會出問題的狀況, 會發生在同時寫入的時後, 同時寫入兩筆, 或者寫入第二筆時, 第一筆的資料臨時沒查到(系統太忙 或者 第一筆還沒寫完), 就會有兩筆以上的重覆資料.
這種狀況要把後來寫的那個 ID 拉出來, 砍掉後面的那個 ID(可能會有 2筆以上), 所以下述的程式就是把這些 ID 拉出來, 然後寫成 SQL 檔, 再手動執行砍掉的動作, 砍完後, 再加上 UNIQUE KEY 的屬性.
PHP: 將 CSS 檔 做排版的程式(inline, formatter)
有某人說要將 css selector "{}" 包住的值, 依照字母排列順序的排列(註), 所以先寫了 css_formatter.php, 後來發現某人寫程式的時後, 有時後會做其另一類的排版方式, 所以就再寫一個 css_inline.php(將格式先變成 一個 selector {} 一行
), 這樣子(inline)的格式才能給 css_formatter.php 正常吃下來, 並做排版的動作.
註: 依照字母順序來寫 css, 維護起來比較容易, 看起來也蠻漂亮的.(PS: IE hack 要特別處理一下, *, _ 要排在最後面, 所以順序會是 Global -> IE -> IE6)
Gmail 增加其它 Email 來當寄件者
使用 Google Apps 的 Gmail 時會遇到一個問題, 如果信箱有個 ex: service@DOMAIN_NAME, 然後這是共用的信箱(大家都會收到的信箱).
PHP 驗證 Email -檢查 DNS 的 MX 是否有通
驗證 Email 通常最簡單的就是判斷 '@', 要再準確一點, 就去判斷一下 DNS 的 MX 有沒有設囉~ 🙂
dig mx DOMAIN_NAME
這樣就可以列出 DOMAIN_NAME 的 MX 是設怎麼樣~
HTML 預設選取參數(checked/selected)
何時要用 checked, 何時用 selected, 常常都會搞混 .... 整理一下比較實在.
- checkbox: checked
- radio: checked
- select: selected
- 總之: input 欄位的都是用 checked, select 的用 selected.