成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

基于PSR-0編碼規(guī)范開發(fā)一套PHP-MVC框架(一)

hqman / 3101人閱讀

摘要:二站點(diǎn)全局配置文件。路由結(jié)構(gòu)命名空間路由別名控制器方法四框架啟動(dòng)文件。加載控制器文件執(zhí)行方法方法不存在控制器不存在自動(dòng)加載類文件五加載配置類。文件名鍵名獲取全部選項(xiàng)配置文件不存在六路由類。歡迎使用框架八隱藏文件。九本地域名訪問(wèn)。

一、入口文件。index.php

二、站點(diǎn)全局配置文件。configs/Website.php


三、全局路由配置文件。configs/Routes.php

array(
*           "路由別名"=>"控制器@方法"
*       )
*   )
*/
return array(

    "Home"=>array(
        "index-index"=>"IndexController@index",
        "index/test"=>"IndexController@test",
    ),

    "Admin"=>array(
        "login"=>"IndexController@login"
    ),
    
);

四、框架啟動(dòng)文件。frame/App.php

ctrl;
        $action = $route->action;
        $namespace = $route->namespace;
        if($namespace) {
            $ctrlFile = CTRL."/".$namespace."/".$ctrl.".php" ;
            $ctrlObj = CTRLNAMESPACE.$namespace."".$ctrl;
        } else {
            $ctrlFile = CTRL."/".$ctrl."Controller.php";
            $ctrlObj =  CTRLNAMESPACE.$ctrl."Controller" ;
        }
        if(is_file($ctrlFile)) {
            require_once($ctrlFile);
            $obj = new $ctrlObj;
            if(method_exists($obj,$action)) {
                $obj->$action();
            } else {
                throw new Exception($action."方法不存在", 1);
                
            }
        } else {
            throw new Exception($ctrl."控制器不存在", 1);
        }
    }
    
    //自動(dòng)加載類文件
    static public function autoload($class)
    {
        $file = BASEPATH."/".str_replace("", "/", $class).".php";
        if(is_file($file)) {
            require_once($file);
        } else {
            return false;
        }
    }
}

五、加載配置類。frame/Libs/Config.php


六、路由類。frame/Libs/Route.php

checkRoute($path[0]);
            if(!isset($path[0]) || !$isExists) {
                throw new Exception($path[0]."路由不存在", 1);            
            }
        } else {
            $this->ctrl = "Welcome";
            $this->action = "index";
        }
    }

    private function checkRoute($alias)
    {
        $routes = Config::get("Routes",null,true);
        foreach ($routes as $key => $value) {

            foreach ($value as $k => $v) {
                if($k == $alias) {
                    $c = explode("@", $v);
                    $this->ctrl = $c[0];
                    $this->action = $c[1];
                    $this->namespace = $key;
                    return true;
                } 
            }
        }
        return false;
    }
}

七、默認(rèn)控制器。app/Controllers/WelcomeController.php

Hello,World歡迎使用PHP-FRAME框架");
    }
}

八、隱藏index.php文件。.htaccess



    Options -MultiViews


RewriteEngine On

# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]

# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

九、本地域名訪問(wèn) http://localhost。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/28622.html

相關(guān)文章

  • 基于PSR-0編碼規(guī)范開發(fā)PHP-MVC框架(二)

    摘要:框架采用編碼規(guī)范開發(fā)的一套框架,純面向?qū)ο箝_發(fā),依賴包管理模版引擎數(shù)據(jù)庫(kù)類錯(cuò)誤輸出等在項(xiàng)目根目錄下使用命令執(zhí)行安裝插件二入口文件。引入文件,開啟錯(cuò)誤提示插件三數(shù)據(jù)庫(kù)配置文件。視圖模版不存在七控制器操作數(shù)據(jù)并顯示到頁(yè)面。 一、composer依賴包管理工具。composer.json { name:PHP-FRAME, author:Guoming.Zhang, ...

    graf 評(píng)論0 收藏0
  • 現(xiàn)在寫 PHP,你應(yīng)該知道這些

    摘要:首先你應(yīng)該是在用以上的版本,如果版本在這之下,是時(shí)候該升級(jí)了。按照其官網(wǎng)的說(shuō)法,這個(gè)組織的目的并不是告訴你你應(yīng)該怎么做,只是一些主流的框架之間相互協(xié)商和約定。和沒(méi)有出現(xiàn)在以上的列表中,是因?yàn)檫€沒(méi)有投票通過(guò)。不要被這些話所困擾。 首先你應(yīng)該是在用 PHP 5.3 以上的版本,如果 PHP 版本在這之下,是時(shí)候該升級(jí)了。我建議如果有條件,最好使用最新的版本。 你應(yīng)該看過(guò) PHP The R...

    supernavy 評(píng)論0 收藏0
  • 利用 Composer 步構(gòu)建自己的 PHP 框架)——基礎(chǔ)準(zhǔn)備

    摘要:原文發(fā)表在我的個(gè)人網(wǎng)站利用一步一步構(gòu)建自己的框架一基礎(chǔ)準(zhǔn)備一統(tǒng)天下的時(shí)代已經(jīng)到來(lái)白巖松一個(gè)時(shí)代結(jié)束了另一個(gè)時(shí)代開始了。框架可互用性小組,簡(jiǎn)稱,成立于年。 原文發(fā)表在我的個(gè)人網(wǎng)站 利用 Composer 一步一步構(gòu)建自己的 PHP 框架(一)——基礎(chǔ)準(zhǔn)備 『Composer 一統(tǒng)天下的時(shí)代已經(jīng)到來(lái)!』 ——白巖松 一個(gè)時(shí)代結(jié)束了,另一個(gè)時(shí)代開始了。 Framework ...

    gougoujiang 評(píng)論0 收藏0
  • PHP中對(duì)PSR-1、PSR-2規(guī)范理解

    摘要:目前已表決通過(guò)了套標(biāo)準(zhǔn),已經(jīng)得到大部分框架的支持和認(rèn)可。類中的常量所有字母都必須大寫,單詞間用下劃線分隔方法名稱必須符合式的小寫開頭駝峰命名規(guī)范。日志接口規(guī)范詳見(jiàn)自動(dòng)加載規(guī)范詳見(jiàn)緩存接口規(guī)范詳見(jiàn)消息接口規(guī)范詳見(jiàn),暫無(wú)中文翻譯 PHP-FIG 在說(shuō)啥是PSR-[0-4]規(guī)范的之前,我覺(jué)得我們有必要說(shuō)下它的發(fā)明者和規(guī)范者:PHP-FIG。就是這個(gè)聯(lián)盟組織發(fā)明和創(chuàng)造了PSR-[0-4]規(guī)范 ...

    lieeps 評(píng)論0 收藏0
  • 途牛原創(chuàng)|大話權(quán)限中心的PHP架構(gòu)之道

    摘要:權(quán)限中心的依賴聲明聲明依賴關(guān)系檢查代碼規(guī)范聲明開發(fā)依賴命名空間檢查代碼規(guī)范,執(zhí)行單元測(cè)試。單元測(cè)試持續(xù)交付一切都如此的完美,沒(méi)有測(cè)試,又如何可以證明這件事情的完美,又如何可以保障交付的質(zhì)量。 序 權(quán)限管理是無(wú)線運(yùn)營(yíng)系統(tǒng)中的核心模塊,通過(guò)訪問(wèn)控制策略的配置,來(lái)約定人與資源的訪問(wèn)關(guān)系。 本文著重講解如何通過(guò)PHP來(lái)構(gòu)建一個(gè)靈活、通用、安全的權(quán)限管理系統(tǒng)。 關(guān)于權(quán)限 首先我們來(lái)聊聊權(quán)限。 權(quán)...

    miracledan 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

hqman

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<