安裝參照文檔:https://wizardforcel.gitbooks.io/slim3-doc/content/1.htmlphp
項目目錄html
其中主要業務操做在app目錄中完成,可根據需求劃分 我這裏分紅了兩個目錄 controller (控制器目錄) lib(類庫目錄),若有須要能夠添加 model(模型層)git
controller 下能夠根據需求劃分紅 Admin Home Common(公共目錄,裏面存放一些公用函數)sql
入口文件json
在項目public目錄下建立index.php(入口文件) 和 .htaccess(路徑重寫)數組
在入口文件我實例化APP類,並註冊路由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. 回調函數composer
回調函數支持:函數
1. 普通函數post
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', ],//定義日誌文件 ], );