00f100/fcphp-route

此包的最新版本(0.2.0)没有可用的许可证信息。

用于操作FcPhp路由的包

0.2.0 2019-03-04 20:49 UTC

This package is auto-updated.

Last update: 2024-09-18 06:43:34 UTC


README

该包用于将路由管理到FcPhp中

Build Status codecov Total Downloads

如何安装

Composer

$ composer require 00f100/fcphp-route

或 composer.json

{
    "require": {
        "00f100/fcphp-route": "*"
    }
}

如何使用

匹配路由后(如404、403)返回 FcPhp\Route\Entity 的实例

<?php

use FcPhp\SHttp\SEntity;
use FcPhp\Route\Facades\RouteFacade;

// See: https://github.com/00F100/fcphp-shttp
$entity = new SEntity();

// Config directories to autoload and cache
$vendorPath = 'tests/*/*/config';
$cachePath = 'tests/var/cache';

// Init instance of Route
$instance = RouteFacade::getInstance($entity, $vendorPath, $cachePath);

// Match route into routes list
$match = $instance->match('GET', 'v1/users/10');

// Print: FcPhp\Route\Entity
echo get_class($match);

// Print: 200
echo $match->getStatusCode();
回调函数
<?php

use FcPhp\Route\Interfaces\IEntity;

// Init match route process
$instance->callback('initCallback', function(array $routes) {

    // Your code here ...

});

// Match route
$instance->callback('matchCallback', function(array $routes, string $method, string $route, array $entity, IEntity $routeEntity) {

    // Your code here ...

});

// Route not found
$instance->callback('notFoundCallback', function(array $routes, string $method, string $route, array $entity = [], IEntity $routeEntity = null) {

    // Your code here ...

});
FcPhp\Route\Entity
<?php

namespace FcPhp\Route\Interfaces
{
    interface IEntity
    {
        /**
         * Method to construct instance
         *
         * @param array $params Params to populate Entity
         * @return void
         */
        public function __construct(array $params = []);

        /**
         * Method to return method of request
         *
         * @return string
         */
        public function getMethod() :string;

        /**
         * Method to return route of request
         *
         * @return string|null
         */
        public function getRoute();

        /**
         * Method to return rule to access
         *
         * @return string|null
         */
        public function getRule();

        /**
         * Method to return action to execute
         *
         * @return string|null
         */
        public function getAction();

        /**
         * Method to return filters to apply
         *
         * @return array
         */
        public function getFilter() :array;

        /**
         * Method to return status code
         *
         * @return int
         */
        public function getStatusCode();

        /**
         * Method to return status message
         *
         * @return string|null
         */
        public function getStatusMessage();

        /**
         * Method to configure full route
         *
         * @param string $fullRoute Full route
         * @return void
         */
        public function setFullRoute(string $fullRoute) :void;

        /**
         * Method to return full route
         *
         * @return string|null
         */
        public function getFullRoute();

        /**
         * Method to configure params to controller
         *
         * @param array $params Params to controller
         * @return void
         */
        public function setParams(array $params) :void;

        /**
         * Method to return params to controller
         *
         * @return array
         */
        public function getParams() :array;
    }
}