PHP輕量級框架 Slim 使用(一)


安裝參照文檔:https://wizardforcel.gitbooks.io/slim3-doc/content/1.html

項目目錄

其中主要業務操作在app目錄中完成,可根據需求划分 我這里分成了兩個目錄 controller (控制器目錄) lib(類庫目錄),如有需要可以添加 model(模型層)

controller 下可以根據需求划分成 Admin Home Common(公共目錄,里面存放一些公用函數)

 

入口文件

在項目public目錄下創建index.php(入口文件) 和 .htaccess(路徑重寫)

在入口文件我實例化APP類,並注冊路由

<?php
//導入自動加載
require '../vendor/autoload.php';

//導入配置文件
$setting = require '../config/config.php';

//創建實例,傳入配置項
$app = new \Slim\App($setting);

//
$app->post('/', '\Controller\home\GoodsController:addGoods');
//
$app->get('/', '\Controller\home\GoodsController:showGoods');
//條件查詢
$app->get('/{id}', '\Controller\home\GoodsController:searchGoods');
//
$app->post('/modify', '\Controller\home\GoodsController:modifyGoods');
//
$app->delete('/{id}', '\Controller\home\GoodsController:deleteGoods');

$app->run();

 

注冊路由需要傳入兩個參數,1. 路由地址  2. 回調函數

回調函數支持:

1. 普通函數

2. 匿名函數

3. 類調用

這里使用的是第三種方式

如果回調函數已類名調用,需要先注冊自動加載:

在根目錄下composer.json中添加

{
    "require": {
        "slim/slim": "^3.0",
        "monolog/monolog": "^1.23"
    },
    "autoload": { "files": ["app/controller/common/function.php"],
        "psr-4":{ "Controller\\":"app/controller/",
            "Lib\\":"app/lib/" } }
}

這個配置文件中有一個autoload段,用於自動加載

其中又包含主要的兩個選項: files 和 psr-4。 
files就是需要composer自動幫我們加載的函數庫(不含類),只要在后面的數組中將函數庫的文件路徑寫入即可。 
psr-4顧名思義,是一個基於psr-4(http://www.php-fig.org/psr/psr-4/)規則的類庫自動加載對應關系,只要在其后的對象中,以 “命名空間”: “路徑” 的方式寫入自己的類庫信息即可。 
修改完成后,需要composer install才能生效

 

回調函數中支持傳入三個參數

請求/Request
第一個參數是一個 Psr\Http\Message\ServerRequestInterface 對象,表示當前的 HTTP 請求。

響應/Response
第二個參數是一個 Psr\Http\Message\ResponseInterface 對象,表示當前的 HTTP 響應。

參數數組/Arguments
第三個參數是一個關聯數組,包含包含當前路由的命名占位符。

 實例化 Slim\App 時可以傳入一個參數,該參數可以是容器實例或者用於配置自動創建的默認容器的數組。

通常可以傳入一個數組配置項

<?php
//配置文件
return array(
    'settings' => [
        'displayErrorDetails' => true,
        'debug' => true, //開啟debug模式
        'logger' => [
            'name' => 'slim-app',
            'level' => Monolog\Logger::DEBUG,
            'path' => __DIR__ . '/../logs/app.log',
        ],//定義日志文件
    ],
);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM