久久精品卡通在线|一级片视频免费观看|91AⅤ在线爱插射在线|无码a片网站中欧美在线精品|国产亚洲99久久精品|欧洲久久精品日本无码高清片|国产主播高清福利在线|国产一极小视频观看|国产十免费十无码十在线|国产一级视频在线观看免费

您當前的位置:鋼材 > 鋼絞線 > 價格匯總

怎么創(chuàng)建mvc項目,mvc框架怎么建立

來源:頭條 作者: chanong
分享到
關(guān)注德勤鋼鐵網(wǎng)在線:
在線咨詢:
  • 掃描或點擊關(guān)注德勤鋼鐵網(wǎng)在線客服

重頭戲即將來臨

【路由分發(fā)】我去了上一章

開始創(chuàng)建您的第一個MVC 框架項目[1]

現(xiàn)在我們已經(jīng)解釋了項目的基本結(jié)構(gòu),現(xiàn)在我們將解釋重點“路由的分發(fā)”。路由的目的是通過入口文件調(diào)用不同類的不同方法。那么我們現(xiàn)在就開始吧!

1. 接受URL參數(shù)(p平臺參數(shù)、C控制器名稱、方法名稱)。 2. 使用平臺參數(shù)(p)+控制器名稱(c)創(chuàng)建對象并調(diào)用方法。談話是廉價的。請給我看代碼。讓我們現(xiàn)在開始。代碼

[代碼] 在Core/App.php中創(chuàng)建一個getUrl靜態(tài)方法。每次創(chuàng)建方法時,請務必在run 方法中調(diào)用它。

