国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

利用 Composer 一步一步構建自己的 PHP 框架(三)——設計 MVC

hiYoHoo / 1980人閱讀

摘要:所以接下來我們要做的事情就是讓框架更加規范,更加豐滿。正式開始規劃文件夾新建文件夾,在中創建三個文件夾,開始正式開始踏上的征程。調用視圖修改為將包含查詢結果的數組返回。下一步利用一步一步構建自己的框架四使用

  

終于可以 “一次編寫,到處發布” 了,淚流滿面!
今天凌晨我從一點多開始搞了四個小時到 5:20,終于搞出了個 Emlog 的 MarkDown 插件!歡迎 Emloger 嘗試!


原文發表在我的個人網站:利用 Composer 一步一步構建自己的 PHP 框架(三)——設計 MVC


本教程示例代碼見 https://github.com/johnlui/My-First-Framework-based-on-Composer


回顧

在上一篇教程中,我們使用 codingbean/macaw 這個 Composer 包構建了兩條簡單路由,第一條是響應 GET ‘/fuck’ 的,另一條會 hold 住所有請求。其實對 PHP 框架來說,有了路由就有了一切。所以接下來我們要做的事情就是讓 MFFC 框架更加規范,更加豐滿。

這就牽扯到了 PHP 框架另外的價值:確立開發規范以便于多人協作,使用 ORM模板引擎 等工具以提高開發效率。


正式開始 規劃文件夾

新建 MFFC/app 文件夾,在 app 中創建 controllersmodels、views 三個文件夾,開始正式開始踏上 MVC 的征程。
(誰說我抄 Laravel 了,我抄的明明是 Rails :-D)

使用命名空間

新建 controllers/BaseController.php 文件:



新建 controllers/HomeController.php 文件:

控制器成功!

";
  }
}

增加一條路由: Macaw::get("", "HomeController@home");,打開瀏覽器直接訪問 http://127.0.0.1:81/,出現以下提示:

Fatal error: Class "HomeController" not found in /Library/WebServer/Documents/wwwroot/MFFC/vendor/codingbean/macaw/Macaw.php on line 93

為什么沒找到 HomeController 類?因為我們沒有讓他自動加載,修改 composer.json 為:

{
  "require": {
    "codingbean/macaw": "dev-master"
  },
  "autoload": {
    "classmap": [
      "app/controllers",
      "app/models"
    ]
  }
}

運行 composer dump-autoload,稍等片刻,刷新,你將看到以下內容(別忘了調節編碼哦~):

恭喜你,命名空間使用成功!

連接數據庫

新建 models/Article.php 文件,內容為(數據庫密碼請自行更改):

".$row["title"]."";
      echo "

".$row["content"]."

"; } mysql_close($connection); } }

修改 controllers/HomeController.php 文件:



刷新,這時候會得到 Article 類未找到的信息,因為我們沒有更新自動加載配置:

composer dump-autoload

在等待的時間里,我們去建立數據庫 mffc,在里面建立表 articles,設計兩個字段 titlecontent 用于記錄信息,并填充進至少一條數據。你也可以在建立完成 mffc 數據庫以后運行以下 SQL 語句:

DROP TABLE IF EXISTS `articles`;

CREATE TABLE `articles` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `title` varchar(255) DEFAULT NULL,
  `content` longtext,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

LOCK TABLES `articles` WRITE;
/*!40000 ALTER TABLE `articles` DISABLE KEYS */;

