tyler / limon
Dependency-less, Simple PHP Framework
Installs: 18
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:framework
Requires
- php: ^8.2
- psr/container: ^2.0
- psr/event-dispatcher: ^1.0
- psr/http-factory: ^1.0
- psr/http-message: ^1.0
- psr/http-server-handler: ^1.0
- psr/http-server-middleware: ^1.0
- psr/log: ^3.0
Requires (Dev)
- mockery/mockery: ^1.5
- pestphp/pest: ^2
- php-parallel-lint/php-parallel-lint: ^1.3
- phpmd/phpmd: ^2.8
- phpstan/phpstan: ^1.4
- squizlabs/php_codesniffer: ^3.6
README
Dependency-less PHP Micro Framework with a focus on simplicity to get you prototyping and delivering new APIs and Websites quickly.
Basic Usage
<?php // example basic index.php require_once __DIR__ . '/../../vendor/autoload.php'; (function() { $app = new Limon\App( new Limon\Kernel( new ActionResolver ) ); /** @var Psr\Http\Message\ServerRequestInterface $request */ $request = captureServerRequest(); // Reguster a handler, this can be replaced // with middleware that sets the request-handler attribute // with a routing package $request = $request->withAttribute( 'requst-handler', fn(ServerRequestInterface $request) => new Response() ); $res = $app->handle($request); Limon\emit($res); })();
Getting Started
This getting started is based on XAMPP
- Require the composer package
composer require tylersriver/limon
- Create index.php at Apache web root
- Create .htaccess with below
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] </IfModule>
Packages
Limon adheres to the PSR standards for request, response, middleware handling and can be used with any compliant packages. There are some default packages wired to the example skeleton app here
Actions
Yocto is built around the idea of ADR and includes a base Action interface that can be implemented for splitting your http routes into separate objects.