安装参照文档: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',
],//定义日志文件
],
);

PHP轻量级框架 Slim 使用(一)的更多相关文章

  1. FluentData,它是一个轻量级框架,关注性能和易用性。

    http://www.cnblogs.com/zengxiangzhan/p/3250105.html FluentData,它是一个轻量级框架,关注性能和易用性. 下载地址:FlunenData.M ...

  2. 初步了解学习flask轻量级框架,

    关于flask我有话说 flask作为一个轻量级框架,它里面有好多扩展包需要下载,比较麻烦,而且有的时候flask需要在虚拟环境下运行,但是他的优点还是有滴 ,只要是用过Django的人,都会觉得fl ...

  3. DDD实战进阶第一波(四):开发一般业务的大健康行业直销系统(搭建支持DDD的轻量级框架三)

    上一篇文章我们讲了经典DDD架构对比传统三层架构的优势,以及经典DDD架构每一层的职责后,本篇文章将介绍基础结构层中支持DDD的轻量级框架的主要代码. 这里需要说明的是,DDD轻量级框架能够体现DDD ...

  4. DDD实战进阶第一波(三):开发一般业务的大健康行业直销系统(搭建支持DDD的轻量级框架二)

    了解了DDD的好处与基本的核心组件后,我们先不急着进入支持DDD思想的轻量级框架开发,也不急于直销系统需求分析和具体代码实现,我们还少一块, 那就是经典DDD的架构,只有了解了经典DDD的架构,你才能 ...

  5. 互联网轻量级框架SSM-查缺补漏第六天【级联+延迟加载特辑】

    简言:本来这是昨天看的,但是因为想好好写一下[级联]这个东西,所以就看完之后今天来整理一下. 级联 1. 什么是级联 级联是一个数据库实体的概念.比如教师就需要存在学生与之对应,这样就有教师学生表,一 ...

  6. 互联网轻量级框架SSM-查缺补漏第八天(MyBatis插件plugin使用及原理)

    简言:今天进行第八天的记录(只是写了八天).有的时候看的多,有的时候看的少,看的少的时候就攒几天一起写了.而今天这个插件我昨天写了一下午,下班没写完就回去了,今天把尾收了,再加上一个过程图方便下面原理 ...

  7. CQRS轻量级框架【CQRSlite】学习使用小记

    前言 这几天在研究DDD和CQRS.快把我绕晕了.发现国外的好文质量还是挺高的.之所以先体验CQRSlite这个小框架,是因为看了一位大神写的文章:https://www.codeproject.co ...

  8. 互联网轻量级框架SSM-查缺补漏第一天

    简言:工欲其事必先利其器,作为一个大四的准毕业生,在实习期准备抽空补一下基础.SSM框架作为互联网的主流框架,在会使用的基础上还要了解其原理,我觉得会对未来的职场会有帮助的.我特意的买了一本<J ...

  9. Mysql limit 优化,百万至千万级快速分页,--复合索引的引用并应用于轻量级框架

    MySql 性能到底能有多高?用了php半年多,真正如此深入的去思考这个问题还是从前天开始.有过痛苦有过绝望,到现在充满信心!MySql 这个数据库绝对是适合dba级的高手去玩的,一般做一点1万篇新闻 ...

随机推荐

  1. [蓝桥杯]ALGO-81.算法训练_动态数组使用

    从键盘读入n个整数,使用动态数组存储所读入的整数,并计算它们的和与平均值分别输出.要求尽可能使用函数实现程序代码.平均值为小数的只保留其整数部分. 样例输入: 样例输出: 样例输入: 样例输出: 题目 ...

  2. HEAD插件安装

    简介 是一个HTML5编写的集群操作和管理工具,可以对集群进行傻瓜式操作,Head插件中可以显示集群的拓扑结构,执行索引和节点级别等操作,同时也可以输入RESTful命令和Elasticsearch交 ...

  3. 服务容错保护断路器Hystrix之八:Hystrix资源隔离策略

    在一个基于微服务的应用程序中,您通常需要调用多个微服务完成一个特定任务.不使用舱壁模式,这些调用默认是使用相同的线程来执行调用的,这些线程Java容器为处理所有请求预留的.在高服务器请求的情况下,一个 ...

  4. python直接下载图片到内存

    1. 使用requests(推荐) from PIL import Image import requests Image.open(requests.get(url, stream=True).ra ...

  5. python:数据类型set

    一.集合 集合是无序的,不重复的数据集合,它里面的元素是可哈希的(不可变数据类型),但是集合本身是不可哈希(所以集合做不了字典的键)的.以下是集合最重要的两点: 去重,把一个列表变成集合,就自动去重了 ...

  6. 后台对象转化成json数据返回给前端

    一.介绍 JSON-lib包是一个beans,collections,maps,java arrays 和XML和JSON互相转换的包,主要就是用来解析Json数据 二.下载jar依赖包:可以去这里下 ...

  7. CVE-2017-12615漏洞利用

    Tomcat任意文件上传漏洞CVE-2017-12615复现 今天在群里听到有人讲这个CVE-2017-12615漏洞,想起自己的虚机ubuntu里面曾经装过tomcat,午休时间来瞅瞅. 漏洞利用条 ...

  8. (转)Linux tcpdump命令详解

    简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具. tcpdump可以将网络中传送的数据包的 ...

  9. Hibernate SQL

    SQL查询: 5.2之后的版本: NativeQuery<Order> sqlQuery = session.createNativeQuery("select * from t ...

  10. web前端 3大储存 Cookie、localStorge、sessionStorage

    Cookie: //setCookie function setCookie(name,value){ var Days = 30; var exp = new Date(); exp.setTime ...