FleaPHP的命名規則和目錄結構初看上去比較復雜,但習慣以后,你會發現這種命名規則帶來許多好處。因此像ZendFramework也是" />

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

FleaPHP 開發指南 - 4. 命名規范和目錄結構

系統 2820 0
<iframe align="center" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog336280.html" frameborder="0" width="336" scrolling="no" height="280"></iframe>

FleaPHP 的命名規則和目錄結構初看上去比較復雜,但習慣以后,你會發現這種命名規則帶來許多好處。因此像 Zend Framework 也是采用同樣的做法。

當然,FleaPHP 對于應用程序的命名規則和目錄結構沒有強制性要求。只不過采用一致的命名規則和目錄結構,可以方便對應用程序維護。同時 FleaPHP 應用程序開發者之間也可以更容易的進行協作。


全局函數的命名規則

全局函數的命名規則是用“_”分隔全小寫的單詞。例如 get_cache()、echo_h()。同時,函數的名字采用“動詞+賓語”的形式。例如 write(動詞)_cache(賓語)。

不過有些全局函數為了和 PHP 中已有的類似函數保持一致,采用了不同的命名方式(順便抱怨一下,PHP 自身的全局函數命名比較混亂,各種形式的都有)。


類的命名規則

所有 FleaPHP 自帶的類,都以 FLEA_ 開頭。然后根據用途命名。例如 FLEA_Controller_Action、FLEA_Helper_ImgCode。 然后將類名字中的“_”替換為目錄分隔符,就是這個類的定義文件所在位置。

舉例:

FLEA_Controller_Action 類,保存文件為 FLEA/Controller/Action.php
FLEA_Db_TableDataGateway 類,保存文件為 FLEA/Db/TableDataGateway.php

這種命名規則和目錄結構的優缺點如下:

優點:

  • 避免命名沖突
  • 根據類名字就能找到文件存放位置
  • 應用程序中可以使用 FleaPHP 的 import()、load_class() 函數方便的載入類定義文件
  • 如果使用 PHP5,可以很方便的用 __autoload() 來自動載入需要的類定義:
      
        
          <?php </span>
          
            function
          
           __autoload(
          
            $className
          
          ) { load_class(
          
            $className
          
          );}
          
            ?>
          
        
      
    

缺點:

  • 類名字較長,不便于輸入,例如 FLEA_Com_RBAC_UsersManager
  • 也許和現有習慣不同,需要時間來適應

對于第一個缺點,使用 Zend Development Environment 或者 Eclipse 這樣的 IDE 可以緩解。這些 IDE 提供強大的輸入自動完成功能,通常輸入類名字的開頭幾個字母,就會顯示候選列表讓開發者選擇。


變量和常量命名

在 FleaPHP 中,變量分為全局變量、臨時變量和模版變量三類。

  • 全局變量和常量

    全局變量和常量都使用全大寫,以“_”分隔。例如 $GLOBALS['CLASS_PATH'] FLEA_DIR 。不過 FleaPHP 中盡量避免了使用全局變量和常量,因此一般來說不會和應用程序產生沖突。

  • 臨時變量

    函數、類方法中使用的變量都是臨時變量,命名規則是第一個單詞小寫,后續的單詞第一個字母大寫。例如 $requestFilters $dispatcherClass 等。

  • 模版變量

    之所以要把模版變量單獨列出來,是因為不同的模版引擎對變量名有不同的規范。從我個人來說,我傾向于模版變量使用全小寫單詞,并以“_”分隔,例如 $latest_products_list 。這樣在程序里面一眼就能看出哪些變量是用于模版的。


FleaPHP 的目錄結構

一個典型的 FleaPHP 應用程序具有如下的目錄結構:

這個應用程序的目錄主要分為 WebLibs 和 WebRoot。其中 WebLibs 保存程序的所有代碼,而 WebRoot 目錄下只保存用戶可以訪問的部分,例如 index.php 入口文件、圖片、CSS 樣式表和 JS 腳本。

