全域函式與常數
本章列出一些使用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會被乘上一個值:
low: 300
medium: 100
high: 10
CAKE_SESSION_COOKIE:應用程式使用的session cookie名稱。
CAKE_SESSION_SAVE:可以設成'php','file'或'database'。
php:Cake使用PHP預設方式處理session(通常定義在php.ini中)。
file:Session的資料會被存放在/tmp中。
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:
0:產品模式。不輸出位何錯誤訊息和除錯訊息。
1:開發模式。警告,錯誤與除錯訊息都顯示。
2:和1一樣,不同的是以SQL指令輸出。
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目錄路徑。
沒有留言:
張貼留言