手擼 Laravel MVC

image

前沿

今天咱們來看看PHP的Laravel 框架,看看它的強大php

第一步

咱們來嘗試下手動構建Laravel MVCnginx

首先構建下咱們的 composer.json 文件git

{
  "require" :{
    "illuminate/routing" : "*",
    "illuminate/events" : "*",
    "illuminate/database" : "*",
    "illuminate/view" : "*"
  },
  "autoload" : {
    "psr-4" : {
      "App\\" : "app/"
    }
  }
}

能夠看到咱們使用了最基礎的幾個包,裏面包含有路由、事件、數據庫、視圖等組件。github

根據Laravel目錄結構,還添加了PSR-4的自動加載規範,實現了命令空間到目錄的映射數據庫

第二步

建立入口文件 index.php 添加以下內容json

//調用自動加載函數文件,添加自動加載函數
require __DIR__ . '/../vendor/autoload.php';
//實例化服務容器
$app = new \Illuminate\Container\Container();
//註冊事件,路由服務提供者
with(new \Illuminate\Events\EventServiceProvider($app))->register();
with(new \Illuminate\Routing\RoutingServiceProvider($app))->register();
//加載路由
require __DIR__ . '/../app/Http/routes.php';

//實例化請求 並分發處理請求
$request = \Illuminate\Http\Request::createFromGlobals();
$response = $app['router']->dispatch($request);

//返回請求響應
$response->send();

這裏咱們能夠看到 Laravel 最核心的容器,服務容器用於服務註冊和解析,也就是說向服務容器註冊可以實現某些功能的實例或回調函數,當須要使用該功能時從服務容器中獲取相應的實例來完成。服務器

第三步

訪問數據庫, 咱們要在 config目錄下添加配置文件 database.php 而後在入口添加以下內容app

//啓動Eloquent ORM的模塊並進行相關配置
use Illuminate\Database\Capsule\Manager;

$manager = new Manager();
$manager->addConnection(require '../config/database.php');
//Eloquent ORM的模塊啓動
$manager->bootEloquent();

因爲咱們使用 Eloquent ORM 因此須要使用到數據庫管理類。 Eloquent ORM 操做數據庫比較簡單,分兩個步驟,一是建立模型類、二是經過模型類的方法操做數據庫。composer

第四步

最後咱們來建立視圖框架

//服務容器實例經過instance方法將名稱爲 config 和 \Illuminate\Support\Fluent類進行實例綁定
//Fluent類主要是存儲視圖模塊的配置信息
$app->instance('config', new \Illuminate\Support\Fluent);
//將模塊文件和編譯文件的存儲路徑,添加到配置實例中
$app['config']['view.compiled'] = dirname(dirname(__FILE__)) . '/storage/framework/views';
$app['config']['view.paths']    = ['../resources/views/'];

Fluent類主要是存儲視圖模塊的配置信息,咱們經過instance() 方法 將服務名稱爲 configFluent類的實例進程綁定。compiled 表明編譯文件路徑paths 表明視圖模版文件路徑

最後咱們配置好nginx服務器 訪問 127.0.0.1/welcome 就能夠看到結果了,別忘記數據庫信息配置本身服務器的。

致謝

你們能夠本身動手感覺下,完整代碼地址 https://github.com/H-pinke/Laravel_MVC代碼倉庫地址

感謝你看完這篇文章,有什麼不對的地方歡迎指出,謝謝🙏

相關文章
相關標籤/搜索