INSERT INTO `articles` (`id`, `title`, `content`)
VALUES
    (1,"我是標題","

我是內容呀~~

我真的是內容,不信算了,哼~ O(∩_∩)O

"), (2,"我是標題","

我是內容呀~~

我真的是內容,不信算了,哼~ O(∩_∩)O

"); /*!40000 ALTER TABLE `articles` ENABLE KEYS */; UNLOCK TABLES;

然后,刷新!你將看到以下頁面:

恭喜你!MVC 中的 M 和 C 都已經實現!接下來我們開始調用 V (視圖)。


調用視圖

修改 models/Article.php 為:



將包含查詢結果的數組返回。修改 HomeController:



保存,刷新,你將得到跟上面一模一樣的頁面,視圖調用成功!


幾乎所有人都是通過學習某個框架來了解 MVC 的,這樣可能框架用的很熟,一旦離了框架一個簡單的頁面都寫不了,更不要說自己設計 MVC 架構了,其實這里面也沒有那么多門道,原理非常清晰,我說說我的感悟:

PHP 框架再牛逼,他也是 PHP,也要遵循 PHP 的運行原理和基本哲學。抓住這一點我們就能很容易地理解很多事情。

PHP 做的網站從邏輯上說,跟 php test.php 沒有任何區別,都只是一段字符串作為參數傳遞給 PHP 解釋器而已。無非就是復雜的網站會根據 URL 來調用需要運行的文件和代碼,然后返回相應的結果。

無論我們看到的是 CodeIgniter 這樣 180 個文件組成的“小框架”,還是 Laravel 這樣加上 vendor 一共 3700 多個文件的 “大框架”,他們都會在每一個 URL 的驅動下,組裝一段可以運行的字符串,傳給 PHP 解釋器,再把從 PHP 解釋器返回的字符串傳給訪客的瀏覽器。

MVC 是一種邏輯架構,本質上是為了讓人腦這樣的超低 RAM 的計算機能夠制造出遠超人腦 RAM 的大型軟件,其實 MVC 架構在 GUI 軟件出現以前就已經成形,命令行輸出也是視圖嘛。

在 MFFC 里,一個 URL 驅動框架做的事情基本是這樣的:入口文件 require 控制器,控制器 require 模型,模型和數據庫交互得到數據返回給控制器,控制器再 require 視圖,把數據填充進視圖,返回給訪客,流程結束。

下一步:利用 Composer 一步一步構建自己的 PHP 框架(四)——使用 ORM

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/31877.html

相關文章

  • 利用 Composer 步一構建自己 PHP 框架(四)——使用 ORM

    摘要:引入了命名空間,這是規劃在中的功能,所以在一定程度上其實就是,的下一個版本是,即將發布,主要貢獻者是大名鼎鼎的鳥哥。使用修改為自動載入路由配置新增注意替換數據庫密碼修改無需改動。作者接受采訪時曾表示,是整個中最難實現的部分。 原文發表在我的個人網站:利用 Composer 一步一步構建自己的 PHP 框架(四)——使用 ORM 本教程示例代碼見 https://github.com...

    FreeZinG 評論0 收藏0
  • 利用 Composer 步一構建自己 PHP 框架(二)——構建路由

    摘要:原文發表在我的個人網站利用一步一步構建自己的框架二構建路由本教程示例代碼見上一篇中我們已經建立了一個空的項目,本篇將講述如何構建路由。從使用框架是為了提高開發效率的角度來看,框架的本質就是路由。下一步利用一步一步構建自己的框架三設計 原文發表在我的個人網站 利用 Composer 一步一步構建自己的 PHP 框架(二)——構建路由 本教程示例代碼見 https://github.c...

    lentrue 評論0 收藏0
  • 利用 Composer 完善自己 PHP 框架(一)——視圖裝載

    摘要:我們先從目前用著最不爽的地方視圖裝載下手。實現裝載器完成基礎準備以后我們正式開始制造視圖裝載器。下一步利用完善自己的框架二發送郵件 原文發表在我的個人網站:利用 Composer 完善自己的 PHP 框架(一)——視圖裝載 本教程示例代碼見 https://github.com/johnlui/My-First-Framework-based-on-Composer 回顧 經...

    LinkedME2016 評論0 收藏0
  • 利用 Composer 步一構建自己 PHP 框架(一)——基礎準備

    摘要:原文發表在我的個人網站利用一步一步構建自己的框架一基礎準備一統天下的時代已經到來白巖松一個時代結束了另一個時代開始了。框架可互用性小組,簡稱,成立于年。 原文發表在我的個人網站 利用 Composer 一步一步構建自己的 PHP 框架(一)——基礎準備 『Composer 一統天下的時代已經到來!』 ——白巖松 一個時代結束了,另一個時代開始了。 Framework ...

    gougoujiang 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<