用 Composer 組建了個 PHP 框架

image

大約在兩三年前本身就有過寫個 PHP web 框架的想法,期間也嘗試過去實踐開發,但老是因爲各類各樣的緣由並無完成。php

此次終於恆心下來,忙裏偷閒的組建了一個本身的 PHP 微框架。前先後後零零碎碎的開發了快一個月的時間,直到今天完成文檔的編寫,才向你們呈現。html

除了框架自己的(Coole)核心代碼,還提供一個框架應用(coolephp/skeleton)模板,另外編寫了一份簡陋的文檔, 望能給 也想寫框架的人帶來一點參考(大神請忽略)。laravel

生命週期

image

  1. 客戶端向入口腳本 index.php 發起請求。
  2. 入口腳本中建立應用,嚮應用中註冊配置服務、核心服務、第三方服務。
  3. 定義路由,載入到應用中。
  4. 啓動運行應用。
  5. 建立請求對象。
  6. 根據請求對象解析路由,建立控制器實例。
  7. 動做調用模型數據,渲染到視圖,生成響應對象。
  8. 管道過濾響應。
  9. 返回響應給客戶端。
  10. 終止生命週期。

命令行界面

image

安裝框架

$ composer require guanguans/coole -vvv

快速開始

<?php

use Guanguans\Coole\App;
use Guanguans\Coole\Facade\Router;
use Symfony\Component\HttpFoundation\Request;

require __DIR__.'/vendor/autoload.php';

// 1. 建立應用
$app = new App();
$app['debug'] = true;

// 2. 定義一個帶中間件的路由
Router::get('/', function (){
    return 'This is the Coole framework.';
})->setMiddleware(function (Request $request, Closure $next){
    printf('Before request.<br>');
    $response = $next($request);
    printf('<br>After request.');

    return $response;
});

// 3. 監聽運行
$app->run();

框架中每項功能職責所用到的組件

參考的文章及借鑑的框架

官方文檔

源碼連接

相關文章
相關標籤/搜索