{"id":13748174,"url":"https://github.com/igniphp/framework","last_synced_at":"2025-04-05T13:08:06.378Z","repository":{"id":56989378,"uuid":"124024060","full_name":"igniphp/framework","owner":"igniphp","description":"Swoole, PSR-15, PSR-7, PSR-11 lightweight modular anti-framework for REST micro-services.","archived":false,"fork":false,"pushed_at":"2021-01-16T09:51:33.000Z","size":182,"stargazers_count":266,"open_issues_count":1,"forks_count":14,"subscribers_count":18,"default_branch":"master","last_synced_at":"2024-05-22T19:30:28.849Z","etag":null,"topics":["fast","framework","http-server","lightweight","php","psr-15","psr-7","swoole"],"latest_commit_sha":null,"homepage":"","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/igniphp.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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-03-06T05:10:13.000Z","updated_at":"2024-05-15T21:56:47.000Z","dependencies_parsed_at":"2022-08-21T12:50:38.391Z","dependency_job_id":null,"html_url":"https://github.com/igniphp/framework","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igniphp%2Fframework","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igniphp%2Fframework/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igniphp%2Fframework/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igniphp%2Fframework/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/igniphp","download_url":"https://codeload.github.com/igniphp/framework/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247339158,"owners_count":20923014,"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":["fast","framework","http-server","lightweight","php","psr-15","psr-7","swoole"],"created_at":"2024-08-03T07:00:36.180Z","updated_at":"2025-04-05T13:08:06.359Z","avatar_url":"https://github.com/igniphp.png","language":"PHP","readme":"# ![Igni logo](https://github.com/igniphp/common/blob/master/logo/full.svg)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](./LICENSE)\n[![Build Status](https://travis-ci.org/igniphp/framework.svg?branch=master)](https://travis-ci.org/igniphp/framework)\n[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/igniphp/framework/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/igniphp/framework/?branch=master)\n[![Code Coverage](https://scrutinizer-ci.com/g/igniphp/framework/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/igniphp/framework/?branch=master)\n\nIgni is a php7 anti-framework with built-in [swoole server](https://www.swoole.co.uk) and modular architecture support to \nhelp you quickly write scalable PSR-7 and PSR-15 compilant REST services.\n\nIts main objective it to be as much transparent and as less visible for your application as possible.\n\n```php\n\u003c?php\nrequire 'vendor/autoload.php';\n\nuse Igni\\Application\\Config;\nuse Igni\\Application\\HttpApplication;\nuse Igni\\Application\\Providers\\ConfigProvider;\nuse Igni\\Network\\Http\\Response;\nuse Igni\\Network\\Http\\Request;\n\n$application = new HttpApplication();\n\n// Routing\n$application-\u003eget('/hello/{name}', function (Request $request) : Response {\n    return Response::asText(\"Hello {$request-\u003egetAttribute('name')}.\");\n});\n\n// Middleware - no interfaces no binding with framework code is required in order things to work.\n$application-\u003euse(function($request, /** callable|RequestHandlerInterface */$next) {\n    $response = $next($request);\n    return $response-\u003ewithAddedHeader('Version', $this-\u003egetConfig()-\u003eget('version'));\n});\n\n// Extending application is a brief just create and implement methods for your needs.\n$application-\u003eextend(new class implements ConfigProvider {\n    public function provideConfig(Config $config): void {\n        $config-\u003eset('version', '1.0');\n    }\n});\n\n$application-\u003erun();\n```\n\n## Installation and requirements\n\nRecommended installation way of the Igni Framework is with composer:\n\n``` \ncomposer install igniphp/framework\n```\n\nRequirements:\n - php 7.1 or better\n - [swoole](https://github.com/swoole/swoole-src) extension for build-in http server support\n\n### What's new\n\nWith version 2.0 network package was extracted from the framework code, error handling was \noverall improved as well as Server's listeners. More details can be found in changelog file.\n\n### Quick start\nAlternatively you can start using framework with [quick start](https://github.com/igniphp/framework-quick-start) which contains bootstrap application.\n\n## Features\n\n### Routing\n\nIgni router is based on very fast symfony routing library.\n\n### PSR-7, PSR-15 Support\n\nIgni fully supports PSR message standards for both manipulating http response, request and http middlwares.\n\n### Dependency Injection and Autoresolving\n\nIgni autoresolves dependencies for you and provides intuitive dependency container. \nIt also allows you to use any PSR compatible container of your choice.\n\n### Modular architecture\n\nModular and scalable solution is one of the most important aspects why this framework was born.\nSimply create a module class, implement required interfaces and extend application by your module.\n\n### Performant, production ready http server\n\nNo nginx nor apache is required when `swoole` is installed, application can be run the same manner as in node.js world:\n ``` \nphp examples/build_in_server_example.php\n ```\n \nIgni's http server is as fast as express.js application with almost 0 configuration. \n\n### Detailed documentation\n\nDetailed documentation and more examples can be [found here](docs/README.md) and in examples directory.\n","funding_links":[],"categories":["Framework","PHP"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Figniphp%2Fframework","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Figniphp%2Fframework","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Figniphp%2Fframework/lists"}