WebLibs 下又分為 FLEA 和 YORK 兩個目錄。FLEA 目錄保存 FleaPHP 的核心文件,而 YORK 目錄保存應用程序的代碼。之所以取名 YORK,是因為這個項目的公司名為 YORK。所以開發者在規劃目錄結構時,可以參照這種方式,為保存應用程序代碼的目錄取一個容易理解的名字。

WebRoot 是保存用戶使用瀏覽器可以直接訪問的內容,因此需要修改服務器或虛擬主機設置,將網站的根目錄指向 WebRoot 目錄。例如 www.example.com 指向 /example/WebRoot/。

這里介紹的目錄結構有如下優點:

優點:

  • 代碼文件放置在瀏覽器訪問不到的地方,提高了安全性
  • 程序員和設計人員可以在不同的目錄工作,降低了發生沖突的幾率
  • 目錄結構更清晰,容易理解

而主要的缺點就是需要修改服務器設置,將網站根目錄指向 WebRoot 目錄。而有些虛擬主機不允許這樣做,或者需要聯系服務器管理員,比較麻煩。

對于這種目錄結構,放置在 WebRoot 中的 index.php 入口文件應該明確調用 import() 將 WebLibs 目錄添加到類定義搜索路徑中。否則 load_class() 會找不到需要的文件。

      
        
          <?php </span>
          
            require
          
          (
          
            '../WebLibs/FLEA/FLEA.php'
          
          );import(
          
            '../WebLibs/YORK/'
          
          );....run();
          
            ?>
          
        
      
    

對于虛擬主機用戶,可以將 WebLibs 目錄移動到 WebRoot 目錄中。形成如下的目錄結構:

上圖中,所有文件都保存在應用程序的根目錄 cdhlss 中,而代碼文件保存在 libs 子目錄中。其中 libs/APP 保存應用程序的代碼。

相應的 index.php 需要修改為:

      
        
          <?php </span>
          
            require
          
          (
          
            'libs/FLEA/FLEA.php'
          
          );import(
          
            'libs/APP/'
          
          );....run();
          
            ?>
          
        
      
    

在實際開發中,由于 FleaPHP 并沒有強制要求命名規范和目錄結構。所以開發者可以繼續沿用自己熟悉的方式來開發應用程序。

<!-- generated by Texy! -->


FleaPHP 開發指南 - 4. 命名規范和目錄結構


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 一级片按摩 | 亚洲国产成人久久综合碰 | 四影虎库最新2021 | 久久香蕉国产线看观看网站 | 亚洲综合色秘密影院秘密影院 | 精品欧美在线 | 天天天天天天操 | 亚洲a视频 | 九九影片重口味 | 一级一片免费播放 | 欧美久久综合九色综合 | 亚洲精品久久久久久久久久ty | 在线观看香蕉免费啪在线观看 | 久久99亚洲精品久久久久网站 | 欧美乱子伦一区二区三区 | 高清欧美一区二区三区 | 国产一区二区在线视频 | 欧美日韩色综合网站 | 男女很黄很色床视频网站免 | 99国产精品欧美久久久久久影院 | 另类日本人xxxxbbbb | 亚洲爱爱天堂 | 久久久亚洲| 午夜精品久久久久 | aaa一区二区三区 | 国产精品原创永久在线观看 | 国产91一区二这在线播放 | 亚洲国产福利精品一区二区 | 亚洲国产精品久久久久久 | 亚洲精品亚洲人成人网 | 欧美精品在线一区二区三区 | 亚洲成人99| 国产精品国内免费一区二区三区 | 成人小视频在线观看 | 亚洲欧洲在线观看 | 成人免费观看一区二区 | 加勒比精品久久一区二区三区 | 911视频免费版 | 日本免费一级视频 | 操穴片| 久久综合狠狠综合久久 |