yii框架源碼閱讀學習點滴

  由於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函數

函數抽取數組鍵名作爲變量名



2014年5月21日  這一天閱讀了數據庫連接類

1、array  array_keys(array $inputs [,mixed $search_value=NULL [,bool $strict=false]])
    array_keys() 返回 input 數組中的數字或者字符串的鍵名。

參數 ¶

input

一個數組,包含了要返回的鍵。

search_value

如果指定了這個參數,只有包含這些值的鍵纔會返回。

strict

判斷在搜索的時候是否該使用嚴格的比較(===)。

返回值 ¶

返回 input 裏的所有鍵。

更新日誌 ¶

版本 說明
5.0.0 增加了 strict 參數。

範例 ¶

Example #1 array_keys() 例子

<?php
$array 
= array(=> 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
)

  


2、array  get_object_vars(object $object)
    Gets the properties of the given object,Gets the accessible non-static properties of the given 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
}
2014年5月23日 --這次閱讀了緩存的類
1、extension_loaded  --->用來判斷某一個擴展是否打開
2、dl  --->加載擴展
3、filemtime() -->文件的修改時間
4、發現了一個好的個人博客 http://www.phpac.com/315.html


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章