CakePHP 入門 -設定DB、全域函式 與 常數

CakePHP 的 DB 設定 和 全域變數/常數 等設定, 應該在哪設, 怎麼使用等.

下述內容詳細的文件參考, 可見: CakePHP 設定

設定 DB 帳號/密碼:

  1. mv app/config/database.php.default app/config/database.php
  2. vim app/config/database.php
  3. 就修改 $default 的 array, 另外如果有要連結其它 DB, 再去設其它變數, 不然就只留 $default 的變數 即可.

至於其它的全域變數設定 app/config/core.php 等, 文件都說明的很清楚, 開發時, 沒有特別需要應該不用動他, 要上線的話, 再來研究這個~

再來設定 首頁 要呈現哪個頁面:

  1. vim app/config/routes.php
  2. 修改 $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 的全域變數, 做法如下:

  1. vim app/webroot/bootstrap.php
  2. 於程式內加入: 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 進來.


關於 Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.
本篇發表於 Programming。將永久鏈結加入書籤。

CakePHP 入門 -設定DB、全域函式 與 常數 有 5 則回應

  1. ㄚ凱 說道:

    可以看一下 config 目錄中,有個檔案叫做 bootstrap.php
    這個檔案會自動在 index.php 載入完成基本資料後執行。

  2. ㄚ凱 說道:

    很高興又看到有朋友加入把玩 CakePHP 喔..^_^..

  3. Tsung 說道:

    原來如此, 感謝大大指點.. Orz...
    剛開始摸, 還要多跟大大請教... 🙂

  4. small 說道:

    大侠,问个问题,怎么才能获得 Controller前面的那个URL?比如:http://www.example.com/myweb/cake/news/view/1 这个URL中的controller为 news,action为view 怎么获得http://www.example.com/myweb/cake/ 这个路径阿?多谢!

發表迴響