• 学习swoft的第二天_注解


    承接上文

    第一天的时候,开启ws服务之后

    php bin/swoft ws:start

    可以通过ip加端口的方式进行访问

    这是我们访问到的页面

    我们知道要想学习一个新的框架,首先要知道的就是它的路由是怎么写的

    文档上说,swoft框架使用的是注解,而不像laravel或者tp那样定义路由

    先看一下 我们访问的首页是哪一个控制器中的哪一个方法

     这个就是我们访问到的控制器和方法,因为我们是访问的http服务,所以在http服务里面找,根据经验在home控制器中(猜)

    我们可以测试一下

     然后再请求一次 记得重启服务

     这看起来像是一个错误,是说我们应该返回一个http的相应,却返回了一个整型,暂且不管结果,总之,这个方法就是首页访问到的方法

    注解

    然后我们看一下注解

    注解路由应该是Java中最常用到的,对于纯php开发可能了解的不多

    文档中说的比较简单

     

     首先就是要引入

    use SwoftHttpServerAnnotationMappingController;
    use SwoftHttpServerAnnotationMappingRequestMapping;

    然后标注控制器 又叫类注解 需要在所有类注释后面

      

    /**
     * Class Home
     *
     * @Controller(prefix="home")
     */

    方法注解 位置在方法描述之后 其他注释之前

    /**
         * 该方法路由地址为 /home/index
         *
         * @RequestMapping(route="/index", method="post")
         *
         * @param Request $request
         */

    需要注意的是 注解的引号必须是双引号,单引号无效,报找不到路由的错误

    完成注解之后需要重新启动服务

    写个例子

    新创建一个控制器 DemoController

    <?php declare(strict_types=1);
    
    
    namespace AppHttpController;
    
    
    use SwoftHttpMessageResponse;
    use SwoftHttpServerAnnotationMappingController;
    use SwoftHttpServerAnnotationMappingRequestMapping;
    use function context;
    
    
    
    /**
     *Class DemoController
     *
     *
     * @Controller(prefix="demo")
     */
    class DemoController
    {
        /**
         *
         * @RequestMapping(route="baozi", method="post")
         *
         *@return Response
         */
        public function index(): Response
        {
            $response = context()->getResponse();
            return $response->withContent("Hello Swoft2.0");
        }
    }

    根据注解 这个路由是 demo/baozi  post请求方式

     至于请求与响应 在核心组件中的httpserver 中有说明

  • 相关阅读:
    用户态和内核态
    04 _ 如何利用事务消息实现分布式事务?
    03 _ 消息模型:主题和队列有什么区别
    01 _ 为什么需要消息队列?
    洛谷P2257 YY的GCD
    HDU2669 Romantic (扩展欧几里德)
    CQOI2015 选数
    A. Pride
    测试开发进阶——python-java——appium003——Desired Capabilities —— 自动化常用方法——面试整理
    HDU 5050
  • 原文地址:https://www.cnblogs.com/baozi-tudou/p/12956031.html
Copyright © 2020-2023  润新知