PHPCMS v9 分析(1)

最近公司要作微信接口開發。用asp.net 始終取不到微信用戶的openId,換了php卻能夠。因而把代碼改用PHP開發了。  
因而在項目中引入了PHPCMS V9這個框架。 學習PHP的第一份資料
  
其實很早就用PHPCMS V9了,可是一直沒有深刻研究。這些天正好仔細分析一下。
 一: 先簡單看了看PHP語法:
PHP是一種弱類型,解釋型,動態的語言,和C#不同,和javascript有那麼點類似。
PHP中的類沒有public修飾符。聽說php5已經開始由namespace,可是phpcms v9目前沒有使用。
 
類中函數的調用:
          剛用的時候老鬧心了。非靜態的方法是$this->方法名。我常常用this->。
          類中的靜態方法是類名::方法名.
 
 include,inlude_once,require,require_once
相似C#中的using仍是java裏的import ,不過這裏須要指明php文件的路徑。
由於  include 是一個特殊的語言結構,其參數不須要括號。在比較其返回值時要注意
處理返回值:在失敗時  include 返回  FALSE 而且發出警告。成功的包含則返回  1
 
若是來自遠程服務器的文件應該在遠端運行而只輸出結果,那用 readfile() 函數更好。另外還要格外當心以確保遠程的腳本產生出合法而且是所需的代碼
 
require 和  include 幾乎徹底同樣,除了處理失敗的方式不一樣以外。require 在出錯時產生  E_COMPILE_ERROR 級別的錯誤。換句話說將致使腳本停止而  include 只產生警告( E_WARNING),腳本會繼續運行。
 
 
 
 
 
include_once 語句在腳本執行期間包含並運行指定文件。此行爲和  include 語句相似,惟一區別是若是該文件中已經被包含過,則不會再次包含。如同此語句名字暗示的那樣,只會包含一次。
 
 
 
 
php 5 說是面向對象的,可是它和C#,java不同,並不能算是徹底的面向對象。
 
至少C# ,java除了main函數,都是類。php 5除了類還有獨立的define或者function 等。
 
 
二 phpcms v9 的基本結構:
 
【1】 caches 文件夾放着配置文件和緩存文件。 phpcms v9 使用了文件型緩存,固然也能夠配置memcache。
 
 【2】statics 目錄 放靜態文件JS,CSS,images
 
 【3】phpcms 是程序主文件。
      
         --libs 系統核心庫
        -- model文件夾    數據表模型,並不像C#活java 裏頭作ORm時,每一個數據表對應一個實體類,實體類每一個字段和數據表的字段對應。這裏的實體類只是指明瞭類對應的表而已。每個model 都繼承自父類model
 
       而這個model類,更像是早幾年甚至如今都用的SqlHelper。
       
       在phpcms v9中,每一個model對單表操做還能夠,想寫個聯合查詢是很難滴。目前我用視圖實現。即先作一個多表操做的視圖,而後在phpcms v9 裏放一個視圖的model,把視圖當表操做麼。
 
【4】 modules 目錄放着phpcms v9的全部模塊。
         每一個模塊至少有這麼幾個目錄,classes,functions,templates 。
          classes:能夠看作是控制器的基礎類吧
          functions:工具函數?
          templates : 這是給管理端操做這個模塊用的。
 
 
三. PHPCMS v9    的運行流程 
 
1:  index.php 調用base.php.
2:  定義變量,拆分路由,加載路由指定的module中的方法。
 
        其中用了幾個反射【不知道是否是能夠這麼稱呼】。
         class_exists 判斷控制器是否存在,
         method_exists 判斷方法是否存在。
         call_user_func(array($controller, ROUTE_A));  調用控制器裏的防範。
        在方法中include  php模板文件,齊活,一個網頁就這麼動起來了。
相關文章
相關標籤/搜索