mirror of
https://github.com/nextcloud/all-in-one.git
synced 2025-12-21 23:16:59 +00:00
Initial import
This commit is contained in:
commit
2295a33590
884 changed files with 93939 additions and 0 deletions
1
php/vendor/slim/twig-view/.coveralls.yml
vendored
Normal file
1
php/vendor/slim/twig-view/.coveralls.yml
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
json_path: coveralls-upload.json
|
||||
23
php/vendor/slim/twig-view/.editorconfig
vendored
Normal file
23
php/vendor/slim/twig-view/.editorconfig
vendored
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
# This file is for unifying the coding style for different editors and IDEs
|
||||
# editorconfig.org
|
||||
|
||||
# PHP PSR-2 Coding Standards
|
||||
# http://www.php-fig.org/psr/psr-2/
|
||||
|
||||
root = true
|
||||
|
||||
[*.{php,json,md}]
|
||||
charset = utf-8
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
trim_trailing_whitespace = true
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
|
||||
[*.yml]
|
||||
charset = utf-8
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
trim_trailing_whitespace = true
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
22
php/vendor/slim/twig-view/LICENSE.md
vendored
Normal file
22
php/vendor/slim/twig-view/LICENSE.md
vendored
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2015 Josh Lockhart <hello@joshlockhart.com>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
53
php/vendor/slim/twig-view/composer.json
vendored
Normal file
53
php/vendor/slim/twig-view/composer.json
vendored
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
{
|
||||
"name": "slim/twig-view",
|
||||
"type": "library",
|
||||
"description": "Slim Framework 4 view helper built on top of the Twig 3 templating component",
|
||||
"keywords": ["slim","framework","view","template","twig"],
|
||||
"homepage": "https://www.slimframework.com",
|
||||
"license": "MIT",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Josh Lockhart",
|
||||
"email": "hello@joshlockhart.com",
|
||||
"homepage": "http://joshlockhart.com"
|
||||
},
|
||||
{
|
||||
"name": "Pierre Berube",
|
||||
"email": "pierre@lgse.com",
|
||||
"homepage": "http://www.lgse.com"
|
||||
}
|
||||
],
|
||||
"require": {
|
||||
"php": "^7.2 || ^8.0",
|
||||
"psr/http-message": "^1.0",
|
||||
"slim/slim": "^4.7",
|
||||
"twig/twig": "^3.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^8.5.13 || ^9.3.8",
|
||||
"phpstan/phpstan": "^0.12.58",
|
||||
"psr/http-factory": "^1.0",
|
||||
"squizlabs/php_codesniffer": "^3.5",
|
||||
"weirdan/prophecy-shim": "^1.0 || ^2.0.2"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Slim\\Views\\": "src"
|
||||
}
|
||||
},
|
||||
"autoload-dev": {
|
||||
"psr-4": {
|
||||
"Slim\\Tests\\": "tests"
|
||||
}
|
||||
},
|
||||
"scripts": {
|
||||
"test": [
|
||||
"@phpunit",
|
||||
"@phpcs",
|
||||
"@phpstan"
|
||||
],
|
||||
"phpunit": "phpunit",
|
||||
"phpcs": "phpcs",
|
||||
"phpstan": "phpstan analyse src --memory-limit=-1"
|
||||
}
|
||||
}
|
||||
294
php/vendor/slim/twig-view/src/Twig.php
vendored
Normal file
294
php/vendor/slim/twig-view/src/Twig.php
vendored
Normal file
|
|
@ -0,0 +1,294 @@
|
|||
<?php
|
||||
/**
|
||||
* Slim Framework (http://slimframework.com)
|
||||
*
|
||||
* @license https://github.com/slimphp/Twig-View/blob/master/LICENSE.md (MIT License)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Slim\Views;
|
||||
|
||||
use ArrayAccess;
|
||||
use ArrayIterator;
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
use Psr\Http\Message\ServerRequestInterface;
|
||||
use RuntimeException;
|
||||
use Throwable;
|
||||
use Twig\Environment;
|
||||
use Twig\Error\LoaderError;
|
||||
use Twig\Error\RuntimeError;
|
||||
use Twig\Error\SyntaxError;
|
||||
use Twig\Extension\ExtensionInterface;
|
||||
use Twig\Loader\FilesystemLoader;
|
||||
use Twig\Loader\LoaderInterface;
|
||||
use Twig\RuntimeLoader\RuntimeLoaderInterface;
|
||||
|
||||
/**
|
||||
* Twig View
|
||||
*
|
||||
* This class is a Slim Framework view helper built on top of the Twig templating component.
|
||||
* Twig is a PHP component created by Fabien Potencier.
|
||||
*
|
||||
* @link https://twig.symfony.com/
|
||||
*/
|
||||
class Twig implements ArrayAccess
|
||||
{
|
||||
/**
|
||||
* Twig loader
|
||||
*
|
||||
* @var LoaderInterface
|
||||
*/
|
||||
protected $loader;
|
||||
|
||||
/**
|
||||
* Twig environment
|
||||
*
|
||||
* @var Environment
|
||||
*/
|
||||
protected $environment;
|
||||
|
||||
/**
|
||||
* Default view variables
|
||||
*
|
||||
* @var array<string, mixed>
|
||||
*/
|
||||
protected $defaultVariables = [];
|
||||
|
||||
/**
|
||||
* @param ServerRequestInterface $request
|
||||
* @param string $attributeName
|
||||
*
|
||||
* @return Twig
|
||||
*/
|
||||
public static function fromRequest(ServerRequestInterface $request, string $attributeName = 'view'): self
|
||||
{
|
||||
$twig = $request->getAttribute($attributeName);
|
||||
if ($twig === null || !($twig instanceof self)) {
|
||||
throw new RuntimeException(
|
||||
'Twig could not be found in the server request attributes using the key "'. $attributeName .'".'
|
||||
);
|
||||
}
|
||||
|
||||
return $twig;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string|string[] $path Path(s) to templates directory
|
||||
* @param array<string, mixed> $settings Twig environment settings
|
||||
*
|
||||
* @throws LoaderError When the template cannot be found
|
||||
*
|
||||
* @return Twig
|
||||
*/
|
||||
public static function create($path, array $settings = []): self
|
||||
{
|
||||
$loader = new FilesystemLoader();
|
||||
|
||||
$paths = is_array($path) ? $path : [$path];
|
||||
foreach ($paths as $namespace => $path) {
|
||||
if (is_string($namespace)) {
|
||||
$loader->setPaths($path, $namespace);
|
||||
} else {
|
||||
$loader->addPath($path);
|
||||
}
|
||||
}
|
||||
|
||||
return new self($loader, $settings);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param LoaderInterface $loader Twig loader
|
||||
* @param array<string, mixed> $settings Twig environment settings
|
||||
*/
|
||||
public function __construct(LoaderInterface $loader, array $settings = [])
|
||||
{
|
||||
$this->loader = $loader;
|
||||
$this->environment = new Environment($this->loader, $settings);
|
||||
}
|
||||
|
||||
/**
|
||||
* Proxy method to add an extension to the Twig environment
|
||||
*
|
||||
* @param ExtensionInterface $extension A single extension instance or an array of instances
|
||||
*/
|
||||
public function addExtension(ExtensionInterface $extension): void
|
||||
{
|
||||
$this->environment->addExtension($extension);
|
||||
}
|
||||
|
||||
/**
|
||||
* Proxy method to add a runtime loader to the Twig environment
|
||||
*
|
||||
* @param RuntimeLoaderInterface $runtimeLoader
|
||||
*/
|
||||
public function addRuntimeLoader(RuntimeLoaderInterface $runtimeLoader): void
|
||||
{
|
||||
$this->environment->addRuntimeLoader($runtimeLoader);
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetch rendered template
|
||||
*
|
||||
* @param string $template Template pathname relative to templates directory
|
||||
* @param array<string, mixed> $data Associative array of template variables
|
||||
*
|
||||
* @throws LoaderError When the template cannot be found
|
||||
* @throws SyntaxError When an error occurred during compilation
|
||||
* @throws RuntimeError When an error occurred during rendering
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function fetch(string $template, array $data = []): string
|
||||
{
|
||||
$data = array_merge($this->defaultVariables, $data);
|
||||
|
||||
return $this->environment->render($template, $data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetch rendered block
|
||||
*
|
||||
* @param string $template Template pathname relative to templates directory
|
||||
* @param string $block Name of the block within the template
|
||||
* @param array<string, mixed> $data Associative array of template variables
|
||||
*
|
||||
* @throws Throwable When an error occurred during rendering
|
||||
* @throws LoaderError When the template cannot be found
|
||||
* @throws SyntaxError When an error occurred during compilation
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function fetchBlock(string $template, string $block, array $data = []): string
|
||||
{
|
||||
$data = array_merge($this->defaultVariables, $data);
|
||||
|
||||
return $this->environment->resolveTemplate($template)->renderBlock($block, $data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetch rendered string
|
||||
*
|
||||
* @param string $string String
|
||||
* @param array<string, mixed> $data Associative array of template variables
|
||||
*
|
||||
* @throws LoaderError When the template cannot be found
|
||||
* @throws SyntaxError When an error occurred during compilation
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function fetchFromString(string $string = '', array $data = []): string
|
||||
{
|
||||
$data = array_merge($this->defaultVariables, $data);
|
||||
|
||||
return $this->environment->createTemplate($string)->render($data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Output rendered template
|
||||
*
|
||||
* @param ResponseInterface $response
|
||||
* @param string $template Template pathname relative to templates directory
|
||||
* @param array<string, mixed> $data Associative array of template variables
|
||||
*
|
||||
* @throws LoaderError When the template cannot be found
|
||||
* @throws SyntaxError When an error occurred during compilation
|
||||
* @throws RuntimeError When an error occurred during rendering
|
||||
*
|
||||
* @return ResponseInterface
|
||||
*/
|
||||
public function render(ResponseInterface $response, string $template, array $data = []): ResponseInterface
|
||||
{
|
||||
$response->getBody()->write($this->fetch($template, $data));
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return Twig loader
|
||||
*
|
||||
* @return LoaderInterface
|
||||
*/
|
||||
public function getLoader(): LoaderInterface
|
||||
{
|
||||
return $this->loader;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return Twig environment
|
||||
*
|
||||
* @return Environment
|
||||
*/
|
||||
public function getEnvironment(): Environment
|
||||
{
|
||||
return $this->environment;
|
||||
}
|
||||
|
||||
/**
|
||||
* Does this collection have a given key?
|
||||
*
|
||||
* @param string $key The data key
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function offsetExists($key): bool
|
||||
{
|
||||
return array_key_exists($key, $this->defaultVariables);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get collection item for key
|
||||
*
|
||||
* @param string $key The data key
|
||||
*
|
||||
* @return mixed The key's value, or the default value
|
||||
*/
|
||||
public function offsetGet($key)
|
||||
{
|
||||
if (!$this->offsetExists($key)) {
|
||||
return null;
|
||||
}
|
||||
return $this->defaultVariables[$key];
|
||||
}
|
||||
|
||||
/**
|
||||
* Set collection item
|
||||
*
|
||||
* @param string $key The data key
|
||||
* @param mixed $value The data value
|
||||
*/
|
||||
public function offsetSet($key, $value): void
|
||||
{
|
||||
$this->defaultVariables[$key] = $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove item from collection
|
||||
*
|
||||
* @param string $key The data key
|
||||
*/
|
||||
public function offsetUnset($key): void
|
||||
{
|
||||
unset($this->defaultVariables[$key]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get number of items in collection
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function count(): int
|
||||
{
|
||||
return count($this->defaultVariables);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get collection iterator
|
||||
*
|
||||
* @return ArrayIterator<string, mixed>
|
||||
*/
|
||||
public function getIterator(): ArrayIterator
|
||||
{
|
||||
return new ArrayIterator($this->defaultVariables);
|
||||
}
|
||||
}
|
||||
39
php/vendor/slim/twig-view/src/TwigExtension.php
vendored
Normal file
39
php/vendor/slim/twig-view/src/TwigExtension.php
vendored
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
<?php
|
||||
/**
|
||||
* Slim Framework (http://slimframework.com)
|
||||
*
|
||||
* @license https://github.com/slimphp/Twig-View/blob/master/LICENSE.md (MIT License)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Slim\Views;
|
||||
|
||||
use Twig\Extension\AbstractExtension;
|
||||
use Twig\TwigFunction;
|
||||
|
||||
class TwigExtension extends AbstractExtension
|
||||
{
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getName(): string
|
||||
{
|
||||
return 'slim';
|
||||
}
|
||||
|
||||
/**
|
||||
* @return TwigFunction[]
|
||||
*/
|
||||
public function getFunctions(): array
|
||||
{
|
||||
return [
|
||||
new TwigFunction('url_for', [TwigRuntimeExtension::class, 'urlFor']),
|
||||
new TwigFunction('full_url_for', [TwigRuntimeExtension::class, 'fullUrlFor']),
|
||||
new TwigFunction('is_current_url', [TwigRuntimeExtension::class, 'isCurrentUrl']),
|
||||
new TwigFunction('current_url', [TwigRuntimeExtension::class, 'getCurrentUrl']),
|
||||
new TwigFunction('get_uri', [TwigRuntimeExtension::class, 'getUri']),
|
||||
new TwigFunction('base_path', [TwigRuntimeExtension::class, 'getBasePath']),
|
||||
];
|
||||
}
|
||||
}
|
||||
127
php/vendor/slim/twig-view/src/TwigMiddleware.php
vendored
Normal file
127
php/vendor/slim/twig-view/src/TwigMiddleware.php
vendored
Normal file
|
|
@ -0,0 +1,127 @@
|
|||
<?php
|
||||
/**
|
||||
* Slim Framework (http://slimframework.com)
|
||||
*
|
||||
* @license https://github.com/slimphp/Twig-View/blob/master/LICENSE.md (MIT License)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Slim\Views;
|
||||
|
||||
use Psr\Container\ContainerInterface;
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
use Psr\Http\Message\ServerRequestInterface;
|
||||
use Psr\Http\Server\MiddlewareInterface;
|
||||
use Psr\Http\Server\RequestHandlerInterface;
|
||||
use RuntimeException;
|
||||
use Slim\App;
|
||||
use Slim\Interfaces\RouteParserInterface;
|
||||
|
||||
class TwigMiddleware implements MiddlewareInterface
|
||||
{
|
||||
/**
|
||||
* @var Twig
|
||||
*/
|
||||
protected $twig;
|
||||
|
||||
/**
|
||||
* @var RouteParserInterface
|
||||
*/
|
||||
protected $routeParser;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
protected $basePath;
|
||||
|
||||
/**
|
||||
* @var string|null
|
||||
*/
|
||||
protected $attributeName;
|
||||
|
||||
/**
|
||||
* @param App $app
|
||||
* @param string $containerKey
|
||||
*
|
||||
* @return TwigMiddleware
|
||||
*/
|
||||
public static function createFromContainer(App $app, string $containerKey = 'view'): self
|
||||
{
|
||||
$container = $app->getContainer();
|
||||
if ($container === null) {
|
||||
throw new RuntimeException('The app does not have a container.');
|
||||
}
|
||||
if (!$container->has($containerKey)) {
|
||||
throw new RuntimeException(
|
||||
"The specified container key does not exist: $containerKey"
|
||||
);
|
||||
}
|
||||
|
||||
$twig = $container->get($containerKey);
|
||||
if (!($twig instanceof Twig)) {
|
||||
throw new RuntimeException(
|
||||
"Twig instance could not be resolved via container key: $containerKey"
|
||||
);
|
||||
}
|
||||
|
||||
return new self(
|
||||
$twig,
|
||||
$app->getRouteCollector()->getRouteParser(),
|
||||
$app->getBasePath()
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param App $app
|
||||
* @param Twig $twig
|
||||
* @param string $attributeName
|
||||
*
|
||||
* @return TwigMiddleware
|
||||
*/
|
||||
public static function create(App $app, Twig $twig, string $attributeName = 'view'): self
|
||||
{
|
||||
return new self(
|
||||
$twig,
|
||||
$app->getRouteCollector()->getRouteParser(),
|
||||
$app->getBasePath(),
|
||||
$attributeName
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Twig $twig
|
||||
* @param RouteParserInterface $routeParser
|
||||
* @param string $basePath
|
||||
* @param string|null $attributeName
|
||||
*/
|
||||
public function __construct(
|
||||
Twig $twig,
|
||||
RouteParserInterface $routeParser,
|
||||
string $basePath = '',
|
||||
?string $attributeName = null
|
||||
) {
|
||||
$this->twig = $twig;
|
||||
$this->routeParser = $routeParser;
|
||||
$this->basePath = $basePath;
|
||||
$this->attributeName = $attributeName;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
|
||||
{
|
||||
$runtimeLoader = new TwigRuntimeLoader($this->routeParser, $request->getUri(), $this->basePath);
|
||||
$this->twig->addRuntimeLoader($runtimeLoader);
|
||||
|
||||
$extension = new TwigExtension();
|
||||
$this->twig->addExtension($extension);
|
||||
|
||||
if ($this->attributeName !== null) {
|
||||
$request = $request->withAttribute($this->attributeName, $this->twig);
|
||||
}
|
||||
|
||||
return $handler->handle($request);
|
||||
}
|
||||
}
|
||||
152
php/vendor/slim/twig-view/src/TwigRuntimeExtension.php
vendored
Normal file
152
php/vendor/slim/twig-view/src/TwigRuntimeExtension.php
vendored
Normal file
|
|
@ -0,0 +1,152 @@
|
|||
<?php
|
||||
/**
|
||||
* Slim Framework (http://slimframework.com)
|
||||
*
|
||||
* @license https://github.com/slimphp/Twig-View/blob/master/LICENSE.md (MIT License)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Slim\Views;
|
||||
|
||||
use Psr\Http\Message\UriInterface;
|
||||
use Slim\Interfaces\RouteParserInterface;
|
||||
|
||||
class TwigRuntimeExtension
|
||||
{
|
||||
/**
|
||||
* @var RouteParserInterface
|
||||
*/
|
||||
protected $routeParser;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
protected $basePath = '';
|
||||
|
||||
/**
|
||||
* @var UriInterface
|
||||
*/
|
||||
protected $uri;
|
||||
|
||||
/**
|
||||
* @param RouteParserInterface $routeParser Route parser
|
||||
* @param UriInterface $uri Uri
|
||||
* @param string $basePath Base path
|
||||
*/
|
||||
public function __construct(RouteParserInterface $routeParser, UriInterface $uri, string $basePath = '')
|
||||
{
|
||||
$this->routeParser = $routeParser;
|
||||
$this->uri = $uri;
|
||||
$this->basePath = $basePath;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the url for a named route
|
||||
*
|
||||
* @param string $routeName Route name
|
||||
* @param array<string, string> $data Route placeholders
|
||||
* @param array<string, string> $queryParams Query parameters
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function urlFor(string $routeName, array $data = [], array $queryParams = []): string
|
||||
{
|
||||
return $this->routeParser->urlFor($routeName, $data, $queryParams);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the full url for a named route
|
||||
*
|
||||
* @param string $routeName Route name
|
||||
* @param array<string, string> $data Route placeholders
|
||||
* @param array<string, string> $queryParams Query parameters
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function fullUrlFor(string $routeName, array $data = [], array $queryParams = []): string
|
||||
{
|
||||
return $this->routeParser->fullUrlFor($this->uri, $routeName, $data, $queryParams);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $routeName Route name
|
||||
* @param array<string, string> $data Route placeholders
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function isCurrentUrl(string $routeName, array $data = []): bool
|
||||
{
|
||||
$currentUrl = $this->basePath.$this->uri->getPath();
|
||||
$result = $this->routeParser->urlFor($routeName, $data);
|
||||
|
||||
return $result === $currentUrl;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get current path on given Uri
|
||||
*
|
||||
* @param bool $withQueryString
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getCurrentUrl(bool $withQueryString = false): string
|
||||
{
|
||||
$currentUrl = $this->basePath.$this->uri->getPath();
|
||||
$query = $this->uri->getQuery();
|
||||
|
||||
if ($withQueryString && !empty($query)) {
|
||||
$currentUrl .= '?'.$query;
|
||||
}
|
||||
|
||||
return $currentUrl;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the uri
|
||||
*
|
||||
* @return UriInterface
|
||||
*/
|
||||
public function getUri(): UriInterface
|
||||
{
|
||||
return $this->uri;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the uri
|
||||
*
|
||||
* @param UriInterface $uri
|
||||
*
|
||||
* @return self
|
||||
*/
|
||||
public function setUri(UriInterface $uri): self
|
||||
{
|
||||
$this->uri = $uri;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the base path
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getBasePath(): string
|
||||
{
|
||||
return $this->basePath;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the base path
|
||||
*
|
||||
* @param string $basePath
|
||||
*
|
||||
* @return self
|
||||
*/
|
||||
public function setBasePath(string $basePath): self
|
||||
{
|
||||
$this->basePath = $basePath;
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
||||
58
php/vendor/slim/twig-view/src/TwigRuntimeLoader.php
vendored
Normal file
58
php/vendor/slim/twig-view/src/TwigRuntimeLoader.php
vendored
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
<?php
|
||||
/**
|
||||
* Slim Framework (http://slimframework.com)
|
||||
*
|
||||
* @license https://github.com/slimphp/Twig-View/blob/master/LICENSE.md (MIT License)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Slim\Views;
|
||||
|
||||
use Psr\Http\Message\UriInterface;
|
||||
use Slim\Interfaces\RouteParserInterface;
|
||||
use Twig\RuntimeLoader\RuntimeLoaderInterface;
|
||||
|
||||
class TwigRuntimeLoader implements RuntimeLoaderInterface
|
||||
{
|
||||
/**
|
||||
* @var RouteParserInterface
|
||||
*/
|
||||
protected $routeParser;
|
||||
|
||||
/**
|
||||
* @var UriInterface
|
||||
*/
|
||||
protected $uri;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
protected $basePath = '';
|
||||
|
||||
/**
|
||||
* TwigRuntimeLoader constructor.
|
||||
*
|
||||
* @param RouteParserInterface $routeParser
|
||||
* @param UriInterface $uri
|
||||
* @param string $basePath
|
||||
*/
|
||||
public function __construct(RouteParserInterface $routeParser, UriInterface $uri, string $basePath = '')
|
||||
{
|
||||
$this->routeParser = $routeParser;
|
||||
$this->uri = $uri;
|
||||
$this->basePath = $basePath;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function load(string $class)
|
||||
{
|
||||
if (TwigRuntimeExtension::class === $class) {
|
||||
return new $class($this->routeParser, $this->uri, $this->basePath);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue