tp3.2.3的架構模塊

                一.url模式

                        ThinkPHP支持的URL模式有四種:普通模式、PATHINFO、REWRITE和兼容模式,可以設置URL_MODEL參數改變URL模式。

                        1.普通模式:


                普通模式也就是傳統的GET傳參方式來指定當前訪問的模塊和操作,例如: http://localhost/?m=home&c=user&a=login&var=value

                m參數表示模塊,c參數表示控制器,a參數表示操作(當然這些參數都是可以配置的),后面的表示其他GET參數。

                如果默認的變量設置和你的應用變量有沖突的話,你需要重新設置系統配置,例如改成下面的:

                'VAR_MODULE'            =>  'module',     // 默認模塊獲取變量
                'VAR_CONTROLLER'        =>  'controller',    // 默認控制器獲取變量
                'VAR_ACTION'            =>  'action',    // 默認操作獲取變量

                上面的訪問地址則變成: http://localhost/?module=home&controller=user&action=login&var=value


                    2.PATHINFO模式:

                PATHINFO模式是系統的默認URL模式,:http://localhost/index.php/home/user/login/var/value/

                    3.REWRITE模式:


                REWRITE模式是在PATHINFO模式的基礎上添加了重寫規則的支持,可以去掉URL地址里面的入口文件index.php,但是需要額外配置WEB服務器的重寫規則。

                如果是Apache則需要在入口文件的同級添加.htaccess文件,內容如下:

                <IfModule mod_rewrite.c>
                 RewriteEngine on
                 RewriteCond %{REQUEST_FILENAME} !-d 
                 RewriteCond %{REQUEST_FILENAME} !-f 
                 RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
                 </IfModule>

                接下來,就可以用下面的URL地址訪問了: http://localhost/home/user/login/var/value

                     4.兼容模式:


                兼容模式是用于不支持PATHINFO的特殊環境,URL地址是: http://localhost/?s=/home/user/login/var/value

                可以更改兼容模式變量的名稱定義,例如:

                'VAR_PATHINFO'          =>  'path'

                PATHINFO參數分隔符對兼容模式依然有效,例如:

                // 更改PATHINFO參數分隔符
                'URL_PATHINFO_DEPR'=>'-',

                使用以上配置的話,URL訪問地址可以變成: http://localhost/?path=/home-user-login-var-value


                二.MVC 

                        MVC:(Model-View-Controller,模型-視圖-控制器)


                三.CBD

                        CBD(核心Core+行為Behavior+驅動Driver)


                四.命名空間

                        命名空間是一種封裝事物的方法。


                            在PHP中,命名空間用來解決在編寫類庫或應用程序時創建可重用的代碼如類或函數時碰到的兩類問題:

                用戶編寫的代碼與PHP內部的類/函數/常量或第三方類/函數/常量之間的名字沖突。

                為很長的標識符名稱(通常是為了緩解第一類問題而定義的)創建一個別名(或簡短)的名稱,提高源代碼的可讀性。

                五.自動加載

                        自動加載優先級


                       在實際的應用類庫加載過程中,往往會涉及到自動加載的優先級問題,以Test\MyClass類為例,自動加載的優先順序如下

                判斷是否有注冊了Test\MyClass類庫映射,如果有則自動加載類庫映射定義的文件;

                判斷是否存在Library/Test目錄,有則以該目錄為初始目錄加載;

                判斷是否有注冊Test根命名空間,有則以注冊的目錄為初始目錄加載;

                如果以上都不成立,則以Test為模塊目錄進行初始目錄加載;

                        然后以上面獲取到的初始目錄加載命名空間對應路徑的文件;

                六.應用模式

                    ThinkPHP支持應用模式定義,每個應用模式有自己的定義文件,用于配置當前模式需要加載的核心文件和配置文件,以及別名定義、行為擴展定義等等。除了模式定義外,應用自身也可以獨立定義自己的模式文件。

                     *每個入口文件僅能定義一個應用模式,所以,如果需要對相同的應用模塊設置不同的應用模式訪問,就可以通過增加入口文件的方式來解決。


                七.項目編譯

                    1.應用編譯緩存

                            編譯緩存的基礎原理是第一次運行的時候把核心需要加載的文件去掉空白和注釋后合并到一個文件中,第二次運行的時候就直接載入編譯緩存而無需載入眾多的核心文件。當第二次執行的時候就會根據當前的應用模式直接載入編譯過的緩存文件,從而省去很多IO開銷,加快執行速度。

                    2.運行Lite文件


                            運行Lite文件的作用是替換框架的入口文件或者替換應用入口文件,提高運行效率。因為默認生成的文件名為lite.php,并且是運行時動態生成,因此稱之為運行Lite文件。

                *Lite文件的特點包括:

                運行時動態生成;

                常量定義為針對當前環境;

                支持定義需要編譯的文件列表;

                支持生成Lite文件的名稱;


                無數據提示還沒有評論,樓主喊你快去搶前排~~~我要評論
                微信掃碼登陸

                打開 微信
                掃一掃登錄

                phpstudy使用視頻教程 pk牛牛平台总代