zoukankan      html  css  js  c++  java
  • 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 SlimApp($setting);
    
    //
    $app->post('/', 'ControllerhomeGoodsController:addGoods');
    //
    $app->get('/', 'ControllerhomeGoodsController:showGoods');
    //条件查询
    $app->get('/{id}', 'ControllerhomeGoodsController:searchGoods');
    //
    $app->post('/modify', 'ControllerhomeGoodsController:modifyGoods');
    //
    $app->delete('/{id}', 'ControllerhomeGoodsController: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
    第一个参数是一个 PsrHttpMessageServerRequestInterface 对象,表示当前的 HTTP 请求。
    
    响应/Response
    第二个参数是一个 PsrHttpMessageResponseInterface 对象,表示当前的 HTTP 响应。
    
    参数数组/Arguments
    第三个参数是一个关联数组,包含包含当前路由的命名占位符。
    

     实例化 SlimApp 时可以传入一个参数,该参数可以是容器实例或者用于配置自动创建的默认容器的数组。

    通常可以传入一个数组配置项

    <?php
    //配置文件
    return array(
        'settings' => [
            'displayErrorDetails' => true,
            'debug' => true, //开启debug模式
            'logger' => [
                'name' => 'slim-app',
                'level' => MonologLogger::DEBUG,
                'path' => __DIR__ . '/../logs/app.log',
            ],//定义日志文件
        ],
    );
  • 相关阅读:
    通用sqlserver分页存储过程
    JSONP解决跨域请求
    laravle框架
    XML作用
    mysql 中的常用查询
    smarty模板技术
    Cookie和Session 会话技术
    正则表达式
    Mongodb常用知识点
    PHP之PDO
  • 原文地址:https://www.cnblogs.com/xiaoliwang/p/8949266.html
Copyright © 2011-2022 走看看