2007年5月15日 星期二

CakePHP使用手冊-全域函式與常數

轉貼自 http://www.ezluk.org/

全域函式與常數


本章列出一些使用Cake開發應用程式時常用到的全域函式與常數。



第一節


全域函式



這兒列出的是Cake裡每個地方都可以使用的函式。
其中有很多是為了包裝名字很長的PHP函式而設計(包裝型函式),當你想要短小精幹的函式為你重覆做一些事,那這就是你要的。
還有些(像vendor()和uses())可以用來引用(include)外部程式碼,或執行其他函式。


譯註:接下來會用"包裝型函式"代表Wrapper,此類的函式內容就是把所有的參數轉去呼叫另一個函式,
主要目的是減短函式名稱。




  • config


載入Cake的核心設定檔,如果成功的話就傳回true。



  • uses


  • string $lib1


  • string $lib2...




用來載入Cake的核心函式庫(放在cake/libs/)目錄內)。
用不含副檔名'.php'的函式庫檔名指定。



uses('sanitize', 'security');



  • vendor


  • string $lib1


  • string $lib2...




載入第三方函式庫(放在/vendors目錄內)。
用不含副檔名'.php'的函式庫檔名指定。



vendor('myWebService', 'nusoap');



  • debug


  • mixed $var


  • boolean $showHtml = false




如果應用程式的DEBUG層級不是0,就把$var字串印出。
如果$showHtml是true,URL資料會以流覽器視為字串的格式輸出。


譯註:如果$showHtml是true,'<'為被以'%lt;'取代,'>'會以’%gt;'取代。




  • a


傳回包裝型函式使用的參數陣列。


譯註:原始碼中的註解為:傳回內容存著傳入參數的陣列。例如: a('a', 'b')傳回 array('a', 'b')。



function someFunction()

{

    echo print_r(a('foo', 'bar'));

}



someFunction();



// output:



array(

    [0] => 'foo',

    [1] => 'bar'

)




  • aa






傳回包裝型函式使用的關聯式陣列


譯註:原始碼中的註解為:由傳入的參數建立關聯式陣列。例如:aa('a','b')傳回 array('a'=>'b')。



echo aa('a','b');


// 輸出:


array(

    'a' => 'b'

)




  • e


  • string $text




ehco()函式的包裝型函式。





  • low






strtolower()函式的包裝型函式。





  • up






strtoupper()函式的包裝型函式。





  • r


  • string $search


  • string $replace


  • string $subject




str_replace()函式的包裝型函式。





  • pr


  • mixed $data




便利的函式,功能和下列的程式相同:



echo "<pre>" . print_r($data) . "</pre>";

只有在DEBUG設為非零時才會把資料印出。





  • am


  • array $array1


  • array $array2...




將傳入的所有陣列結合成一個陣列。





  • env


  • string $key




由可用的管道取得環境變數。這個函式是準備在$_SERVER或$_ENV被關閉時使用的。



這函式還會負責在Server不支援時,模擬PHP_SELF和DOCUMENT_ROOT。
事實上,最好都用env()取代$_SERVER或getenv()(特別是如果你想要開放程式給別人用),因為他會自動模擬所有的狀況。





  • cache


  • string $path


  • string $expires


  • string $target = 'cache'




把$data的資料存放在CACHE/$path目錄內作為快取,CACHE預設為/app/tmp/。
$expires裡放的時間字串格式必需是strtotime()能接受的格式。
$target則可以是'cache'或'public'。


譯註:'public'時則暫存在WEB_ROOT/$path/目錄下。



  • clearCache


  • string $search


  • string $path = 'views'


  • string $ext




清除快取目錄內的檔案及子目錄。



若$search是字串,則名稱和他相同的目錄或檔名就會被由快取目錄裡移除。
$search還可以是陣列,將多組字串放在陣列中一次指定,便可一次刪除多個檔案或目錄。
如果$search內容是空的,則/app/tmp/cache/views/ 就會被清空。



$path參數用來指定要刪除的檔案與目錄放在/tmp/cache/裡,那個目錄裡。
預設值是'views',所以預設會去/app/tmp/cache/views/目錄內找檔案刪除。



$ext則用來指定要刪除檔案的副檔名。





  • stripslashes_deep


  • array $array




將陣列內所有元素的斜線('/')去除。



  • countdim


  • array $array




計算$array的維度。看是一維陣列,二維陣列...n維陣列。



  • fileExistsInPath


  • string $file




到include_path所指定的各目錄中找尋$file,如果找到則傳回路徑,找不到則傳回false。





  • convertSlash


  • string $string




把正斜線('/')換成底線('_'),若字串中第一個和最後一個字元是底線,則將它刪除。




第二節


CakePHP核心定義常數



ACL_CLASSNAME:指定目前Cakephp使用中的ACL類別名稱。
這個常數讓使用者用於整合第三方類別。



ACL_FILENAME:ACL_CLASSNAME指定的類別存放的檔名。



譯註:ACL 是Access Control List的縮寫,用於控制存取權限。




AUTO_SESSION:如果設成false,則在發出request時,程式不會自動呼叫session_start()。



CACHE_CHECK:如果設成false,會將整個應用程式中view的快取功能關閉。



CAKE_SECURITY:指定session的安全等級,CAKE_SESSION_TIMEOUT會跟者改變。
此值可以是低:'low',中:'medium',高:'high'。
依不同設定,CAKE_SESSION_TIMEOUT會被乘上一個值:





  1. low: 300





  2. medium: 100





  3. high: 10





CAKE_SESSION_COOKIE:應用程式使用的session cookie名稱。



CAKE_SESSION_SAVE:可以設成'php','file'或'database'。





  1. php:Cake使用PHP預設方式處理session(通常定義在php.ini中)。





  2. file:Session的資料會被存放在/tmp中。





  3. database: 使用Cake的session資料庫管理機制處理(請參考"Cake Session Component"一章)。





CAKE_SESSION_STRING:session管理時使用的亂數字串。



CAKE_SESSION_TABLE:存放session資料的資料表(如果CAKE_SESSION_SAVE被設成'database'時)。
如果預設的資料庫連線有設定資料表名稱前置詞,在此就不要再包含它了。



CAKE_SESSION_TIMEOUT:session過期的時間。這個值會再依CAKE_SECURITY被乘上一個值。



COMPRESS_CSS:如果設成true,CCS風格表將在輸出時被壓縮。
要啟動這個功能,必需讓web伺服器有寫入/var/cache 目錄的權限。
使用時,使用/ccss 風格表(不再是/css),或直接使用Controller::cssTag()。



DEBUG:定義CakePHP應用程式執行時,錯誤訊息回報層級。值由0到3:





  1. 0:產品模式。不輸出位何錯誤訊息和除錯訊息。





  2. 1:開發模式。警告,錯誤與除錯訊息都顯示。





  3. 2:和1一樣,不同的是以SQL指令輸出。





  4. 3:和2一樣,但會把目前物件的內容都下來(通常是controller)。





LOG_ERROR:錯誤常數。用來辨別記錄與除錯訊息。目前PHP支援LOG_DEBUG。



MAX_MD5SIZE: 執行md5()使用的最大資料量(bytes)。



WEBSERVICES: 如果設成true,將啟動Cake內建的webservices功能。




Section 3


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目錄路徑。


沒有留言:

網誌存檔

關於我自己

Aspire freedom , Hope to do Soming make self complete ~