nginx配置文件修改

location / {
try_files $uri /index.php$is_args$args;
}

设置好nginx伪静态,把所有的请求方式都转向到index.php文件

然后在目录里建index.php文件

在目录里安装如下三个composer包

composer require slim/slim guzzlehttp/psr7 http-interop/http-factory-guzzle

然后打开index.php文件,修改内容为如下:

<?php

use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
use Slim\Factory\AppFactory; require "vendor/autoload.php"; $app = AppFactory::create(); // Define app routes
$app->get('/hello/{name}', function (Request $request, Response $response, $args) {
$name = $args['name'];
$response->getBody()->write("Hello, $name");
return $response;
});
$app->get('/welcome/{name}', function (Request $request, Response $response, $args) {
$name = $args['name'];
$response->getBody()->write("welcome, $name");
return $response;
});
$app->get('/json',function (Request $request, Response $response){
$query = $request->getQueryParams(); $data = array('name' => $query['name'] ?? 'null', 'age' => 40);
$payload = json_encode($data); $response->getBody()->write($payload);
return $response
->withHeader('Content-Type', 'application/json');
});
$app->get('/form',function (Request $request, Response $response){
$html = <<<EOT
<html>
<head>form demo
</head>
<body>
<form action="/action" method="post" enctype="multipart/form-data">
<input type="text" name="name" value="tu6ge" />
<input type="text" name="language" value="php" />
<input type="file" name="avatar" />
<button type="submit" >submit</button>
</form>
</body>
</html>
EOT;
$response->getBody()->write($html);
return $response;
});
$app->post('/action',function (Request $request, Response $response){
$info = $request->getParsedBody();
print_r($info);
$files = $request->getUploadedFiles();
foreach ($files as $file){
$file->moveTo('./upload/'.date('H-i-s').'.txt');
}
$response->getBody()->write('file save success');
return $response;
}); // Run app
$app->run();

输入对应的路由,比如/hello/tu6ge即可访问对应的内容

composer 包 slim使用案例,一个简单的路由解决方案的更多相关文章

  1. 手把手教你用vue-cli构建一个简单的路由应用

    上一章说道:十分钟上手-搭建vue开发环境(新手教程)https://www.jianshu.com/p/0c6678671635 开发环境搭建好之后,那么开始新添加一些页面,构建最基本的vue项目, ...

  2. 一个简单的路由,用javascript实现

    前端路由在很多开源的js类库框架中都得到支持,如angularJS,Backbone,Reactjs等等.前端路由和后端路由原理一样,是让所有的交互和展现在一个页面运行以达到减少服务器请求,提高客户体 ...

  3. PHP实现一个简单url路由功能

    如果一个页面的内容呈现,需要根据url上传递的参数来进行渲染.很多时候可能是这样子写:xxx.com/xx?c=x&m=x& t=..,而我们看到的url往往是这样子的(以新浪微游戏的 ...

  4. 为Dynamics 365写一个简单程序实现解决方案一键迁移

    关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复258或者20170627可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...

  5. php 的路由简介 (一个简单的路由模式)

    <?php $_SERVER['REQUEST_URI'] = '/post/edit/1024?foo=bar'; $uri = explode('/', parse_url($_SERVER ...

  6. composer包(发布到github上)同步到Packagist

    在上一篇文章里面,探讨了如何一步步建立composer包–创建你的一个composer包 创建完成后,我们需要做的就是讲自建的包发布到Packagist上.至于说什么是Packagist,这个就不用我 ...

  7. 动手写一个简单的Web框架(Werkzeug路由问题)

    动手写一个简单的Web框架(Werkzeug路由问题) 继承上一篇博客,实现了HelloWorld,但是这并不是一个Web框架,只是自己手写的一个程序,别人是无法通过自己定义路由和返回文本,来使用的, ...

  8. 一步一步重写 CodeIgniter 框架 (2) —— 实现简单的路由功能

    在上一课中,我们实现了简单的根据 URI 执行某个类的某个方法.但是这种映射没有扩展性,对于一个成熟易用的框架肯定是行不通的.那么,我们可以让 框架的用户 通过自定义这种转换来控制,用 CI 的术语就 ...

  9. 动手开发自己的第一个 composer 包

    原文:http://blog.jayxhj.com/2016/05/basic-composer-package-development/ composer 是 PHP 的依赖管理工具,本篇文章就来说 ...

随机推荐

  1. Grid布局如何设置动画效果

    CS代码 新增 GridLengthAnimation继承自AnimationTimeline public class GridLengthAnimation : AnimationTimeline ...

  2. IllegalArgumentException occurred while calling setter for property

    参考https://blog.csdn.net/qq_41192690/article/details/80659427 主码 是 integer类型的 就不要在写成这个样子了 把type=" ...

  3. Spring的@PropertySource注解使用

    @PropertySource注解是Spring用于加载配置文件,默认支持.properties与.xml两种配置文件.@PropertySource属性如下: name:默认为空,不指定Spring ...

  4. Longhorn 企业级云原生分布式容器存储-券(Volume)和节点(Node)

    内容来源于官方 Longhorn 1.1.2 英文技术手册. 系列 Longhorn 是什么? Longhorn 云原生分布式块存储解决方案设计架构和概念 Longhorn 企业级云原生容器存储解决方 ...

  5. MySQL自定义函数与存储过程的创建、使用、删除

    前言 日常开发中,可能会用到数据库的自定义函数/存储过程,本文记录MySQL对自定义函数与存储过程的创建.使用.删除的使用 通用语法 事实上,可以认为存储过程就是没有返回值的函数,创建/使用/删除都非 ...

  6. NOIP 模拟 $33\; \rm Defence$

    题解 \(by\;zj\varphi\) 题意就是维护 \(\rm max\{01mx,01l+01r\}\) 就是最长连续的一段 \(0\),左右 \(0\) 区间的加和. 可以启发式合并,也可以直 ...

  7. Redis开发使用指南

    Redis Redis是一个开源(BSD许可)的内存数据结构存储,用作数据库.缓存和消息代理.Redis提供数据结构,如strings, hashes, lists, sets, sorted set ...

  8. map中使用箭头函数遇到的坑

    箭头函数提供了更简洁和更短的语法,其中一个可用功能是可以将函数编写为具有隐式返回值的lambda表达式.这对于功能样式代码很方便,比如使用函数映射数组: const numbers = [1,2,3, ...

  9. jQuery中ajax请求的六种方法(三、三):$.post()方法

    3.$.post()方法 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...

  10. 使用dom4j工具:读取xml(一)

    package dom4j_read; import java.io.File; import org.dom4j.Document; import org.dom4j.io.SAXReader; / ...