CakePHP 的 DB 設定 和 全域變數/常數 等設定, 應該在哪設, 怎麼使用等.
下述內容詳細的文件參考, 可見: CakePHP 設定
設定 DB 帳號/密碼:
- mv app/config/database.php.default app/config/database.php
- vim app/config/database.php
- 就修改 $default 的 array, 另外如果有要連結其它 DB, 再去設其它變數, 不然就只留 $default 的變數 即可.
至於其它的全域變數設定 app/config/core.php 等, 文件都說明的很清楚, 開發時, 沒有特別需要應該不用動他, 要上線的話, 再來研究這個~
再來設定 首頁 要呈現哪個頁面:
- vim app/config/routes.php
- 修改 $Route->connect('/', array('controller' => 'posts', 'action' => 'index')); // 以 views/posts/index.thtml 為首頁
其它進階的設定, 一樣參考文件吧~ 🙂
再來來看全域變數和常數設定, 下述的詳細可見: CakePHP 全域函式與常數
全域的 function
- uses('sanitize', 'security'); // 載入 cake/libs 內的函式庫, 在此是載入 sanitize.php 和 security.php
- vendor('myWebService', 'nusoap'); // 載入 vendor 內的函式庫, 在此是載入 myWebService 和 nusoap
CakePHP 路徑常數 (在此做個紀錄而已, 就寫到目前還沒用到過)
- APP:應用程式目錄的路徑。
- APP_DIR:應用程式目錄的名稱。
- APP_PATH:應用程式中app目錄的絕對路徑。
- CACHE:快取檔目錄所在路徑。
- CAKE:應用程式的cake目錄所在路徑。
- COMPONENTS:應用程式的compoents目錄路徑。
- CONFIGS:設定檔目錄的路徑。
- CONTROLLER_TESTS:controller測試目錄的路徑。
- CONTROLLERS:應用程式的controller所在路徑。
- CSS:CSS檔目錄的路徑。
- ELEMENTS:element目錄的路徑。
- HELPER_TESTS:helper測試目錄的路徑。
- HELPERS:helper目錄的路徑。
- INFLECTIONS:inflactions目錄的路徑(通常在設定目錄裡)。
- JS:JavaScript檔存放目錄的路徑。
- LAYOUTS:layout存放目錄的路徑。
- LIB_TESTS:Cake函式庫測試目錄的路徑。
- LIBS:Cake函式庫目錄的路徑。
- LOGS:記錄檔存放目錄的路徑。
- MODEL_TESTS:model測試目錄的路徑。
- MODELS:model目錄的路徑。
- SCRIPTS:Cake script目錄的路徑。
- TESTS:測試目錄的路徑(model,controller等測試目錄的父目錄)。
- TMP:tmp目錄的路徑。
- VENDORS:vendors目錄的路徑。
- VIEWS:view目錄的路徑。
CakePHP Webroot 設定路徑 (一樣也紀錄一下而已, 到目前也還沒用到過)
- CORE_PATH:Cake核心函式庫路徑。
- WWW_ROOT:應用程式的webroot目錄的路徑。
- CAKE_CORE_INCLUDE_PATH:Cake核心函式庫路徑。
- ROOT:CakePHP最基底的index.php所在的目錄。
- WEBROOT_DIR:應用程式的webroot目錄路徑。
自己定義的 全域變數 和 函式庫(function)
下述的東西, 主要是寫如何設全域變數等, 應該是要盡量避免這種用法, 不然這樣子 Module/Controller/View 可能就沒辦法快速搬動到各個專案, 當成模組用, 不過通常專案總是會遇到很多意外, 知道這種做法還是很重要.. XD
除了上述預設的外, 要自己定義 全域變數/函式庫 的話, 則直接加在 app/webroot/index.php 即可, ex: 要 加一個 STATICHOST 的全域變數, 做法如下:
- vim app/webroot/bootstrap.php
- 於程式內加入:
define('STATICHOST', 'static.DOMAIN_NAME');
此行即可.
同理, 若自己平常已經寫好不少共用的 function 想要每頁都能 include 進來用, 也可以於此做個 include 的動作.
標準點的做法應該是要放在 app/vendors, 然後再 vim app/webroot/index.php, 於最下面那行用 vendor() 拉進來, 假設要拉 tools.php, rss.php:
vendor('tools', 'rss'); // 此行加在 bootstrap.php 的最後面, 就會自動把 vendors/tools.php, vendors/rss.php include 進來.
可以看一下 config 目錄中,有個檔案叫做 bootstrap.php
這個檔案會自動在 index.php 載入完成基本資料後執行。
很高興又看到有朋友加入把玩 CakePHP 喔..^_^..
原來如此, 感謝大大指點.. Orz...
剛開始摸, 還要多跟大大請教... 🙂
大侠,问个问题,怎么才能获得 Controller前面的那个URL?比如:http://www.example.com/myweb/cake/news/view/1 这个URL中的controller为 news,action为view 怎么获得http://www.example.com/myweb/cake/ 这个路径阿?多谢!
您可以參考 http://plog.longwin.com.tw/programming/2009/01/14/php-get-directory-file-path-dirname-2008
我剛剛寫了解法囉~ 🙂