{"id":15029507,"url":"https://github.com/00f100/fcphp-route","last_synced_at":"2026-01-25T15:03:13.803Z","repository":{"id":56894012,"uuid":"141829097","full_name":"00F100/fcphp-route","owner":"00F100","description":"Package to manipulate routes","archived":false,"fork":false,"pushed_at":"2019-03-04T20:49:53.000Z","size":30,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-11-13T22:14:46.978Z","etag":null,"topics":["fcphp","http","php7","php72","request","route"],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/00F100.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-07-21T16:30:40.000Z","updated_at":"2022-02-12T12:22:51.000Z","dependencies_parsed_at":"2022-08-21T01:20:24.267Z","dependency_job_id":null,"html_url":"https://github.com/00F100/fcphp-route","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/00F100%2Ffcphp-route","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/00F100%2Ffcphp-route/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/00F100%2Ffcphp-route/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/00F100%2Ffcphp-route/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/00F100","download_url":"https://codeload.github.com/00F100/fcphp-route/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225270659,"owners_count":17447635,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fcphp","http","php7","php72","request","route"],"created_at":"2024-09-24T20:10:51.796Z","updated_at":"2026-01-25T15:03:13.668Z","avatar_url":"https://github.com/00F100.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FcPHP Route\n\nPackage do manage routes into FcPhp\n\n[![Build Status](https://travis-ci.org/00F100/fcphp-route.svg?branch=master)](https://travis-ci.org/00F100/fcphp-route) [![codecov](https://codecov.io/gh/00F100/fcphp-route/branch/master/graph/badge.svg)](https://codecov.io/gh/00F100/fcphp-route) [![Total Downloads](https://poser.pugx.org/00F100/fcphp-route/downloads)](https://packagist.org/packages/00F100/fcphp-route)\n\n## How to install\n\nComposer:\n```sh\n$ composer require 00f100/fcphp-route\n```\n\nor composer.json\n```json\n{\n    \"require\": {\n        \"00f100/fcphp-route\": \"*\"\n    }\n}\n```\n\n## How to use\n\nAfter match route (same 404, 403) return instance of [FcPhp\\Route\\Entity](https://github.com/00F100/fcphp-route/blob/master/src/Interfaces/IEntity.php)\n\n```php\n\u003c?php\n\nuse FcPhp\\SHttp\\SEntity;\nuse FcPhp\\Route\\Facades\\RouteFacade;\n\n// See: https://github.com/00F100/fcphp-shttp\n$entity = new SEntity();\n\n// Config directories to autoload and cache\n$vendorPath = 'tests/*/*/config';\n$cachePath = 'tests/var/cache';\n\n// Init instance of Route\n$instance = RouteFacade::getInstance($entity, $vendorPath, $cachePath);\n\n// Match route into routes list\n$match = $instance-\u003ematch('GET', 'v1/users/10');\n\n// Print: FcPhp\\Route\\Entity\necho get_class($match);\n\n// Print: 200\necho $match-\u003egetStatusCode();\n```\n\n##### Callback's\n\n```php\n\u003c?php\n\nuse FcPhp\\Route\\Interfaces\\IEntity;\n\n// Init match route process\n$instance-\u003ecallback('initCallback', function(array $routes) {\n\n    // Your code here ...\n\n});\n\n// Match route\n$instance-\u003ecallback('matchCallback', function(array $routes, string $method, string $route, array $entity, IEntity $routeEntity) {\n\n    // Your code here ...\n\n});\n\n// Route not found\n$instance-\u003ecallback('notFoundCallback', function(array $routes, string $method, string $route, array $entity = [], IEntity $routeEntity = null) {\n\n    // Your code here ...\n\n});\n```\n\n##### [FcPhp\\Route\\Entity](https://github.com/00F100/fcphp-route/blob/master/src/Interfaces/IEntity.php)\n\n```php\n\u003c?php\n\nnamespace FcPhp\\Route\\Interfaces\n{\n    interface IEntity\n    {\n        /**\n         * Method to construct instance\n         *\n         * @param array $params Params to populate Entity\n         * @return void\n         */\n        public function __construct(array $params = []);\n\n        /**\n         * Method to return method of request\n         *\n         * @return string\n         */\n        public function getMethod() :string;\n\n        /**\n         * Method to return route of request\n         *\n         * @return string|null\n         */\n        public function getRoute();\n\n        /**\n         * Method to return rule to access\n         *\n         * @return string|null\n         */\n        public function getRule();\n\n        /**\n         * Method to return action to execute\n         *\n         * @return string|null\n         */\n        public function getAction();\n\n        /**\n         * Method to return filters to apply\n         *\n         * @return array\n         */\n        public function getFilter() :array;\n\n        /**\n         * Method to return status code\n         *\n         * @return int\n         */\n        public function getStatusCode();\n\n        /**\n         * Method to return status message\n         *\n         * @return string|null\n         */\n        public function getStatusMessage();\n\n        /**\n         * Method to configure full route\n         *\n         * @param string $fullRoute Full route\n         * @return void\n         */\n        public function setFullRoute(string $fullRoute) :void;\n\n        /**\n         * Method to return full route\n         *\n         * @return string|null\n         */\n        public function getFullRoute();\n\n        /**\n         * Method to configure params to controller\n         *\n         * @param array $params Params to controller\n         * @return void\n         */\n        public function setParams(array $params) :void;\n\n        /**\n         * Method to return params to controller\n         *\n         * @return array\n         */\n        public function getParams() :array;\n    }\n}\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F00f100%2Ffcphp-route","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F00f100%2Ffcphp-route","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F00f100%2Ffcphp-route/lists"}