* 獲取URL,做人性化大小寫,設(shè)置默認值*/public static function getUrl(){ $GLOBALS['p']=isset($_GET['p']) ucfirst(strto lower($_GET [ ' p'])) :'返回'; $GLOBALS['c']=isset($_GET['c']) ucfirst(strto lower($_GET['c'])) :' $GLOBALS [ 'a ']=isset($_GET['a']) ucfirst(strto lower($_GET['a'])) :'showIndex';} 實例化上面定義的對象根據(jù)URL調(diào)用方法。

* 分發(fā)路由實例化對象并根據(jù)URL調(diào)用方法。 */public static function dispathRouter(){ //控制器規(guī)則為名稱+ 控制器關(guān)鍵字$className='App\\'.$GLOBALS[' p'] .'\\Controller\\'.$GLOBALS[' c'] .'Controller'; $action=$GLOBALS['a']; $obj=new $className; $obj-$action();為什么我實際執(zhí)行的時候會出現(xiàn)錯誤,檢查一下可以看到?jīng)]有class文件從頭到尾都引入了除App.php之外的其他類,因此一旦運行上面的代碼,就會顯示一條消息,表明不存在該類。也就是說,重要的部分仍然缺失

[Autoload]/** *Autoload*/public static function autoload(){ //這里采用高階函數(shù)的寫法,只留下一個方法spl_autoload_register(function($className){$fileName=ROOT_PATH.str_replace ( ' \\ ','/',$className).'.php';if (file_exists($fileName)){ include_once $fileName; return true;}else{ echo '文件不存在!'; die;}Up 所以我們使用高階函數(shù),但是什么是高階函數(shù)呢?這里我們來說說通用函數(shù),通用函數(shù)的參數(shù)是什么?

String 2. Array 3. Object 高階函數(shù)參數(shù)是可以將整個函數(shù)體作為參數(shù)的函數(shù)App/Back/Controller php/** * 不要忘記在* IndexController.php 中創(chuàng)建IndexController.php * User: kalvin * Date: 2018/1/30 * Time: PM 3:23 */namespace App\Back\Controller;class IndexController{ public function showIndex() { }} 這樣基本上就可以創(chuàng)建一個原型了

[Smarty] 讓我們在您的項目中支持Smarty模板引擎

解壓并將整個Smarty libs 文件夾復制到項目的Vendor 目錄中,并將其重命名為Smarty。修改core/App.php自動加載Smarty [代碼]/** * Autoload */public static function autoload( ) { //這里采用高階函數(shù)的寫法, spl_autoload_register(function($className){if ( $className=='Smarty'){ $fileName=VEND_PATH.'Smarty/'.str_replace( ' \\','/',$className).'.class.php' ;}else{ $fileName=ROOT_PATH.str_replace ('\\','/',$className).'.php';}if ( file_exists($fileName)){ include_once $fileName; return true;}else{ echo '文件不存在!'; die; } });}接下來,在Core中創(chuàng)建Controller.php,并讓該類繼承自\Smarty。

php/** * * Controller.php * User: kalvin * Date: 2018/1/30 * Time: PM 3:32 */namespace Core; class Controller extends \Smarty{} 以后需要使用App目錄下的Smarty所有類必須繼承自控制器

php/** * * IndexController.class.php * User: kalvin * Date: 2018/1/30 * Time: PM3:23 */namespace App\Back\Controller;use Core\Controller;class IndexController extends Controller{ public function showIndex() { }它還沒有完成。開始配置Smarty模板路徑和編譯路徑。核心控制器

php/** * * Controller.php * User: kalvin * Date: 2018/1/30 * Time: PM 3:32 */namespace Core; class Controller extends \Smarty{ public function __construct() {parent:__construct(); $templateDir=APP_PATH.$ GLOBALS['p'].'/'.'View';$this-template_dir=$templateDir;$this-compile_dir=ROOT_PATH.'Caching/'; }}我正在使用的Smarty 3已經(jīng)放棄了setTemplateDir方法看起來只有一個template_dir 屬性,您可以在視圖中創(chuàng)建模板并使用display 來訪問IndexController 中的模板。

php/** * * IndexController.class.php * User: kalvin * Date: 2018/1/30 * Time: PM3:23 */namespace App\Back\Controller;use Core\Controller;class IndexController extends Controller{ public function showIndex() { $ this-display('hello.tpl'); }} 如果您發(fā)現(xiàn)我的文章有用或喜歡它,請不要忘記關(guān)注我。如果您喜歡,請轉(zhuǎn)發(fā)。當然,如果可以的話我就給你奶茶錢作為獎勵,你也可以的(#.#)

責任編輯:德勤鋼鐵網(wǎng) 標簽:

熱門搜索

相關(guān)文章

廣告
德勤鋼鐵網(wǎng) |價格匯總

怎么創(chuàng)建mvc項目,mvc框架怎么建立

chanong

|

重頭戲即將來臨

【路由分發(fā)】我去了上一章

開始創(chuàng)建您的第一個MVC 框架項目[1]

現(xiàn)在我們已經(jīng)解釋了項目的基本結(jié)構(gòu),現(xiàn)在我們將解釋重點“路由的分發(fā)”。路由的目的是通過入口文件調(diào)用不同類的不同方法。那么我們現(xiàn)在就開始吧!

1. 接受URL參數(shù)(p平臺參數(shù)、C控制器名稱、方法名稱)。 2. 使用平臺參數(shù)(p)+控制器名稱(c)創(chuàng)建對象并調(diào)用方法。談話是廉價的。請給我看代碼。讓我們現(xiàn)在開始。代碼

[代碼] 在Core/App.php中創(chuàng)建一個getUrl靜態(tài)方法。每次創(chuàng)建方法時,請務必在run 方法中調(diào)用它。

* 獲取URL,做人性化大小寫,設(shè)置默認值*/public static function getUrl(){ $GLOBALS['p']=isset($_GET['p']) ucfirst(strto lower($_GET [ ' p'])) :'返回'; $GLOBALS['c']=isset($_GET['c']) ucfirst(strto lower($_GET['c'])) :' $GLOBALS [ 'a ']=isset($_GET['a']) ucfirst(strto lower($_GET['a'])) :'showIndex';} 實例化上面定義的對象根據(jù)URL調(diào)用方法。

* 分發(fā)路由實例化對象并根據(jù)URL調(diào)用方法。 */public static function dispathRouter(){ //控制器規(guī)則為名稱+ 控制器關(guān)鍵字$className='App\\'.$GLOBALS[' p'] .'\\Controller\\'.$GLOBALS[' c'] .'Controller'; $action=$GLOBALS['a']; $obj=new $className; $obj-$action();為什么我實際執(zhí)行的時候會出現(xiàn)錯誤,檢查一下可以看到?jīng)]有class文件從頭到尾都引入了除App.php之外的其他類,因此一旦運行上面的代碼,就會顯示一條消息,表明不存在該類。也就是說,重要的部分仍然缺失

[Autoload]/** *Autoload*/public static function autoload(){ //這里采用高階函數(shù)的寫法,只留下一個方法spl_autoload_register(function($className){$fileName=ROOT_PATH.str_replace ( ' \\ ','/',$className).'.php';if (file_exists($fileName)){ include_once $fileName; return true;}else{ echo '文件不存在!'; die;}Up 所以我們使用高階函數(shù),但是什么是高階函數(shù)呢?這里我們來說說通用函數(shù),通用函數(shù)的參數(shù)是什么?

String 2. Array 3. Object 高階函數(shù)參數(shù)是可以將整個函數(shù)體作為參數(shù)的函數(shù)App/Back/Controller php/** * 不要忘記在* IndexController.php 中創(chuàng)建IndexController.php * User: kalvin * Date: 2018/1/30 * Time: PM 3:23 */namespace App\Back\Controller;class IndexController{ public function showIndex() { }} 這樣基本上就可以創(chuàng)建一個原型了

[Smarty] 讓我們在您的項目中支持Smarty模板引擎

解壓并將整個Smarty libs 文件夾復制到項目的Vendor 目錄中,并將其重命名為Smarty。修改core/App.php自動加載Smarty [代碼]/** * Autoload */public static function autoload( ) { //這里采用高階函數(shù)的寫法, spl_autoload_register(function($className){if ( $className=='Smarty'){ $fileName=VEND_PATH.'Smarty/'.str_replace( ' \\','/',$className).'.class.php' ;}else{ $fileName=ROOT_PATH.str_replace ('\\','/',$className).'.php';}if ( file_exists($fileName)){ include_once $fileName; return true;}else{ echo '文件不存在!'; die; } });}接下來,在Core中創(chuàng)建Controller.php,并讓該類繼承自\Smarty。

php/** * * Controller.php * User: kalvin * Date: 2018/1/30 * Time: PM 3:32 */namespace Core; class Controller extends \Smarty{} 以后需要使用App目錄下的Smarty所有類必須繼承自控制器

php/** * * IndexController.class.php * User: kalvin * Date: 2018/1/30 * Time: PM3:23 */namespace App\Back\Controller;use Core\Controller;class IndexController extends Controller{ public function showIndex() { }它還沒有完成。開始配置Smarty模板路徑和編譯路徑。核心控制器

php/** * * Controller.php * User: kalvin * Date: 2018/1/30 * Time: PM 3:32 */namespace Core; class Controller extends \Smarty{ public function __construct() {parent:__construct(); $templateDir=APP_PATH.$ GLOBALS['p'].'/'.'View';$this-template_dir=$templateDir;$this-compile_dir=ROOT_PATH.'Caching/'; }}我正在使用的Smarty 3已經(jīng)放棄了setTemplateDir方法看起來只有一個template_dir 屬性,您可以在視圖中創(chuàng)建模板并使用display 來訪問IndexController 中的模板。

php/** * * IndexController.class.php * User: kalvin * Date: 2018/1/30 * Time: PM3:23 */namespace App\Back\Controller;use Core\Controller;class IndexController extends Controller{ public function showIndex() { $ this-display('hello.tpl'); }} 如果您發(fā)現(xiàn)我的文章有用或喜歡它,請不要忘記關(guān)注我。如果您喜歡,請轉(zhuǎn)發(fā)。當然,如果可以的話我就給你奶茶錢作為獎勵,你也可以的(#.#)


價格匯總