由於php基礎知識不紮實,沒有全面的瞭解函數的意義,通過閱讀yii框架,學習記錄每天的收穫,以便於加深自己的記憶。
2014年4月28日
realpath(path)-->realpath(‘protected’)-->E;/wnmp/www/book/protected
dirname($_SERVER['SCRIPT_FILENAME'])與dirname(__FILE__)的區別 前者是正在執行的腳本的目錄 後者是寫有此變量的文件所在的目錄
抽象類中沒有抽象方法,爲什麼還要定義成爲抽象類,這樣做的好處是什麼?---》這個需要思考,並深入的去了解。--多態,擴展,不能實例化等等有云,需要留給自己思考。
網友的回答:http://bbs.csdn.net/topics/290057815
我以爲回答比較好的如下:
2014年4月30日
yii社區高手的源碼分析:
http://www.yiiframework.com/forum/index.php?/topic/5457-%E5%89%8D%E4%B8%80%E9%98%B5%E5%86%99%E7%9A%84yii%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90/
1、spl_autoload_register()函數
spl_autoload_register(array("Yiibase",'autoload'))---將YiiBase類的靜態方法autoload 註冊爲類加載器。 PHP autoload 的簡單原理就是執行 new 創建對象或通過類名訪問靜態成員時,系統將類名傳遞給被註冊的類加載器函數,類加載器函數根據類名自行找到對應的類文件並include 。
2、http://www.docin.com/p-320674127.html&uid=26577911?bsh_bid=147181997
2014年5月4日
1、yii框架的目錄
|-framework 框架核心庫
|--base 底層類庫文件夾,包含CApplication(應用類,負責全局的用戶請求處理,它管理的應用組件集,將提供特定功能給整個應用程序),CComponent(組件類,該文件包含了基於組件和事件驅動編程的基礎類,從版本1.1.0開始,一個行爲的屬性(或者它的公共成員變量或它通過getter和/或setter方法??定義的屬性)可以通過組件的訪問來調用),CBehavior(行爲類,主要負責聲明事件和相應事件處理程序的方法、將對象的行爲附加到組件等等),CModel(模型類,爲所有的數據模型提供的基類),CModule(是模塊和應用程序的基類,主要負責應用組件和子模塊)等等
|--caching 所有緩存方法,其中包含了Memcache緩存,APC緩存,數據緩存,CDummyCache虛擬緩存,CEAcceleratorCache緩存等等各種緩存方法
|--cli YII項目生成腳本
|--collections 用php語言構造傳統OO語言的數據存儲單元。如:隊列,棧,哈希表等等
|--console YII控制檯
|--db 數據庫操作類
|--gii YII 代碼生成器(腳手架),能生成包括模型,控制器,視圖等代碼
|--i18n YII 多語言,提供了各種語言的本地化數據,信息、文件的翻譯服務、本地化日期和時間格式,數字等
|--logging 日誌組件,YII提供了靈活和可擴展的日誌記錄功能。消息記錄可分爲根據日誌級別和信息類別。應用層次和類別過濾器,可進一步選擇的消息路由到不同的目的地,例如文件,電子郵件,瀏覽器窗口,等等|--messages 提示信息的多語言
|--test YII提供的測試,包括單元測試和功能測試
|--utils 提供了常用的格式化方法
|--validators 提供了各種驗證方法
|--vendors 這個文件夾包括第三方由Yii框架使用的資料庫
|--views 提供了YII錯誤、日誌、配置文件的多語言視圖
|--web YII所有開發應用的方法
|---actions 控制器操作類
|---auth 權限認識類,包括身份認證,訪問控制過濾,基本角色的訪問控制等
|---filters 過濾器,可被配置在控制器動作執行之前或之後執行。例如, 訪問控制過濾器將被執行以確保在執行請求的動作之前用戶已通過身份驗證;性能過濾器可用於測量控制器執行所用的時間
|---form 表單生成方法
|---helpers 視圖助手,包含GOOGLE AJAX API,創建HTML,JSON,JAVASCRIPT相關功能
|---js JS庫
|---renderers 視圖渲染組件
|---services 封裝SoapServer並提供了一個基於WSDL的Web服務
|---widgets 部件
|---CArrayDataProvider.php 可以配置的排序和分頁屬性自定義排序和分頁的行爲
|---CActiveDataProvider.php ActiveRecord方法類
|---CController.php 控制器方法,主要負責協調模型和視圖之間的交互
|---CPagination.php 分頁類
|---CUploadedFile.php 上傳文件類
|---CUrlManager.php URL管理
|---CWebModule.php 應用模塊管理,應用程序模塊可被視爲一個獨立的子應用
等等方法
|--.htaccess 重定向文件
|--yii.php 引導文件
|--YiiBase.php YiiBase類最主要的功能是註冊了自動加載類方法,加載框架要用到所有接口。
|--yiic Yii LINUX 命令行腳本
|--yiic.bat YII WINDOW 命令行腳本
|--yiilite.php 它是一些常用到的 Yii 類文件的合併文件。在文件中,註釋和跟蹤語句都被去除。因此,使用 yiilite.php 將減少被引用的文件數量並避免執行跟蹤語句
2、參考鏈接http://www.cnblogs.com/bluecobra/archive/2011/11/30/2269207.html
2014年5月5日
1、extract函數
函數抽取數組鍵名作爲變量名
input
數組中的數字或者字符串的鍵名。參數 ¶
input
-
一個數組,包含了要返回的鍵。
search_value
-
如果指定了這個參數,只有包含這些值的鍵纔會返回。
strict
-
判斷在搜索的時候是否該使用嚴格的比較(===)。
返回值 ¶
返回 input
裏的所有鍵。
更新日誌 ¶
版本 | 說明 |
---|---|
5.0.0 | 增加了 strict 參數。 |
範例 ¶
Example #1 array_keys() 例子
<?php
$array = array(0 => 100, "color" => "red");
print_r(array_keys($array));
$array = array("blue", "red", "green", "blue", "blue");
print_r(array_keys($array, "blue"));
$array = array("color" => array("blue", "red", "green"),
"size" => array("small", "medium", "large"));
print_r(array_keys($array));
?>
以上例程會輸出:
Array ( [0] => 0 [1] => color ) Array ( [0] => 0 [1] => 3 [2] => 4 ) Array ( [0] => color [1] => size )
object
according
to scope.<?php
class foo {
private $a;
public $b = 1;
public $c;
private $d;
static $e;
public function test() {
var_dump(get_object_vars($this));
}
}
$test = new foo;
var_dump(get_object_vars($test));
$test->test();
?>
The above example will output:
array(2) { ["b"]=> int(1) ["c"]=> NULL } array(4) { ["a"]=> NULL ["b"]=> int(1) ["c"]=> NULL ["d"]=> NULL }