jtl / shop5-router-lib
JTL-Shop5 Router library
0.5.1
2021-06-16 09:10 UTC
Requires
- php: ^7.4|^8.0
- ext-json: *
- illuminate/http: ^8.45.1
- izzle/model: ^0.10.2
- izzle/translation: ^0.3.0
- monolog/monolog: ^1.23
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.18
- phpunit/phpunit: ^9.5
README
Simple Router Lib, based on JTL-Shop5
Installation
Using composer:
$ composer require jtl/shop5-router-lib
Usage
api.php
use JTL\Plugin\Helper as PluginHelper; use Symfony\Component\HttpFoundation\Request; $plugin = null; $pluginId = PluginHelper::getIDByPluginID('your_plugin'); if ($pluginId !== null) { $loader = pluginHelper::getLoaderByPluginID($pluginId); if ($loader !== null) { $plugin = $loader->init($pluginId); } } $router = new Router('Plugin\your_plugin\Controller', Shop()::getInstance(), $plugin); // After events (before works also) $router->after(static function (Request $request, array $arguments, $result) { // Nasty after logic }); try { echo $router->send(); } catch (Exception $e) { header('Internal Server Error', true, 500); echo $e->getMessage(); }
FooController.php
<?php declare(strict_types=1); namespace Plugin\your_plugin\Controller; use Plugin\your_plugin\Models\Foobar; use Plugin\your_plugin\Services\FooService; use Jtl\Shop5Router\Http\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; class FooController extends AbstractController { /** * Can be accessed via Http GET api.php?action=foo.bar&id=3 * Other Http Methods are also available * * @param Request $request * @param string $id * @return Foobar|null */ public function bar(Request $request, string $id): ?Foobar { $service = new FooService(); return $service->find($id); } }
License
Copyright (c) 2020-present JTL-Software