psf1/router_matcher 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

psf1/router_matcher

Composer 安装命令:

composer require psf1/router_matcher

包简介

URL router patterns tool

README 文档

README

URL router patterns tool

This library allows to create local URL responses, for example, to use in unit tests.

Install:

composer require 'psf1/router-matcher'

How to use:

<?php

use Psf1\RouterMatcher\RouterMatcher;

class myServer {
    
  /**
   * Router matcher.
   *
   * @var \Psf1\RouterMatcher\RouterMatcher
   */
  protected $routerMatcher;

  /**
   * Creates a myServer instance.
   */
  public function __construct() {
    // Create the matcher.
    $this->routerMatcher = new RouterMatcher();
    // Add new routes. If we need a subfolder where the second
    // can have dynamic values, it must be declared after the 
    // fixed one.
    // The same with other levels.
    $this->routerMatcher->addRoute('/example');
    // To declare a dynamic value you must enclose it with '{}'.
    $this->routerMatcher->addRoute('/entity/level2/{session_key}');
    $this->routerMatcher->addRoute('/entity/{session_key}');
    $this->routerMatcher->addRoute('/other-entity/list');
    $this->routerMatcher->addRoute('/other-entity/{id}/childs');
  }

  /**
   * Helper function to simulate send a request with JSON data.
   *
   * @param string $method
   *   HTTP method.
   * @param string $url
   *   Request URL.
   * @param array $request_data
   *   Request data.
   *
   * @return array
   *   Response data.
   */
   public function request($method, $url, array $request_data) {
     $response = [];
     $path = parse_url($url, PHP_URL_PATH);
     switch ($path) {
       case $this->routerMatcher->isMatch('/example', $path):
         switch ($method) {
           case 'POST':
             $response = [
                'http_code' => 200,
                'data' => '/example POST response',
             ];
           break;

           case 'GET':
             $response = [
               'http_code' => 200,
               'data' => '/example GET response',
             ];
           break;
        }
        break;
    
       case $this->routerMatcher->isMatch('/entity/{session_key}', $path):
         // Get URL parameters.
         $parameters = $this->routerMatcher->parseRoute($path);
         $response = [
            'http_code' => 200,
            'data' => '/entity/{session_key} response',
            'parameters' => $parameters,
         ];
       break;
       
       case $this->routerMatcher->isMatch('/entity/level2/{session_key}', $path):
       case $this->routerMatcher->isMatch('/other-entity/list', $path):
       case $this->routerMatcher->isMatch('/other-entity/{id}/childs', $path):
         // Get URL parameters.
         $parameters = $this->routerMatcher->parseRoute($path);
         $response = [
            'http_code' => 200,
            'data' => 'Other response',
            'parameters' => $parameters,
         ];
       break;

       default:
         $response = [
           'http_code' => 404,
           'data' => 'URL not found.'
         ];
       break;
     }
     return $response;
   }

}

psf1/router_matcher 适用场景与选型建议

psf1/router_matcher 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 1.39k 次下载、GitHub Stars 达 0, 最近一次更新时间为 2020 年 09 月 22 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 psf1/router_matcher 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 psf1/router_matcher 我们能提供哪些服务?
定制开发 / 二次开发

基于 psf1/router_matcher 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 1.39k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 4
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: Apache-2.0
  • 更新时间: 2020-09-22