今天咱們來看看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()
方法 將服務名稱爲 config
和Fluent
類的實例進程綁定。compiled
表明編譯文件路徑paths
表明視圖模版文件路徑
最後咱們配置好nginx
服務器 訪問 127.0.0.1/welcome
就能夠看到結果了,別忘記數據庫信息配置本身服務器的。
你們能夠本身動手感覺下,完整代碼地址 https://github.com/H-pinke/Laravel_MVC
代碼倉庫地址
感謝你看完這篇文章,有什麼不對的地方歡迎指出,謝謝🙏