Base commit.
commit
7317e7ca3a
|
|
@ -0,0 +1,15 @@
|
|||
## Ignore Visual Studio temporary files, build results, and
|
||||
## files generated by popular Visual Studio add-ons.
|
||||
##
|
||||
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
|
||||
|
||||
# KOW
|
||||
.vscode/
|
||||
temp/
|
||||
log/
|
||||
|
||||
|
||||
#ZAZA
|
||||
#d.designer.vb
|
||||
#*.alb
|
||||
*.log
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App;
|
||||
|
||||
use Nette;
|
||||
use Nette\Bootstrap\Configurator;
|
||||
|
||||
|
||||
class Bootstrap
|
||||
{
|
||||
private Configurator $configurator;
|
||||
private string $rootDir;
|
||||
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->rootDir = dirname(__DIR__);
|
||||
$this->configurator = new Configurator;
|
||||
$this->configurator->setTempDirectory($this->rootDir . '/temp');
|
||||
}
|
||||
|
||||
|
||||
public function bootWebApplication(): Nette\DI\Container
|
||||
{
|
||||
$this->initializeEnvironment();
|
||||
$this->setupContainer();
|
||||
return $this->configurator->createContainer();
|
||||
}
|
||||
|
||||
|
||||
public function initializeEnvironment(): void
|
||||
{
|
||||
//$this->configurator->setDebugMode('secret@23.75.345.200'); // enable for your remote IP
|
||||
$this->configurator->enableTracy($this->rootDir . '/log');
|
||||
|
||||
$this->configurator->createRobotLoader()
|
||||
->addDirectory(__DIR__)
|
||||
->register();
|
||||
}
|
||||
|
||||
|
||||
private function setupContainer(): void
|
||||
{
|
||||
$configDir = $this->rootDir . '/config';
|
||||
$this->configurator->addConfig($configDir . '/common.neon');
|
||||
$this->configurator->addConfig($configDir . '/services.neon');
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Core;
|
||||
|
||||
use Nette;
|
||||
use Nette\Application\Routers\RouteList;
|
||||
|
||||
|
||||
final class RouterFactory
|
||||
{
|
||||
use Nette\StaticClass;
|
||||
|
||||
public static function createRouter(): RouteList
|
||||
{
|
||||
$router = new RouteList;
|
||||
$router->addRoute('<presenter>/<action>[/<id>]', 'Home:default');
|
||||
return $router;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width">
|
||||
|
||||
<title>{ifset title}{include title|stripHtml} | {/ifset}Nette Web</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div n:foreach="$flashes as $flash" n:class="flash, $flash->type">{$flash->message}</div>
|
||||
|
||||
{include content}
|
||||
|
||||
{block scripts}
|
||||
<script src="https://unpkg.com/nette-forms@3"></script>
|
||||
{/block}
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Presentation\Accessory;
|
||||
|
||||
use Latte\Extension;
|
||||
|
||||
|
||||
final class LatteExtension extends Extension
|
||||
{
|
||||
public function getFilters(): array
|
||||
{
|
||||
return [];
|
||||
}
|
||||
|
||||
|
||||
public function getFunctions(): array
|
||||
{
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
{block content}
|
||||
<h1 n:block=title>Access Denied</h1>
|
||||
|
||||
<p>You do not have permission to view this page. Please try contact the web
|
||||
site administrator if you believe you should be able to view this page.</p>
|
||||
|
||||
<p><small>error 403</small></p>
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
{block content}
|
||||
<h1 n:block=title>Page Not Found</h1>
|
||||
|
||||
<p>The page you requested could not be found. It is possible that the address is
|
||||
incorrect, or that the page no longer exists. Please use a search engine to find
|
||||
what you are looking for.</p>
|
||||
|
||||
<p><small>error 404</small></p>
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
{block content}
|
||||
<h1 n:block=title>Page Not Found</h1>
|
||||
|
||||
<p>The page you requested has been taken off the site. We apologize for the inconvenience.</p>
|
||||
|
||||
<p><small>error 410</small></p>
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
{block content}
|
||||
<h1 n:block=title>Oops...</h1>
|
||||
|
||||
<p>Your browser sent a request that this server could not understand or process.</p>
|
||||
|
||||
<p><small>error {$httpCode}</small></p>
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Presentation\Error\Error4xx;
|
||||
|
||||
use Nette;
|
||||
use Nette\Application\Attributes\Requires;
|
||||
|
||||
|
||||
/**
|
||||
* Handles 4xx HTTP error responses.
|
||||
*/
|
||||
#[Requires(methods: '*', forward: true)]
|
||||
final class Error4xxPresenter extends Nette\Application\UI\Presenter
|
||||
{
|
||||
public function renderDefault(Nette\Application\BadRequestException $exception): void
|
||||
{
|
||||
// renders the appropriate error template based on the HTTP status code
|
||||
$code = $exception->getCode();
|
||||
$file = is_file($file = __DIR__ . "/$code.latte")
|
||||
? $file
|
||||
: __DIR__ . '/4xx.latte';
|
||||
$this->template->httpCode = $code;
|
||||
$this->template->setFile($file);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
<!DOCTYPE html><!-- "' --></textarea></script></style></pre></xmp></a></audio></button></canvas></datalist></details></dialog></iframe></listing></meter></noembed></noframes></noscript></optgroup></option></progress></rp></select></table></template></title></video>
|
||||
<meta charset="utf-8">
|
||||
<meta name="robots" content="noindex">
|
||||
<title>Server Error</title>
|
||||
|
||||
<style>
|
||||
#nette-error { all: initial; position: absolute; top: 0; left: 0; right: 0; height: 70vh; min-height: 400px; display: flex; align-items: center; justify-content: center; z-index: 1000 }
|
||||
#nette-error div { all: initial; max-width: 550px; background: white; color: #333; display: block }
|
||||
#nette-error h1 { all: initial; font: bold 50px/1.1 sans-serif; display: block; margin: 40px }
|
||||
#nette-error p { all: initial; font: 20px/1.4 sans-serif; margin: 40px; display: block }
|
||||
#nette-error small { color: gray }
|
||||
</style>
|
||||
|
||||
<div id=nette-error>
|
||||
<div>
|
||||
<h1>Server Error</h1>
|
||||
|
||||
<p>We're sorry! The server encountered an internal error and
|
||||
was unable to complete your request. Please try again later.</p>
|
||||
|
||||
<p><small>error 500</small></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
document.body.insertBefore(document.getElementById('nette-error'), document.body.firstChild);
|
||||
</script>
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
header('HTTP/1.1 503 Service Unavailable');
|
||||
header('Retry-After: 300'); // 5 minutes in seconds
|
||||
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<meta name="robots" content="noindex">
|
||||
<meta name="generator" content="Nette Framework">
|
||||
|
||||
<style>
|
||||
body { color: #333; background: white; width: 500px; margin: 100px auto }
|
||||
h1 { font: bold 47px/1.5 sans-serif; margin: .6em 0 }
|
||||
p { font: 21px/1.5 Georgia,serif; margin: 1.5em 0 }
|
||||
</style>
|
||||
|
||||
<title>Site is temporarily down for maintenance</title>
|
||||
|
||||
<h1>We're Sorry</h1>
|
||||
|
||||
<p>The site is temporarily down for maintenance. Please try again in a few minutes.</p>
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Presentation\Error\Error5xx;
|
||||
|
||||
use Nette;
|
||||
use Nette\Application\Attributes\Requires;
|
||||
use Nette\Application\Responses;
|
||||
use Nette\Http;
|
||||
use Tracy\ILogger;
|
||||
|
||||
|
||||
/**
|
||||
* Handles uncaught exceptions and errors, and logs them.
|
||||
*/
|
||||
#[Requires(forward: true)]
|
||||
final class Error5xxPresenter implements Nette\Application\IPresenter
|
||||
{
|
||||
public function __construct(
|
||||
private ILogger $logger,
|
||||
) {
|
||||
}
|
||||
|
||||
|
||||
public function run(Nette\Application\Request $request): Nette\Application\Response
|
||||
{
|
||||
// Log the exception
|
||||
$exception = $request->getParameter('exception');
|
||||
$this->logger->log($exception, ILogger::EXCEPTION);
|
||||
|
||||
// Display a generic error message to the user
|
||||
return new Responses\CallbackResponse(function (Http\IRequest $httpRequest, Http\IResponse $httpResponse): void {
|
||||
if (preg_match('#^text/html(?:;|$)#', (string) $httpResponse->getHeader('Content-Type'))) {
|
||||
require __DIR__ . '/500.phtml';
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Presentation\Home;
|
||||
|
||||
use Nette;
|
||||
|
||||
|
||||
final class HomePresenter extends Nette\Application\UI\Presenter
|
||||
{
|
||||
}
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
{* This is the welcome page, you can delete it *}
|
||||
|
||||
{block content}
|
||||
<div id="banner">
|
||||
<h1 n:block=title>Congratulations!</h1>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
<h2>You have successfully created your <a href="https://nette.org">Nette</a> Web project.</h2>
|
||||
|
||||
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEYAAABVCAYAAAD0bJKxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAACudJREFUeNrMXG1sFMcZfvfu7ECw7+xDaQL+AApE1B+EJLapSNs4QIhtVWpSVTJNVIkqatX+II1apf8SoTZSq/KHiv5oqRolVaUS5UfgD04qtRAcUGipSrDdjxjHxDa0xOIcDBiMOU9nZj9udndmZ2Y/zjen0d7uzs7u+8z7Pu87H7sGCFLvrqfWGABbwMyBqfW5C5BrvhFYBkFFpiMvP3HlQ94JgwPI43izD+du1dpbn8XArLlRmaLLW+Qiznte3n7lPS4wPU/uyuHN6zg/rXpPwzAvb+kfhSzWGJTMg0fHBfGe3ZQ+hbORonIQcN5wAdOz80kCygnWbOrzeWhsbITabBZyuSz/ptYNjU3HwaidXhIBw6SF4i2YW5iGIlownz+FAUpTKLpfsTQnYwqI9tmgVFVVwUMPb4F8fqWjTsW7RQtiDio43WMsg3S6puwChtXE6lQNrKi6D67dnoC5uzOAiqY8qTS1mHWkTGrXjp1rcB0v2hdtfHAj1pAcLBaLUFxkcvEuzkUr33WdIxipZm1QUMiskHLLmiFtVNHyWAzyfGt/8ufPfc3WmD0swCMj/6RZyCucYy35Mcimb8bCJShZog1MBBysNcRyjmawGW1RIdige4vMAy2RgNIqRfUv4mwCgzUGoTo/XbNUgpTuiipJwGg3qHPIV0Sqij47FHckLqBi/Uiwn1F9JkNYMyqft0EJWh+yhEQ2MAINUeEWFzYoPg5ZMgJmrs2UorQQ3CIhGZSghkSqBsnNIhOKW3wgSmRACVoSitdUEVLkGCOoLxDyAcvlwWR1I+4Jg88xOtzCtaSKETAi+fqVQf8mcZFvbAJGMSUf+YbgFtEDLbmAEJLzXO46KrdYWobEalB+ARN11zG3cFkFFNSLVGkhtLsWAVkm4kVJgcfGMTKyNUS8wlynRb4oIWVBMVxiyTE+Pu7nGCOMlyIcg5ZOQKXLVOo1LGywMJk4ngtVmoBhb2zluvr6mNw1CmEiuMCqulZYXpVzDn08fTo2jYuCXzqdJqYk6F3zHLbQXetz97KqLPxg+3HXsbfO7oW/T7wp65smZ6qMHCnR4DHS+Kl2ztjcsqrXV6xlda+7nKLqq2S2TpUx9Ewk2zX8SKum1tW9nGN9sCyThdsLs9EpBkXgGaIxNGqVZFlFSLMVifAEBJJu3bkGlz8bdgHmKs6bfok4fcKrt6RRyAJGoT4pcCpqypoRoy1j06dg7NNTLnOKRcCwc1sOx0QzXefhdFqQNaORSwMwcnnA2W9r6KPEHMvknSb/8PtKcfSwFXoW9SuaqPB2GsbAEE4hJrW8OucAd/bim1K+6FjXD60NvbD+vseca23zJFo4+NEhrJGnlTmI9a4pbTPlNB2yIl+k0IKstlyaGYbbd2bpcQKQi2cknuTFXX+B/q6DFGQWFJLIfltjH3x/+xHoWNuvSVaS3rU2sSuOdnas3e38H/zoN04ZAkznOvMcEYqYEwVNUCsh7Ib6NijcnKDaMXNz0oqPcrQeG6zdWw/CZdwApBF0vFL43jVjWr6YA4nNiAjjmNHUgHPfkaljLnNqwyZydvywcMj0bx//ES5cOUXLeNO7Q7+AH/Uch3xNM93/8oPfhcNnXpC3HCNHKnIA5+h6sJqSX1tDDwOKCQR7GTnGahYKsOuxT0+XQPHcjmjau8P7S4SONZDvmjmG5It8Ax5CDhxS8iAd60pmNDQ14LvPMHNsw/2PQf29TfzoVUHAS4VhF+foxj+ZOKJGhOTXm2bUXgJh8pjvOgJW4caEYwJtjb1w8j+HlJ5r/f3bqJmSTulqsvUQMrl/weIhmWdSGqhSHbySVUOEZN3pt7/ye245ViBCoif/fUjYbnks7FPtL0F7k98z8RqmcGNSY8w3TJfCg4JKsNXJmBERgpiKLDXk24UCdX5+NzzT8aoPEELIrDnyPI5wAgAJNMaQBG/aw4R2y9Y0USHDJGpORGuQ22ye3XawFA8VhuCd8/thaNLNWwe+Na38jCDsXUO4yTYVjWHNiHDIT99+NBDY57vfoOZBUhfWjPf+5Tanns0/doHyqz89jc1zVjlGEY6Fo4C+UtRhQZ7XIMI5BItbVegMrJ2hiQGXOREuYQtveKBkIu98uJ+CInOuog6n79khYNghCjZeoIhQrBn99cJhqas8P3HMrXFN7i4Cm+asWMhbV3tjrzSY84IS2LtWGWYQDT14BSR/O9eXtOUqNqMpHF/IYh6iASw4XUwd3pRf0ewTkHQnera8FKwxIo2FOE0pQE1ZoVgTkZkkW7bR8k52vVOYV+z0TNersP6Bbc6lG/D/vT1H6DW6QxAIacQxSp5KEOA15NtgpRWskXQGm5GqpRKNeQ5KnmcrBnjgnBnmD/xjP3xnhxkH3Yvd9Qs9R33Xz81fo0TfuLLd/5goeKRWSWPUTImvpl0b3GZ06eqwcmh+ax6b0yeMOeG67NPnsTb9YXAvFZ6XRv97Cva99Ygr/iG9blAZvbMHGzoffoTMYXRHMaOWr1+BbMM8J0AjoXnWinZnKb/oDFuQ+IdkJ3j732lPlJyFzc19kK81y9zCQI3iMrQByPW1pesL1ydx40wG3py8aFG93DjxSt/YE1pdApFZIcGKqqmrw5F4i7Q4EUik/XNYqz4YPSxE9+r1CZqV+4BUEEO/SyAEUXX8Vbl/imIpolXUM0tANSZKV4B1hZUiYGRhoPS+UsjBu3AzbolOmoUcpPeWyUS7GfJzTAUIGLr3617ny/SuwYhgS0ssZAzvQyEA/nLWKKstyy1kIubonnDTJRYNUFDMNBLnKlnJhJveclbRw+mudkhYwDiSOeEWcbItyorNxAQM8W4T8k24RSEIw3AHb2UUMNTtZCuq4nDXNqhIZdVmOQXUvZzTsNK3T3TvVAkCRqlMqDFh3z5BlSSgAvhIiWOSfIYyxDdJfGxDbzlrXBpTRgGDL0UcOQxPgGcEX6TzgOV+Qx/F9aYqf31MtI4dqiQBwzZgrO5a0IlEib1mwq8vjne1E3DX4SfqkhAwDkeR2MuiSypgyLpcqzbB/ARTLIGRaC5ae80/BC+g1lotHmT63nrMkxft3vU5jRGGeEwigdgmjirTGVoRxSP129d+dxTDdU4CrPJy+KitqL0EHsSv8OlOy6bMrzIdoRrzhZYWst2DzxKTqqukFox1BkFSoGo5+fSb8frP+sc/sTkG3j/zAfl6YDfOn4WOY2JuQV2uCfM2iq0p1RiUTJVBrMb5iJlxbba0EulLW79IFrQdAOuDXqpp01cLULv6TqjWLstcEacqEpUQTslU0xCFgNL982+O08nw6xgTB5izj9bBjtFF+r9106a1YH5B8XHcZ6rDLNwddLPN35iBXOMCVFySjgFRD/TLX3+vcMA+dnJwEO7Mz4PhcT6Gwtb5v/P5mrpVGzMPkclMywwMS63dW0CGrba0bMnFSx0fHR803P/NGNRA1mchzW4f2Zrn7DKIBqvc4wCv/XDmhAc+15bUmeYJzcmi4ynBcVkdPOB57Y04HY8wr1UtKlzvnDOs6FcmUCrgWNgt+98LDvuQixwBFz3nZFtRPUIgw4ASJHBKsB+UvfcAjvCybH/gxGD2Fz3gpphjwNn3BbcZibmkJMdk/1MKZhekMSigpXn/FxXKiupzmVIqwP5l/KLDRTJiB0WegSBuAL33TET7XI+k6p1AAigEAGAodM2C3mlBgmMywlbZAjjrqtSTobEvKwsaGgMhQFPd56b/CzAArAe2YDJd4I4AAAAASUVORK5CYII=" alt="">
|
||||
If you are exploring Nette for the first time, you should read the
|
||||
<a href="https://doc.nette.org/quickstart">Quick Start</a>, <a href="https://doc.nette.org">documentation</a>,
|
||||
<a href="https://blog.nette.org">blog</a> and <a href="https://forum.nette.org">forum</a>.</p>
|
||||
|
||||
<h2>We hope you enjoy Nette!</h2>
|
||||
</div>
|
||||
|
||||
<style>
|
||||
html { font: normal 18px/1.3 Georgia, "New York CE", utopia, serif; color: #666; -webkit-text-stroke: 1px rgba(0,0,0,0); overflow-y: scroll; }
|
||||
body { background: #3484d2; color: #333; margin: 2em auto; padding: 0 .5em; max-width: 600px; min-width: 320px; }
|
||||
|
||||
a { color: #006aeb; padding: 3px 1px; }
|
||||
a:hover, a:active, a:focus { background-color: #006aeb; text-decoration: none; color: white; }
|
||||
|
||||
#banner { border-radius: 12px 12px 0 0; background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAB5CAMAAADPursXAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAGBQTFRFD1CRDkqFDTlmDkF1D06NDT1tDTNZDk2KEFWaDTZgDkiCDTtpDT5wDkZ/DTBVEFacEFOWD1KUDTRcDTFWDkV9DkR7DkN4DkByDTVeDC9TDThjDTxrDkeADkuIDTRbDC9SbsUaggAAAEdJREFUeNqkwYURgAAQA7DH3d3335LSKyxAYpf9vWCpnYbf01qcOdFVXc14w4BznNTjkQfsscAdU3b4wIh9fDVYc4zV8xZgAAYaCMI6vPgLAAAAAElFTkSuQmCC); }
|
||||
|
||||
h1 { font: inherit; color: white; font-size: 50px; line-height: 121px; margin: 0; padding-left: 4%; background: url(https://files.nette.org/images/logo-nette@2.png) no-repeat 95%; background-size: 130px auto; text-shadow: 1px 1px 0 rgba(0, 0, 0, .9); }
|
||||
@media (max-width: 600px) {
|
||||
h1 { background: none; font-size: 40px; }
|
||||
}
|
||||
|
||||
#content { background: white; border: 1px solid #eff4f7; border-radius: 0 0 12px 12px; padding: 10px 4%; overflow: hidden; }
|
||||
|
||||
h2 { font: inherit; padding: 1.2em 0; margin: 0; }
|
||||
|
||||
img { border: none; float: right; margin: 0 0 1em 3em; }
|
||||
</style>
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
{
|
||||
"name": "nette/web-project",
|
||||
"description": "Nette: Standard Web Project",
|
||||
"keywords": ["nette"],
|
||||
"type": "project",
|
||||
"license": ["MIT", "BSD-3-Clause", "GPL-2.0-only", "GPL-3.0-only"],
|
||||
"require": {
|
||||
"php": ">= 8.1",
|
||||
"nette/application": "^3.2.3",
|
||||
"nette/bootstrap": "^3.2",
|
||||
"nette/caching": "^3.2",
|
||||
"nette/database": "^3.2",
|
||||
"nette/di": "^3.2",
|
||||
"nette/forms": "^3.2",
|
||||
"nette/http": "^3.3",
|
||||
"nette/mail": "^4.0",
|
||||
"nette/robot-loader": "^4.0",
|
||||
"nette/security": "^3.2",
|
||||
"nette/utils": "^4.0",
|
||||
"latte/latte": "^3.0",
|
||||
"tracy/tracy": "^2.10"
|
||||
},
|
||||
"require-dev": {
|
||||
"nette/tester": "^2.5",
|
||||
"symfony/thanks": "^1"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"App\\": "app"
|
||||
}
|
||||
},
|
||||
"minimum-stability": "stable",
|
||||
"config": {
|
||||
"allow-plugins": {
|
||||
"symfony/thanks": true
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,27 @@
|
|||
parameters:
|
||||
|
||||
|
||||
application:
|
||||
errorPresenter:
|
||||
4xx: Error:Error4xx
|
||||
5xx: Error:Error5xx
|
||||
mapping: App\Presentation\*\**Presenter
|
||||
|
||||
|
||||
database:
|
||||
dsn: 'sqlite::memory:'
|
||||
user:
|
||||
password:
|
||||
|
||||
|
||||
latte:
|
||||
strictTypes: yes
|
||||
strictParsing: yes
|
||||
extensions:
|
||||
- App\Presentation\Accessory\LatteExtension
|
||||
|
||||
|
||||
di:
|
||||
export:
|
||||
parameters: no
|
||||
tags: no
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
services:
|
||||
- App\Core\RouterFactory::createRouter
|
||||
|
||||
|
||||
search:
|
||||
- in: %appDir%
|
||||
classes:
|
||||
- *Facade
|
||||
- *Factory
|
||||
- *Repository
|
||||
- *Service
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
Nette Web Project
|
||||
=================
|
||||
|
||||
Welcome to the Nette Web Project! This is a basic skeleton application built using
|
||||
[Nette](https://nette.org), ideal for kick-starting your new web projects.
|
||||
|
||||
Nette is a renowned PHP web development framework, celebrated for its user-friendliness,
|
||||
robust security, and outstanding performance. It's among the safest choices
|
||||
for PHP frameworks out there.
|
||||
|
||||
If Nette helps you, consider supporting it by [making a donation](https://nette.org/donate).
|
||||
Thank you for your generosity!
|
||||
|
||||
|
||||
Requirements
|
||||
------------
|
||||
|
||||
This Web Project is compatible with Nette 3.2 and requires PHP 8.1.
|
||||
|
||||
|
||||
Installation
|
||||
------------
|
||||
|
||||
To install the Web Project, Composer is the recommended tool. If you're new to Composer,
|
||||
follow [these instructions](https://doc.nette.org/composer). Then, run:
|
||||
|
||||
composer create-project nette/web-project path/to/install
|
||||
cd path/to/install
|
||||
|
||||
Ensure the `temp/` and `log/` directories are writable.
|
||||
|
||||
|
||||
Web Server Setup
|
||||
----------------
|
||||
|
||||
To quickly dive in, use PHP's built-in server:
|
||||
|
||||
php -S localhost:8000 -t www
|
||||
|
||||
Then, open `http://localhost:8000` in your browser to view the welcome page.
|
||||
|
||||
For Apache or Nginx users, configure a virtual host pointing to your project's `www/` directory.
|
||||
|
||||
**Important Note:** Ensure `app/`, `config/`, `log/`, and `temp/` directories are not web-accessible.
|
||||
Refer to [security warning](https://nette.org/security-warning) for more details.
|
||||
|
||||
|
||||
Minimal Skeleton
|
||||
----------------
|
||||
|
||||
For demonstrating issues or similar tasks, rather than starting a new project, use
|
||||
this [minimal skeleton](https://github.com/nette/web-project/tree/minimal).
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
<?php
|
||||
|
||||
// autoload.php @generated by Composer
|
||||
|
||||
if (PHP_VERSION_ID < 50600) {
|
||||
if (!headers_sent()) {
|
||||
header('HTTP/1.1 500 Internal Server Error');
|
||||
}
|
||||
$err = 'Composer 2.3.0 dropped support for autoloading on PHP <5.6 and you are running '.PHP_VERSION.', please upgrade PHP or use Composer 2.2 LTS via "composer self-update --2.2". Aborting.'.PHP_EOL;
|
||||
if (!ini_get('display_errors')) {
|
||||
if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') {
|
||||
fwrite(STDERR, $err);
|
||||
} elseif (!headers_sent()) {
|
||||
echo $err;
|
||||
}
|
||||
}
|
||||
trigger_error(
|
||||
$err,
|
||||
E_USER_ERROR
|
||||
);
|
||||
}
|
||||
|
||||
require_once __DIR__ . '/composer/autoload_real.php';
|
||||
|
||||
return ComposerAutoloaderInit9c49a418f02ffb235919088891200a26::getLoader();
|
||||
|
|
@ -0,0 +1,119 @@
|
|||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Proxy PHP file generated by Composer
|
||||
*
|
||||
* This file includes the referenced bin path (../latte/latte/bin/latte-lint)
|
||||
* using a stream wrapper to prevent the shebang from being output on PHP<8
|
||||
*
|
||||
* @generated
|
||||
*/
|
||||
|
||||
namespace Composer;
|
||||
|
||||
$GLOBALS['_composer_bin_dir'] = __DIR__;
|
||||
$GLOBALS['_composer_autoload_path'] = __DIR__ . '/..'.'/autoload.php';
|
||||
|
||||
if (PHP_VERSION_ID < 80000) {
|
||||
if (!class_exists('Composer\BinProxyWrapper')) {
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
final class BinProxyWrapper
|
||||
{
|
||||
private $handle;
|
||||
private $position;
|
||||
private $realpath;
|
||||
|
||||
public function stream_open($path, $mode, $options, &$opened_path)
|
||||
{
|
||||
// get rid of phpvfscomposer:// prefix for __FILE__ & __DIR__ resolution
|
||||
$opened_path = substr($path, 17);
|
||||
$this->realpath = realpath($opened_path) ?: $opened_path;
|
||||
$opened_path = $this->realpath;
|
||||
$this->handle = fopen($this->realpath, $mode);
|
||||
$this->position = 0;
|
||||
|
||||
return (bool) $this->handle;
|
||||
}
|
||||
|
||||
public function stream_read($count)
|
||||
{
|
||||
$data = fread($this->handle, $count);
|
||||
|
||||
if ($this->position === 0) {
|
||||
$data = preg_replace('{^#!.*\r?\n}', '', $data);
|
||||
}
|
||||
|
||||
$this->position += strlen($data);
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
public function stream_cast($castAs)
|
||||
{
|
||||
return $this->handle;
|
||||
}
|
||||
|
||||
public function stream_close()
|
||||
{
|
||||
fclose($this->handle);
|
||||
}
|
||||
|
||||
public function stream_lock($operation)
|
||||
{
|
||||
return $operation ? flock($this->handle, $operation) : true;
|
||||
}
|
||||
|
||||
public function stream_seek($offset, $whence)
|
||||
{
|
||||
if (0 === fseek($this->handle, $offset, $whence)) {
|
||||
$this->position = ftell($this->handle);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public function stream_tell()
|
||||
{
|
||||
return $this->position;
|
||||
}
|
||||
|
||||
public function stream_eof()
|
||||
{
|
||||
return feof($this->handle);
|
||||
}
|
||||
|
||||
public function stream_stat()
|
||||
{
|
||||
return array();
|
||||
}
|
||||
|
||||
public function stream_set_option($option, $arg1, $arg2)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function url_stat($path, $flags)
|
||||
{
|
||||
$path = substr($path, 17);
|
||||
if (file_exists($path)) {
|
||||
return stat($path);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (
|
||||
(function_exists('stream_get_wrappers') && in_array('phpvfscomposer', stream_get_wrappers(), true))
|
||||
|| (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper'))
|
||||
) {
|
||||
return include("phpvfscomposer://" . __DIR__ . '/..'.'/latte/latte/bin/latte-lint');
|
||||
}
|
||||
}
|
||||
|
||||
return include __DIR__ . '/..'.'/latte/latte/bin/latte-lint';
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
@ECHO OFF
|
||||
setlocal DISABLEDELAYEDEXPANSION
|
||||
SET BIN_TARGET=%~dp0/latte-lint
|
||||
SET COMPOSER_RUNTIME_BIN_DIR=%~dp0
|
||||
php "%BIN_TARGET%" %*
|
||||
|
|
@ -0,0 +1,119 @@
|
|||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Proxy PHP file generated by Composer
|
||||
*
|
||||
* This file includes the referenced bin path (../nette/neon/bin/neon-lint)
|
||||
* using a stream wrapper to prevent the shebang from being output on PHP<8
|
||||
*
|
||||
* @generated
|
||||
*/
|
||||
|
||||
namespace Composer;
|
||||
|
||||
$GLOBALS['_composer_bin_dir'] = __DIR__;
|
||||
$GLOBALS['_composer_autoload_path'] = __DIR__ . '/..'.'/autoload.php';
|
||||
|
||||
if (PHP_VERSION_ID < 80000) {
|
||||
if (!class_exists('Composer\BinProxyWrapper')) {
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
final class BinProxyWrapper
|
||||
{
|
||||
private $handle;
|
||||
private $position;
|
||||
private $realpath;
|
||||
|
||||
public function stream_open($path, $mode, $options, &$opened_path)
|
||||
{
|
||||
// get rid of phpvfscomposer:// prefix for __FILE__ & __DIR__ resolution
|
||||
$opened_path = substr($path, 17);
|
||||
$this->realpath = realpath($opened_path) ?: $opened_path;
|
||||
$opened_path = $this->realpath;
|
||||
$this->handle = fopen($this->realpath, $mode);
|
||||
$this->position = 0;
|
||||
|
||||
return (bool) $this->handle;
|
||||
}
|
||||
|
||||
public function stream_read($count)
|
||||
{
|
||||
$data = fread($this->handle, $count);
|
||||
|
||||
if ($this->position === 0) {
|
||||
$data = preg_replace('{^#!.*\r?\n}', '', $data);
|
||||
}
|
||||
|
||||
$this->position += strlen($data);
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
public function stream_cast($castAs)
|
||||
{
|
||||
return $this->handle;
|
||||
}
|
||||
|
||||
public function stream_close()
|
||||
{
|
||||
fclose($this->handle);
|
||||
}
|
||||
|
||||
public function stream_lock($operation)
|
||||
{
|
||||
return $operation ? flock($this->handle, $operation) : true;
|
||||
}
|
||||
|
||||
public function stream_seek($offset, $whence)
|
||||
{
|
||||
if (0 === fseek($this->handle, $offset, $whence)) {
|
||||
$this->position = ftell($this->handle);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public function stream_tell()
|
||||
{
|
||||
return $this->position;
|
||||
}
|
||||
|
||||
public function stream_eof()
|
||||
{
|
||||
return feof($this->handle);
|
||||
}
|
||||
|
||||
public function stream_stat()
|
||||
{
|
||||
return array();
|
||||
}
|
||||
|
||||
public function stream_set_option($option, $arg1, $arg2)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function url_stat($path, $flags)
|
||||
{
|
||||
$path = substr($path, 17);
|
||||
if (file_exists($path)) {
|
||||
return stat($path);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (
|
||||
(function_exists('stream_get_wrappers') && in_array('phpvfscomposer', stream_get_wrappers(), true))
|
||||
|| (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper'))
|
||||
) {
|
||||
return include("phpvfscomposer://" . __DIR__ . '/..'.'/nette/neon/bin/neon-lint');
|
||||
}
|
||||
}
|
||||
|
||||
return include __DIR__ . '/..'.'/nette/neon/bin/neon-lint';
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
@ECHO OFF
|
||||
setlocal DISABLEDELAYEDEXPANSION
|
||||
SET BIN_TARGET=%~dp0/neon-lint
|
||||
SET COMPOSER_RUNTIME_BIN_DIR=%~dp0
|
||||
php "%BIN_TARGET%" %*
|
||||
|
|
@ -0,0 +1,119 @@
|
|||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Proxy PHP file generated by Composer
|
||||
*
|
||||
* This file includes the referenced bin path (../nette/tester/src/tester)
|
||||
* using a stream wrapper to prevent the shebang from being output on PHP<8
|
||||
*
|
||||
* @generated
|
||||
*/
|
||||
|
||||
namespace Composer;
|
||||
|
||||
$GLOBALS['_composer_bin_dir'] = __DIR__;
|
||||
$GLOBALS['_composer_autoload_path'] = __DIR__ . '/..'.'/autoload.php';
|
||||
|
||||
if (PHP_VERSION_ID < 80000) {
|
||||
if (!class_exists('Composer\BinProxyWrapper')) {
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
final class BinProxyWrapper
|
||||
{
|
||||
private $handle;
|
||||
private $position;
|
||||
private $realpath;
|
||||
|
||||
public function stream_open($path, $mode, $options, &$opened_path)
|
||||
{
|
||||
// get rid of phpvfscomposer:// prefix for __FILE__ & __DIR__ resolution
|
||||
$opened_path = substr($path, 17);
|
||||
$this->realpath = realpath($opened_path) ?: $opened_path;
|
||||
$opened_path = $this->realpath;
|
||||
$this->handle = fopen($this->realpath, $mode);
|
||||
$this->position = 0;
|
||||
|
||||
return (bool) $this->handle;
|
||||
}
|
||||
|
||||
public function stream_read($count)
|
||||
{
|
||||
$data = fread($this->handle, $count);
|
||||
|
||||
if ($this->position === 0) {
|
||||
$data = preg_replace('{^#!.*\r?\n}', '', $data);
|
||||
}
|
||||
|
||||
$this->position += strlen($data);
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
public function stream_cast($castAs)
|
||||
{
|
||||
return $this->handle;
|
||||
}
|
||||
|
||||
public function stream_close()
|
||||
{
|
||||
fclose($this->handle);
|
||||
}
|
||||
|
||||
public function stream_lock($operation)
|
||||
{
|
||||
return $operation ? flock($this->handle, $operation) : true;
|
||||
}
|
||||
|
||||
public function stream_seek($offset, $whence)
|
||||
{
|
||||
if (0 === fseek($this->handle, $offset, $whence)) {
|
||||
$this->position = ftell($this->handle);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public function stream_tell()
|
||||
{
|
||||
return $this->position;
|
||||
}
|
||||
|
||||
public function stream_eof()
|
||||
{
|
||||
return feof($this->handle);
|
||||
}
|
||||
|
||||
public function stream_stat()
|
||||
{
|
||||
return array();
|
||||
}
|
||||
|
||||
public function stream_set_option($option, $arg1, $arg2)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function url_stat($path, $flags)
|
||||
{
|
||||
$path = substr($path, 17);
|
||||
if (file_exists($path)) {
|
||||
return stat($path);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (
|
||||
(function_exists('stream_get_wrappers') && in_array('phpvfscomposer', stream_get_wrappers(), true))
|
||||
|| (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper'))
|
||||
) {
|
||||
return include("phpvfscomposer://" . __DIR__ . '/..'.'/nette/tester/src/tester');
|
||||
}
|
||||
}
|
||||
|
||||
return include __DIR__ . '/..'.'/nette/tester/src/tester';
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
@ECHO OFF
|
||||
setlocal DISABLEDELAYEDEXPANSION
|
||||
SET BIN_TARGET=%~dp0/tester
|
||||
SET COMPOSER_RUNTIME_BIN_DIR=%~dp0
|
||||
php "%BIN_TARGET%" %*
|
||||
|
|
@ -0,0 +1,579 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Composer.
|
||||
*
|
||||
* (c) Nils Adermann <naderman@naderman.de>
|
||||
* Jordi Boggiano <j.boggiano@seld.be>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Composer\Autoload;
|
||||
|
||||
/**
|
||||
* ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
|
||||
*
|
||||
* $loader = new \Composer\Autoload\ClassLoader();
|
||||
*
|
||||
* // register classes with namespaces
|
||||
* $loader->add('Symfony\Component', __DIR__.'/component');
|
||||
* $loader->add('Symfony', __DIR__.'/framework');
|
||||
*
|
||||
* // activate the autoloader
|
||||
* $loader->register();
|
||||
*
|
||||
* // to enable searching the include path (eg. for PEAR packages)
|
||||
* $loader->setUseIncludePath(true);
|
||||
*
|
||||
* In this example, if you try to use a class in the Symfony\Component
|
||||
* namespace or one of its children (Symfony\Component\Console for instance),
|
||||
* the autoloader will first look for the class under the component/
|
||||
* directory, and it will then fallback to the framework/ directory if not
|
||||
* found before giving up.
|
||||
*
|
||||
* This class is loosely based on the Symfony UniversalClassLoader.
|
||||
*
|
||||
* @author Fabien Potencier <fabien@symfony.com>
|
||||
* @author Jordi Boggiano <j.boggiano@seld.be>
|
||||
* @see https://www.php-fig.org/psr/psr-0/
|
||||
* @see https://www.php-fig.org/psr/psr-4/
|
||||
*/
|
||||
class ClassLoader
|
||||
{
|
||||
/** @var \Closure(string):void */
|
||||
private static $includeFile;
|
||||
|
||||
/** @var string|null */
|
||||
private $vendorDir;
|
||||
|
||||
// PSR-4
|
||||
/**
|
||||
* @var array<string, array<string, int>>
|
||||
*/
|
||||
private $prefixLengthsPsr4 = array();
|
||||
/**
|
||||
* @var array<string, list<string>>
|
||||
*/
|
||||
private $prefixDirsPsr4 = array();
|
||||
/**
|
||||
* @var list<string>
|
||||
*/
|
||||
private $fallbackDirsPsr4 = array();
|
||||
|
||||
// PSR-0
|
||||
/**
|
||||
* List of PSR-0 prefixes
|
||||
*
|
||||
* Structured as array('F (first letter)' => array('Foo\Bar (full prefix)' => array('path', 'path2')))
|
||||
*
|
||||
* @var array<string, array<string, list<string>>>
|
||||
*/
|
||||
private $prefixesPsr0 = array();
|
||||
/**
|
||||
* @var list<string>
|
||||
*/
|
||||
private $fallbackDirsPsr0 = array();
|
||||
|
||||
/** @var bool */
|
||||
private $useIncludePath = false;
|
||||
|
||||
/**
|
||||
* @var array<string, string>
|
||||
*/
|
||||
private $classMap = array();
|
||||
|
||||
/** @var bool */
|
||||
private $classMapAuthoritative = false;
|
||||
|
||||
/**
|
||||
* @var array<string, bool>
|
||||
*/
|
||||
private $missingClasses = array();
|
||||
|
||||
/** @var string|null */
|
||||
private $apcuPrefix;
|
||||
|
||||
/**
|
||||
* @var array<string, self>
|
||||
*/
|
||||
private static $registeredLoaders = array();
|
||||
|
||||
/**
|
||||
* @param string|null $vendorDir
|
||||
*/
|
||||
public function __construct($vendorDir = null)
|
||||
{
|
||||
$this->vendorDir = $vendorDir;
|
||||
self::initializeIncludeClosure();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array<string, list<string>>
|
||||
*/
|
||||
public function getPrefixes()
|
||||
{
|
||||
if (!empty($this->prefixesPsr0)) {
|
||||
return call_user_func_array('array_merge', array_values($this->prefixesPsr0));
|
||||
}
|
||||
|
||||
return array();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array<string, list<string>>
|
||||
*/
|
||||
public function getPrefixesPsr4()
|
||||
{
|
||||
return $this->prefixDirsPsr4;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return list<string>
|
||||
*/
|
||||
public function getFallbackDirs()
|
||||
{
|
||||
return $this->fallbackDirsPsr0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return list<string>
|
||||
*/
|
||||
public function getFallbackDirsPsr4()
|
||||
{
|
||||
return $this->fallbackDirsPsr4;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array<string, string> Array of classname => path
|
||||
*/
|
||||
public function getClassMap()
|
||||
{
|
||||
return $this->classMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array<string, string> $classMap Class to filename map
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function addClassMap(array $classMap)
|
||||
{
|
||||
if ($this->classMap) {
|
||||
$this->classMap = array_merge($this->classMap, $classMap);
|
||||
} else {
|
||||
$this->classMap = $classMap;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers a set of PSR-0 directories for a given prefix, either
|
||||
* appending or prepending to the ones previously set for this prefix.
|
||||
*
|
||||
* @param string $prefix The prefix
|
||||
* @param list<string>|string $paths The PSR-0 root directories
|
||||
* @param bool $prepend Whether to prepend the directories
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function add($prefix, $paths, $prepend = false)
|
||||
{
|
||||
$paths = (array) $paths;
|
||||
if (!$prefix) {
|
||||
if ($prepend) {
|
||||
$this->fallbackDirsPsr0 = array_merge(
|
||||
$paths,
|
||||
$this->fallbackDirsPsr0
|
||||
);
|
||||
} else {
|
||||
$this->fallbackDirsPsr0 = array_merge(
|
||||
$this->fallbackDirsPsr0,
|
||||
$paths
|
||||
);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$first = $prefix[0];
|
||||
if (!isset($this->prefixesPsr0[$first][$prefix])) {
|
||||
$this->prefixesPsr0[$first][$prefix] = $paths;
|
||||
|
||||
return;
|
||||
}
|
||||
if ($prepend) {
|
||||
$this->prefixesPsr0[$first][$prefix] = array_merge(
|
||||
$paths,
|
||||
$this->prefixesPsr0[$first][$prefix]
|
||||
);
|
||||
} else {
|
||||
$this->prefixesPsr0[$first][$prefix] = array_merge(
|
||||
$this->prefixesPsr0[$first][$prefix],
|
||||
$paths
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers a set of PSR-4 directories for a given namespace, either
|
||||
* appending or prepending to the ones previously set for this namespace.
|
||||
*
|
||||
* @param string $prefix The prefix/namespace, with trailing '\\'
|
||||
* @param list<string>|string $paths The PSR-4 base directories
|
||||
* @param bool $prepend Whether to prepend the directories
|
||||
*
|
||||
* @throws \InvalidArgumentException
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function addPsr4($prefix, $paths, $prepend = false)
|
||||
{
|
||||
$paths = (array) $paths;
|
||||
if (!$prefix) {
|
||||
// Register directories for the root namespace.
|
||||
if ($prepend) {
|
||||
$this->fallbackDirsPsr4 = array_merge(
|
||||
$paths,
|
||||
$this->fallbackDirsPsr4
|
||||
);
|
||||
} else {
|
||||
$this->fallbackDirsPsr4 = array_merge(
|
||||
$this->fallbackDirsPsr4,
|
||||
$paths
|
||||
);
|
||||
}
|
||||
} elseif (!isset($this->prefixDirsPsr4[$prefix])) {
|
||||
// Register directories for a new namespace.
|
||||
$length = strlen($prefix);
|
||||
if ('\\' !== $prefix[$length - 1]) {
|
||||
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
|
||||
}
|
||||
$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
|
||||
$this->prefixDirsPsr4[$prefix] = $paths;
|
||||
} elseif ($prepend) {
|
||||
// Prepend directories for an already registered namespace.
|
||||
$this->prefixDirsPsr4[$prefix] = array_merge(
|
||||
$paths,
|
||||
$this->prefixDirsPsr4[$prefix]
|
||||
);
|
||||
} else {
|
||||
// Append directories for an already registered namespace.
|
||||
$this->prefixDirsPsr4[$prefix] = array_merge(
|
||||
$this->prefixDirsPsr4[$prefix],
|
||||
$paths
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers a set of PSR-0 directories for a given prefix,
|
||||
* replacing any others previously set for this prefix.
|
||||
*
|
||||
* @param string $prefix The prefix
|
||||
* @param list<string>|string $paths The PSR-0 base directories
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function set($prefix, $paths)
|
||||
{
|
||||
if (!$prefix) {
|
||||
$this->fallbackDirsPsr0 = (array) $paths;
|
||||
} else {
|
||||
$this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers a set of PSR-4 directories for a given namespace,
|
||||
* replacing any others previously set for this namespace.
|
||||
*
|
||||
* @param string $prefix The prefix/namespace, with trailing '\\'
|
||||
* @param list<string>|string $paths The PSR-4 base directories
|
||||
*
|
||||
* @throws \InvalidArgumentException
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setPsr4($prefix, $paths)
|
||||
{
|
||||
if (!$prefix) {
|
||||
$this->fallbackDirsPsr4 = (array) $paths;
|
||||
} else {
|
||||
$length = strlen($prefix);
|
||||
if ('\\' !== $prefix[$length - 1]) {
|
||||
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
|
||||
}
|
||||
$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
|
||||
$this->prefixDirsPsr4[$prefix] = (array) $paths;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Turns on searching the include path for class files.
|
||||
*
|
||||
* @param bool $useIncludePath
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setUseIncludePath($useIncludePath)
|
||||
{
|
||||
$this->useIncludePath = $useIncludePath;
|
||||
}
|
||||
|
||||
/**
|
||||
* Can be used to check if the autoloader uses the include path to check
|
||||
* for classes.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function getUseIncludePath()
|
||||
{
|
||||
return $this->useIncludePath;
|
||||
}
|
||||
|
||||
/**
|
||||
* Turns off searching the prefix and fallback directories for classes
|
||||
* that have not been registered with the class map.
|
||||
*
|
||||
* @param bool $classMapAuthoritative
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setClassMapAuthoritative($classMapAuthoritative)
|
||||
{
|
||||
$this->classMapAuthoritative = $classMapAuthoritative;
|
||||
}
|
||||
|
||||
/**
|
||||
* Should class lookup fail if not found in the current class map?
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function isClassMapAuthoritative()
|
||||
{
|
||||
return $this->classMapAuthoritative;
|
||||
}
|
||||
|
||||
/**
|
||||
* APCu prefix to use to cache found/not-found classes, if the extension is enabled.
|
||||
*
|
||||
* @param string|null $apcuPrefix
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setApcuPrefix($apcuPrefix)
|
||||
{
|
||||
$this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null;
|
||||
}
|
||||
|
||||
/**
|
||||
* The APCu prefix in use, or null if APCu caching is not enabled.
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
public function getApcuPrefix()
|
||||
{
|
||||
return $this->apcuPrefix;
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers this instance as an autoloader.
|
||||
*
|
||||
* @param bool $prepend Whether to prepend the autoloader or not
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function register($prepend = false)
|
||||
{
|
||||
spl_autoload_register(array($this, 'loadClass'), true, $prepend);
|
||||
|
||||
if (null === $this->vendorDir) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ($prepend) {
|
||||
self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders;
|
||||
} else {
|
||||
unset(self::$registeredLoaders[$this->vendorDir]);
|
||||
self::$registeredLoaders[$this->vendorDir] = $this;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Unregisters this instance as an autoloader.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function unregister()
|
||||
{
|
||||
spl_autoload_unregister(array($this, 'loadClass'));
|
||||
|
||||
if (null !== $this->vendorDir) {
|
||||
unset(self::$registeredLoaders[$this->vendorDir]);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads the given class or interface.
|
||||
*
|
||||
* @param string $class The name of the class
|
||||
* @return true|null True if loaded, null otherwise
|
||||
*/
|
||||
public function loadClass($class)
|
||||
{
|
||||
if ($file = $this->findFile($class)) {
|
||||
$includeFile = self::$includeFile;
|
||||
$includeFile($file);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Finds the path to the file where the class is defined.
|
||||
*
|
||||
* @param string $class The name of the class
|
||||
*
|
||||
* @return string|false The path if found, false otherwise
|
||||
*/
|
||||
public function findFile($class)
|
||||
{
|
||||
// class map lookup
|
||||
if (isset($this->classMap[$class])) {
|
||||
return $this->classMap[$class];
|
||||
}
|
||||
if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) {
|
||||
return false;
|
||||
}
|
||||
if (null !== $this->apcuPrefix) {
|
||||
$file = apcu_fetch($this->apcuPrefix.$class, $hit);
|
||||
if ($hit) {
|
||||
return $file;
|
||||
}
|
||||
}
|
||||
|
||||
$file = $this->findFileWithExtension($class, '.php');
|
||||
|
||||
// Search for Hack files if we are running on HHVM
|
||||
if (false === $file && defined('HHVM_VERSION')) {
|
||||
$file = $this->findFileWithExtension($class, '.hh');
|
||||
}
|
||||
|
||||
if (null !== $this->apcuPrefix) {
|
||||
apcu_add($this->apcuPrefix.$class, $file);
|
||||
}
|
||||
|
||||
if (false === $file) {
|
||||
// Remember that this class does not exist.
|
||||
$this->missingClasses[$class] = true;
|
||||
}
|
||||
|
||||
return $file;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the currently registered loaders keyed by their corresponding vendor directories.
|
||||
*
|
||||
* @return array<string, self>
|
||||
*/
|
||||
public static function getRegisteredLoaders()
|
||||
{
|
||||
return self::$registeredLoaders;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $class
|
||||
* @param string $ext
|
||||
* @return string|false
|
||||
*/
|
||||
private function findFileWithExtension($class, $ext)
|
||||
{
|
||||
// PSR-4 lookup
|
||||
$logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
|
||||
|
||||
$first = $class[0];
|
||||
if (isset($this->prefixLengthsPsr4[$first])) {
|
||||
$subPath = $class;
|
||||
while (false !== $lastPos = strrpos($subPath, '\\')) {
|
||||
$subPath = substr($subPath, 0, $lastPos);
|
||||
$search = $subPath . '\\';
|
||||
if (isset($this->prefixDirsPsr4[$search])) {
|
||||
$pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1);
|
||||
foreach ($this->prefixDirsPsr4[$search] as $dir) {
|
||||
if (file_exists($file = $dir . $pathEnd)) {
|
||||
return $file;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// PSR-4 fallback dirs
|
||||
foreach ($this->fallbackDirsPsr4 as $dir) {
|
||||
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
|
||||
return $file;
|
||||
}
|
||||
}
|
||||
|
||||
// PSR-0 lookup
|
||||
if (false !== $pos = strrpos($class, '\\')) {
|
||||
// namespaced class name
|
||||
$logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
|
||||
. strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);
|
||||
} else {
|
||||
// PEAR-like class name
|
||||
$logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext;
|
||||
}
|
||||
|
||||
if (isset($this->prefixesPsr0[$first])) {
|
||||
foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
|
||||
if (0 === strpos($class, $prefix)) {
|
||||
foreach ($dirs as $dir) {
|
||||
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
|
||||
return $file;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// PSR-0 fallback dirs
|
||||
foreach ($this->fallbackDirsPsr0 as $dir) {
|
||||
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
|
||||
return $file;
|
||||
}
|
||||
}
|
||||
|
||||
// PSR-0 include paths.
|
||||
if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
|
||||
return $file;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
private static function initializeIncludeClosure()
|
||||
{
|
||||
if (self::$includeFile !== null) {
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Scope isolated include.
|
||||
*
|
||||
* Prevents access to $this/self from included files.
|
||||
*
|
||||
* @param string $file
|
||||
* @return void
|
||||
*/
|
||||
self::$includeFile = \Closure::bind(static function($file) {
|
||||
include $file;
|
||||
}, null, null);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,359 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Composer.
|
||||
*
|
||||
* (c) Nils Adermann <naderman@naderman.de>
|
||||
* Jordi Boggiano <j.boggiano@seld.be>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Composer;
|
||||
|
||||
use Composer\Autoload\ClassLoader;
|
||||
use Composer\Semver\VersionParser;
|
||||
|
||||
/**
|
||||
* This class is copied in every Composer installed project and available to all
|
||||
*
|
||||
* See also https://getcomposer.org/doc/07-runtime.md#installed-versions
|
||||
*
|
||||
* To require its presence, you can require `composer-runtime-api ^2.0`
|
||||
*
|
||||
* @final
|
||||
*/
|
||||
class InstalledVersions
|
||||
{
|
||||
/**
|
||||
* @var mixed[]|null
|
||||
* @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}|array{}|null
|
||||
*/
|
||||
private static $installed;
|
||||
|
||||
/**
|
||||
* @var bool|null
|
||||
*/
|
||||
private static $canGetVendors;
|
||||
|
||||
/**
|
||||
* @var array[]
|
||||
* @psalm-var array<string, array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}>
|
||||
*/
|
||||
private static $installedByVendor = array();
|
||||
|
||||
/**
|
||||
* Returns a list of all package names which are present, either by being installed, replaced or provided
|
||||
*
|
||||
* @return string[]
|
||||
* @psalm-return list<string>
|
||||
*/
|
||||
public static function getInstalledPackages()
|
||||
{
|
||||
$packages = array();
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
$packages[] = array_keys($installed['versions']);
|
||||
}
|
||||
|
||||
if (1 === \count($packages)) {
|
||||
return $packages[0];
|
||||
}
|
||||
|
||||
return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a list of all package names with a specific type e.g. 'library'
|
||||
*
|
||||
* @param string $type
|
||||
* @return string[]
|
||||
* @psalm-return list<string>
|
||||
*/
|
||||
public static function getInstalledPackagesByType($type)
|
||||
{
|
||||
$packagesByType = array();
|
||||
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
foreach ($installed['versions'] as $name => $package) {
|
||||
if (isset($package['type']) && $package['type'] === $type) {
|
||||
$packagesByType[] = $name;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $packagesByType;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether the given package is installed
|
||||
*
|
||||
* This also returns true if the package name is provided or replaced by another package
|
||||
*
|
||||
* @param string $packageName
|
||||
* @param bool $includeDevRequirements
|
||||
* @return bool
|
||||
*/
|
||||
public static function isInstalled($packageName, $includeDevRequirements = true)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (isset($installed['versions'][$packageName])) {
|
||||
return $includeDevRequirements || !isset($installed['versions'][$packageName]['dev_requirement']) || $installed['versions'][$packageName]['dev_requirement'] === false;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether the given package satisfies a version constraint
|
||||
*
|
||||
* e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call:
|
||||
*
|
||||
* Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3')
|
||||
*
|
||||
* @param VersionParser $parser Install composer/semver to have access to this class and functionality
|
||||
* @param string $packageName
|
||||
* @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package
|
||||
* @return bool
|
||||
*/
|
||||
public static function satisfies(VersionParser $parser, $packageName, $constraint)
|
||||
{
|
||||
$constraint = $parser->parseConstraints((string) $constraint);
|
||||
$provided = $parser->parseConstraints(self::getVersionRanges($packageName));
|
||||
|
||||
return $provided->matches($constraint);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a version constraint representing all the range(s) which are installed for a given package
|
||||
*
|
||||
* It is easier to use this via isInstalled() with the $constraint argument if you need to check
|
||||
* whether a given version of a package is installed, and not just whether it exists
|
||||
*
|
||||
* @param string $packageName
|
||||
* @return string Version constraint usable with composer/semver
|
||||
*/
|
||||
public static function getVersionRanges($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$ranges = array();
|
||||
if (isset($installed['versions'][$packageName]['pretty_version'])) {
|
||||
$ranges[] = $installed['versions'][$packageName]['pretty_version'];
|
||||
}
|
||||
if (array_key_exists('aliases', $installed['versions'][$packageName])) {
|
||||
$ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
|
||||
}
|
||||
if (array_key_exists('replaced', $installed['versions'][$packageName])) {
|
||||
$ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
|
||||
}
|
||||
if (array_key_exists('provided', $installed['versions'][$packageName])) {
|
||||
$ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
|
||||
}
|
||||
|
||||
return implode(' || ', $ranges);
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
|
||||
*/
|
||||
public static function getVersion($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isset($installed['versions'][$packageName]['version'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $installed['versions'][$packageName]['version'];
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
|
||||
*/
|
||||
public static function getPrettyVersion($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isset($installed['versions'][$packageName]['pretty_version'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $installed['versions'][$packageName]['pretty_version'];
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference
|
||||
*/
|
||||
public static function getReference($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isset($installed['versions'][$packageName]['reference'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $installed['versions'][$packageName]['reference'];
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path.
|
||||
*/
|
||||
public static function getInstallPath($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null;
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
* @psalm-return array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}
|
||||
*/
|
||||
public static function getRootPackage()
|
||||
{
|
||||
$installed = self::getInstalled();
|
||||
|
||||
return $installed[0]['root'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the raw installed.php data for custom implementations
|
||||
*
|
||||
* @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
|
||||
* @return array[]
|
||||
* @psalm-return array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}
|
||||
*/
|
||||
public static function getRawData()
|
||||
{
|
||||
@trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED);
|
||||
|
||||
if (null === self::$installed) {
|
||||
// only require the installed.php file if this file is loaded from its dumped location,
|
||||
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
|
||||
if (substr(__DIR__, -8, 1) !== 'C') {
|
||||
self::$installed = include __DIR__ . '/installed.php';
|
||||
} else {
|
||||
self::$installed = array();
|
||||
}
|
||||
}
|
||||
|
||||
return self::$installed;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the raw data of all installed.php which are currently loaded for custom implementations
|
||||
*
|
||||
* @return array[]
|
||||
* @psalm-return list<array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}>
|
||||
*/
|
||||
public static function getAllRawData()
|
||||
{
|
||||
return self::getInstalled();
|
||||
}
|
||||
|
||||
/**
|
||||
* Lets you reload the static array from another file
|
||||
*
|
||||
* This is only useful for complex integrations in which a project needs to use
|
||||
* this class but then also needs to execute another project's autoloader in process,
|
||||
* and wants to ensure both projects have access to their version of installed.php.
|
||||
*
|
||||
* A typical case would be PHPUnit, where it would need to make sure it reads all
|
||||
* the data it needs from this class, then call reload() with
|
||||
* `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure
|
||||
* the project in which it runs can then also use this class safely, without
|
||||
* interference between PHPUnit's dependencies and the project's dependencies.
|
||||
*
|
||||
* @param array[] $data A vendor/composer/installed.php data set
|
||||
* @return void
|
||||
*
|
||||
* @psalm-param array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $data
|
||||
*/
|
||||
public static function reload($data)
|
||||
{
|
||||
self::$installed = $data;
|
||||
self::$installedByVendor = array();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array[]
|
||||
* @psalm-return list<array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}>
|
||||
*/
|
||||
private static function getInstalled()
|
||||
{
|
||||
if (null === self::$canGetVendors) {
|
||||
self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
|
||||
}
|
||||
|
||||
$installed = array();
|
||||
|
||||
if (self::$canGetVendors) {
|
||||
foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
|
||||
if (isset(self::$installedByVendor[$vendorDir])) {
|
||||
$installed[] = self::$installedByVendor[$vendorDir];
|
||||
} elseif (is_file($vendorDir.'/composer/installed.php')) {
|
||||
/** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */
|
||||
$required = require $vendorDir.'/composer/installed.php';
|
||||
$installed[] = self::$installedByVendor[$vendorDir] = $required;
|
||||
if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
|
||||
self::$installed = $installed[count($installed) - 1];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (null === self::$installed) {
|
||||
// only require the installed.php file if this file is loaded from its dumped location,
|
||||
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
|
||||
if (substr(__DIR__, -8, 1) !== 'C') {
|
||||
/** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */
|
||||
$required = require __DIR__ . '/installed.php';
|
||||
self::$installed = $required;
|
||||
} else {
|
||||
self::$installed = array();
|
||||
}
|
||||
}
|
||||
|
||||
if (self::$installed !== array()) {
|
||||
$installed[] = self::$installed;
|
||||
}
|
||||
|
||||
return $installed;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
|
||||
Copyright (c) Nils Adermann, Jordi Boggiano
|
||||
|
||||
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.
|
||||
|
||||
|
|
@ -0,0 +1,673 @@
|
|||
<?php
|
||||
|
||||
// autoload_classmap.php @generated by Composer
|
||||
|
||||
$vendorDir = dirname(__DIR__);
|
||||
$baseDir = dirname($vendorDir);
|
||||
|
||||
return array(
|
||||
'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',
|
||||
'Latte\\Attributes\\TemplateFilter' => $vendorDir . '/latte/latte/src/Latte/attributes.php',
|
||||
'Latte\\Attributes\\TemplateFunction' => $vendorDir . '/latte/latte/src/Latte/attributes.php',
|
||||
'Latte\\Bridges\\Tracy\\BlueScreenPanel' => $vendorDir . '/latte/latte/src/Bridges/Tracy/BlueScreenPanel.php',
|
||||
'Latte\\Bridges\\Tracy\\LattePanel' => $vendorDir . '/latte/latte/src/Bridges/Tracy/LattePanel.php',
|
||||
'Latte\\Bridges\\Tracy\\TracyExtension' => $vendorDir . '/latte/latte/src/Bridges/Tracy/TracyExtension.php',
|
||||
'Latte\\CompileException' => $vendorDir . '/latte/latte/src/Latte/exceptions.php',
|
||||
'Latte\\Compiler\\Block' => $vendorDir . '/latte/latte/src/Latte/Compiler/Block.php',
|
||||
'Latte\\Compiler\\Escaper' => $vendorDir . '/latte/latte/src/Latte/Compiler/Escaper.php',
|
||||
'Latte\\Compiler\\ExpressionBuilder' => $vendorDir . '/latte/latte/src/Latte/Compiler/ExpressionBuilder.php',
|
||||
'Latte\\Compiler\\Node' => $vendorDir . '/latte/latte/src/Latte/Compiler/Node.php',
|
||||
'Latte\\Compiler\\NodeHelpers' => $vendorDir . '/latte/latte/src/Latte/Compiler/NodeHelpers.php',
|
||||
'Latte\\Compiler\\NodeTraverser' => $vendorDir . '/latte/latte/src/Latte/Compiler/NodeTraverser.php',
|
||||
'Latte\\Compiler\\Nodes\\AreaNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/AreaNode.php',
|
||||
'Latte\\Compiler\\Nodes\\AuxiliaryNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/AuxiliaryNode.php',
|
||||
'Latte\\Compiler\\Nodes\\FragmentNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/FragmentNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Html\\AttributeNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Html/AttributeNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Html\\BogusTagNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Html/BogusTagNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Html\\CommentNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Html/CommentNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Html\\ElementNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Html/ElementNode.php',
|
||||
'Latte\\Compiler\\Nodes\\NopNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/NopNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\ArgumentNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/ArgumentNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\ArrayItemNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/ArrayItemNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\ClosureUseNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/ClosureUseNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\ComplexTypeNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/ComplexTypeNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\ExpressionNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/ExpressionNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\ArrayAccessNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/ArrayAccessNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\ArrayItemNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/ArrayItemNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\ArrayNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/ArrayNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\AssignNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/AssignNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\AssignOpNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/AssignOpNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\AuxiliaryNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/AuxiliaryNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\BinaryOpNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/BinaryOpNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\CastNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/CastNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\ClassConstantFetchNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/ClassConstantFetchNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\CloneNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/CloneNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\ClosureNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/ClosureNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\ConstantFetchNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/ConstantFetchNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\EmptyNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/EmptyNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\ErrorSuppressNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/ErrorSuppressNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\FilterCallNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/FilterCallNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\FunctionCallNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/FunctionCallNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\FunctionCallableNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/FunctionCallableNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\InNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/InNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\InstanceofNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/InstanceofNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\IssetNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/IssetNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\MatchNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/MatchNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\MethodCallNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/MethodCallNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\MethodCallableNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/MethodCallableNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\NewNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/NewNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\NotNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/NotNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\PostOpNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/PostOpNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\PreOpNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/PreOpNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\PropertyFetchNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/PropertyFetchNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\StaticCallNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/StaticMethodCallNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\StaticCallableNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/StaticMethodCallableNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\StaticMethodCallNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/StaticMethodCallNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\StaticMethodCallableNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/StaticMethodCallableNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\StaticPropertyFetchNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/StaticPropertyFetchNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\TemporaryNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/TemporaryNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\TernaryNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/TernaryNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\UnaryOpNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/UnaryOpNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\VariableNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/VariableNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\FilterNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/FilterNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\IdentifierNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/IdentifierNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\InterpolatedStringPartNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/InterpolatedStringPartNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\IntersectionTypeNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/IntersectionTypeNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\ListItemNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/ListItemNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\ListNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/ListNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\MatchArmNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/MatchArmNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\ModifierNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/ModifierNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\NameNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/NameNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\NullableTypeNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/NullableTypeNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\ParameterNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/ParameterNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\ScalarNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/ScalarNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Scalar\\BooleanNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/Scalar/BooleanNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Scalar\\FloatNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/Scalar/FloatNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Scalar\\IntegerNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/Scalar/IntegerNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Scalar\\InterpolatedStringNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/Scalar/InterpolatedStringNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Scalar\\NullNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/Scalar/NullNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Scalar\\StringNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/Scalar/StringNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\SuperiorTypeNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/SuperiorTypeNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\UnionTypeNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/UnionTypeNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\VarLikeIdentifierNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/Php/VarLikeIdentifierNode.php',
|
||||
'Latte\\Compiler\\Nodes\\StatementNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/StatementNode.php',
|
||||
'Latte\\Compiler\\Nodes\\TemplateNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/TemplateNode.php',
|
||||
'Latte\\Compiler\\Nodes\\TextNode' => $vendorDir . '/latte/latte/src/Latte/Compiler/Nodes/TextNode.php',
|
||||
'Latte\\Compiler\\PhpHelpers' => $vendorDir . '/latte/latte/src/Latte/Compiler/PhpHelpers.php',
|
||||
'Latte\\Compiler\\Position' => $vendorDir . '/latte/latte/src/Latte/Compiler/Position.php',
|
||||
'Latte\\Compiler\\PrintContext' => $vendorDir . '/latte/latte/src/Latte/Compiler/PrintContext.php',
|
||||
'Latte\\Compiler\\Tag' => $vendorDir . '/latte/latte/src/Latte/Compiler/Tag.php',
|
||||
'Latte\\Compiler\\TagLexer' => $vendorDir . '/latte/latte/src/Latte/Compiler/TagLexer.php',
|
||||
'Latte\\Compiler\\TagParser' => $vendorDir . '/latte/latte/src/Latte/Compiler/TagParser.php',
|
||||
'Latte\\Compiler\\TagParserData' => $vendorDir . '/latte/latte/src/Latte/Compiler/TagParserData.php',
|
||||
'Latte\\Compiler\\TemplateGenerator' => $vendorDir . '/latte/latte/src/Latte/Compiler/TemplateGenerator.php',
|
||||
'Latte\\Compiler\\TemplateLexer' => $vendorDir . '/latte/latte/src/Latte/Compiler/TemplateLexer.php',
|
||||
'Latte\\Compiler\\TemplateParser' => $vendorDir . '/latte/latte/src/Latte/Compiler/TemplateParser.php',
|
||||
'Latte\\Compiler\\TemplateParserHtml' => $vendorDir . '/latte/latte/src/Latte/Compiler/TemplateParserHtml.php',
|
||||
'Latte\\Compiler\\Token' => $vendorDir . '/latte/latte/src/Latte/Compiler/Token.php',
|
||||
'Latte\\Compiler\\TokenStream' => $vendorDir . '/latte/latte/src/Latte/Compiler/TokenStream.php',
|
||||
'Latte\\ContentType' => $vendorDir . '/latte/latte/src/Latte/ContentType.php',
|
||||
'Latte\\Engine' => $vendorDir . '/latte/latte/src/Latte/Engine.php',
|
||||
'Latte\\Essential\\AuxiliaryIterator' => $vendorDir . '/latte/latte/src/Latte/Essential/AuxiliaryIterator.php',
|
||||
'Latte\\Essential\\Blueprint' => $vendorDir . '/latte/latte/src/Latte/Essential/Blueprint.php',
|
||||
'Latte\\Essential\\CachingIterator' => $vendorDir . '/latte/latte/src/Latte/Essential/CachingIterator.php',
|
||||
'Latte\\Essential\\CoreExtension' => $vendorDir . '/latte/latte/src/Latte/Essential/CoreExtension.php',
|
||||
'Latte\\Essential\\Filters' => $vendorDir . '/latte/latte/src/Latte/Essential/Filters.php',
|
||||
'Latte\\Essential\\Nodes\\BlockNode' => $vendorDir . '/latte/latte/src/Latte/Essential/Nodes/BlockNode.php',
|
||||
'Latte\\Essential\\Nodes\\CaptureNode' => $vendorDir . '/latte/latte/src/Latte/Essential/Nodes/CaptureNode.php',
|
||||
'Latte\\Essential\\Nodes\\ContentTypeNode' => $vendorDir . '/latte/latte/src/Latte/Essential/Nodes/ContentTypeNode.php',
|
||||
'Latte\\Essential\\Nodes\\DebugbreakNode' => $vendorDir . '/latte/latte/src/Latte/Essential/Nodes/DebugbreakNode.php',
|
||||
'Latte\\Essential\\Nodes\\DefineNode' => $vendorDir . '/latte/latte/src/Latte/Essential/Nodes/DefineNode.php',
|
||||
'Latte\\Essential\\Nodes\\DoNode' => $vendorDir . '/latte/latte/src/Latte/Essential/Nodes/DoNode.php',
|
||||
'Latte\\Essential\\Nodes\\DumpNode' => $vendorDir . '/latte/latte/src/Latte/Essential/Nodes/DumpNode.php',
|
||||
'Latte\\Essential\\Nodes\\EmbedNode' => $vendorDir . '/latte/latte/src/Latte/Essential/Nodes/EmbedNode.php',
|
||||
'Latte\\Essential\\Nodes\\ExtendsNode' => $vendorDir . '/latte/latte/src/Latte/Essential/Nodes/ExtendsNode.php',
|
||||
'Latte\\Essential\\Nodes\\FirstLastSepNode' => $vendorDir . '/latte/latte/src/Latte/Essential/Nodes/FirstLastSepNode.php',
|
||||
'Latte\\Essential\\Nodes\\ForNode' => $vendorDir . '/latte/latte/src/Latte/Essential/Nodes/ForNode.php',
|
||||
'Latte\\Essential\\Nodes\\ForeachNode' => $vendorDir . '/latte/latte/src/Latte/Essential/Nodes/ForeachNode.php',
|
||||
'Latte\\Essential\\Nodes\\IfChangedNode' => $vendorDir . '/latte/latte/src/Latte/Essential/Nodes/IfChangedNode.php',
|
||||
'Latte\\Essential\\Nodes\\IfContentNode' => $vendorDir . '/latte/latte/src/Latte/Essential/Nodes/IfContentNode.php',
|
||||
'Latte\\Essential\\Nodes\\IfNode' => $vendorDir . '/latte/latte/src/Latte/Essential/Nodes/IfNode.php',
|
||||
'Latte\\Essential\\Nodes\\ImportNode' => $vendorDir . '/latte/latte/src/Latte/Essential/Nodes/ImportNode.php',
|
||||
'Latte\\Essential\\Nodes\\IncludeBlockNode' => $vendorDir . '/latte/latte/src/Latte/Essential/Nodes/IncludeBlockNode.php',
|
||||
'Latte\\Essential\\Nodes\\IncludeFileNode' => $vendorDir . '/latte/latte/src/Latte/Essential/Nodes/IncludeFileNode.php',
|
||||
'Latte\\Essential\\Nodes\\IterateWhileNode' => $vendorDir . '/latte/latte/src/Latte/Essential/Nodes/IterateWhileNode.php',
|
||||
'Latte\\Essential\\Nodes\\JumpNode' => $vendorDir . '/latte/latte/src/Latte/Essential/Nodes/JumpNode.php',
|
||||
'Latte\\Essential\\Nodes\\NAttrNode' => $vendorDir . '/latte/latte/src/Latte/Essential/Nodes/NAttrNode.php',
|
||||
'Latte\\Essential\\Nodes\\NClassNode' => $vendorDir . '/latte/latte/src/Latte/Essential/Nodes/NClassNode.php',
|
||||
'Latte\\Essential\\Nodes\\NElseNode' => $vendorDir . '/latte/latte/src/Latte/Essential/Nodes/NElseNode.php',
|
||||
'Latte\\Essential\\Nodes\\NTagNode' => $vendorDir . '/latte/latte/src/Latte/Essential/Nodes/NTagNode.php',
|
||||
'Latte\\Essential\\Nodes\\ParametersNode' => $vendorDir . '/latte/latte/src/Latte/Essential/Nodes/ParametersNode.php',
|
||||
'Latte\\Essential\\Nodes\\PrintNode' => $vendorDir . '/latte/latte/src/Latte/Essential/Nodes/PrintNode.php',
|
||||
'Latte\\Essential\\Nodes\\RawPhpNode' => $vendorDir . '/latte/latte/src/Latte/Essential/Nodes/RawPhpNode.php',
|
||||
'Latte\\Essential\\Nodes\\RollbackNode' => $vendorDir . '/latte/latte/src/Latte/Essential/Nodes/RollbackNode.php',
|
||||
'Latte\\Essential\\Nodes\\SpacelessNode' => $vendorDir . '/latte/latte/src/Latte/Essential/Nodes/SpacelessNode.php',
|
||||
'Latte\\Essential\\Nodes\\SwitchNode' => $vendorDir . '/latte/latte/src/Latte/Essential/Nodes/SwitchNode.php',
|
||||
'Latte\\Essential\\Nodes\\TemplatePrintNode' => $vendorDir . '/latte/latte/src/Latte/Essential/Nodes/TemplatePrintNode.php',
|
||||
'Latte\\Essential\\Nodes\\TemplateTypeNode' => $vendorDir . '/latte/latte/src/Latte/Essential/Nodes/TemplateTypeNode.php',
|
||||
'Latte\\Essential\\Nodes\\TraceNode' => $vendorDir . '/latte/latte/src/Latte/Essential/Nodes/TraceNode.php',
|
||||
'Latte\\Essential\\Nodes\\TranslateNode' => $vendorDir . '/latte/latte/src/Latte/Essential/Nodes/TranslateNode.php',
|
||||
'Latte\\Essential\\Nodes\\TryNode' => $vendorDir . '/latte/latte/src/Latte/Essential/Nodes/TryNode.php',
|
||||
'Latte\\Essential\\Nodes\\VarNode' => $vendorDir . '/latte/latte/src/Latte/Essential/Nodes/VarNode.php',
|
||||
'Latte\\Essential\\Nodes\\VarPrintNode' => $vendorDir . '/latte/latte/src/Latte/Essential/Nodes/VarPrintNode.php',
|
||||
'Latte\\Essential\\Nodes\\VarTypeNode' => $vendorDir . '/latte/latte/src/Latte/Essential/Nodes/VarTypeNode.php',
|
||||
'Latte\\Essential\\Nodes\\WhileNode' => $vendorDir . '/latte/latte/src/Latte/Essential/Nodes/WhileNode.php',
|
||||
'Latte\\Essential\\Passes' => $vendorDir . '/latte/latte/src/Latte/Essential/Passes.php',
|
||||
'Latte\\Essential\\RawPhpExtension' => $vendorDir . '/latte/latte/src/Latte/Essential/RawPhpExtension.php',
|
||||
'Latte\\Essential\\RollbackException' => $vendorDir . '/latte/latte/src/Latte/Essential/RollbackException.php',
|
||||
'Latte\\Essential\\Tracer' => $vendorDir . '/latte/latte/src/Latte/Essential/Tracer.php',
|
||||
'Latte\\Essential\\TranslatorExtension' => $vendorDir . '/latte/latte/src/Latte/Essential/TranslatorExtension.php',
|
||||
'Latte\\Exception' => $vendorDir . '/latte/latte/src/Latte/exceptions.php',
|
||||
'Latte\\Extension' => $vendorDir . '/latte/latte/src/Latte/Extension.php',
|
||||
'Latte\\Helpers' => $vendorDir . '/latte/latte/src/Latte/Helpers.php',
|
||||
'Latte\\Loader' => $vendorDir . '/latte/latte/src/Latte/Loader.php',
|
||||
'Latte\\Loaders\\FileLoader' => $vendorDir . '/latte/latte/src/Latte/Loaders/FileLoader.php',
|
||||
'Latte\\Loaders\\StringLoader' => $vendorDir . '/latte/latte/src/Latte/Loaders/StringLoader.php',
|
||||
'Latte\\Policy' => $vendorDir . '/latte/latte/src/Latte/Policy.php',
|
||||
'Latte\\PositionAwareException' => $vendorDir . '/latte/latte/src/Latte/PositionAwareException.php',
|
||||
'Latte\\RuntimeException' => $vendorDir . '/latte/latte/src/Latte/exceptions.php',
|
||||
'Latte\\Runtime\\Block' => $vendorDir . '/latte/latte/src/Latte/Runtime/Block.php',
|
||||
'Latte\\Runtime\\FilterExecutor' => $vendorDir . '/latte/latte/src/Latte/Runtime/FilterExecutor.php',
|
||||
'Latte\\Runtime\\FilterInfo' => $vendorDir . '/latte/latte/src/Latte/Runtime/FilterInfo.php',
|
||||
'Latte\\Runtime\\Filters' => $vendorDir . '/latte/latte/src/Latte/Runtime/Filters.php',
|
||||
'Latte\\Runtime\\FunctionExecutor' => $vendorDir . '/latte/latte/src/Latte/Runtime/FunctionExecutor.php',
|
||||
'Latte\\Runtime\\Html' => $vendorDir . '/latte/latte/src/Latte/Runtime/Html.php',
|
||||
'Latte\\Runtime\\HtmlStringable' => $vendorDir . '/latte/latte/src/Latte/Runtime/HtmlStringable.php',
|
||||
'Latte\\Runtime\\Template' => $vendorDir . '/latte/latte/src/Latte/Runtime/Template.php',
|
||||
'Latte\\Sandbox\\Nodes\\FunctionCallNode' => $vendorDir . '/latte/latte/src/Latte/Sandbox/Nodes/FunctionCallNode.php',
|
||||
'Latte\\Sandbox\\Nodes\\FunctionCallableNode' => $vendorDir . '/latte/latte/src/Latte/Sandbox/Nodes/FunctionCallableNode.php',
|
||||
'Latte\\Sandbox\\Nodes\\MethodCallNode' => $vendorDir . '/latte/latte/src/Latte/Sandbox/Nodes/MethodCallNode.php',
|
||||
'Latte\\Sandbox\\Nodes\\MethodCallableNode' => $vendorDir . '/latte/latte/src/Latte/Sandbox/Nodes/MethodCallableNode.php',
|
||||
'Latte\\Sandbox\\Nodes\\PropertyFetchNode' => $vendorDir . '/latte/latte/src/Latte/Sandbox/Nodes/PropertyFetchNode.php',
|
||||
'Latte\\Sandbox\\Nodes\\SandboxNode' => $vendorDir . '/latte/latte/src/Latte/Sandbox/Nodes/SandboxNode.php',
|
||||
'Latte\\Sandbox\\Nodes\\StaticMethodCallNode' => $vendorDir . '/latte/latte/src/Latte/Sandbox/Nodes/StaticMethodCallNode.php',
|
||||
'Latte\\Sandbox\\Nodes\\StaticMethodCallableNode' => $vendorDir . '/latte/latte/src/Latte/Sandbox/Nodes/StaticMethodCallableNode.php',
|
||||
'Latte\\Sandbox\\Nodes\\StaticPropertyFetchNode' => $vendorDir . '/latte/latte/src/Latte/Sandbox/Nodes/StaticPropertyFetchNode.php',
|
||||
'Latte\\Sandbox\\RuntimeChecker' => $vendorDir . '/latte/latte/src/Latte/Sandbox/RuntimeChecker.php',
|
||||
'Latte\\Sandbox\\SandboxExtension' => $vendorDir . '/latte/latte/src/Latte/Sandbox/SandboxExtension.php',
|
||||
'Latte\\Sandbox\\SecurityPolicy' => $vendorDir . '/latte/latte/src/Latte/Sandbox/SecurityPolicy.php',
|
||||
'Latte\\SecurityViolationException' => $vendorDir . '/latte/latte/src/Latte/exceptions.php',
|
||||
'Latte\\Tools\\Linter' => $vendorDir . '/latte/latte/src/Tools/Linter.php',
|
||||
'NetteModule\\ErrorPresenter' => $vendorDir . '/nette/application/src/Application/ErrorPresenter.php',
|
||||
'NetteModule\\MicroPresenter' => $vendorDir . '/nette/application/src/Application/MicroPresenter.php',
|
||||
'Nette\\Application\\AbortException' => $vendorDir . '/nette/application/src/Application/exceptions.php',
|
||||
'Nette\\Application\\Application' => $vendorDir . '/nette/application/src/Application/Application.php',
|
||||
'Nette\\Application\\ApplicationException' => $vendorDir . '/nette/application/src/Application/exceptions.php',
|
||||
'Nette\\Application\\Attributes\\CrossOrigin' => $vendorDir . '/nette/application/src/Application/Attributes/CrossOrigin.php',
|
||||
'Nette\\Application\\Attributes\\Deprecated' => $vendorDir . '/nette/application/src/Application/Attributes/Deprecated.php',
|
||||
'Nette\\Application\\Attributes\\Parameter' => $vendorDir . '/nette/application/src/Application/Attributes/Parameter.php',
|
||||
'Nette\\Application\\Attributes\\Persistent' => $vendorDir . '/nette/application/src/Application/Attributes/Persistent.php',
|
||||
'Nette\\Application\\Attributes\\Requires' => $vendorDir . '/nette/application/src/Application/Attributes/Requires.php',
|
||||
'Nette\\Application\\BadRequestException' => $vendorDir . '/nette/application/src/Application/exceptions.php',
|
||||
'Nette\\Application\\ForbiddenRequestException' => $vendorDir . '/nette/application/src/Application/exceptions.php',
|
||||
'Nette\\Application\\Helpers' => $vendorDir . '/nette/application/src/Application/Helpers.php',
|
||||
'Nette\\Application\\IPresenter' => $vendorDir . '/nette/application/src/Application/IPresenter.php',
|
||||
'Nette\\Application\\IPresenterFactory' => $vendorDir . '/nette/application/src/Application/IPresenterFactory.php',
|
||||
'Nette\\Application\\IResponse' => $vendorDir . '/nette/application/src/compatibility-intf.php',
|
||||
'Nette\\Application\\IRouter' => $vendorDir . '/nette/application/src/compatibility-intf.php',
|
||||
'Nette\\Application\\InvalidPresenterException' => $vendorDir . '/nette/application/src/Application/exceptions.php',
|
||||
'Nette\\Application\\LinkGenerator' => $vendorDir . '/nette/application/src/Application/LinkGenerator.php',
|
||||
'Nette\\Application\\PresenterFactory' => $vendorDir . '/nette/application/src/Application/PresenterFactory.php',
|
||||
'Nette\\Application\\Request' => $vendorDir . '/nette/application/src/Application/Request.php',
|
||||
'Nette\\Application\\Response' => $vendorDir . '/nette/application/src/Application/Response.php',
|
||||
'Nette\\Application\\Responses\\CallbackResponse' => $vendorDir . '/nette/application/src/Application/Responses/CallbackResponse.php',
|
||||
'Nette\\Application\\Responses\\FileResponse' => $vendorDir . '/nette/application/src/Application/Responses/FileResponse.php',
|
||||
'Nette\\Application\\Responses\\ForwardResponse' => $vendorDir . '/nette/application/src/Application/Responses/ForwardResponse.php',
|
||||
'Nette\\Application\\Responses\\JsonResponse' => $vendorDir . '/nette/application/src/Application/Responses/JsonResponse.php',
|
||||
'Nette\\Application\\Responses\\RedirectResponse' => $vendorDir . '/nette/application/src/Application/Responses/RedirectResponse.php',
|
||||
'Nette\\Application\\Responses\\TextResponse' => $vendorDir . '/nette/application/src/Application/Responses/TextResponse.php',
|
||||
'Nette\\Application\\Responses\\VoidResponse' => $vendorDir . '/nette/application/src/Application/Responses/VoidResponse.php',
|
||||
'Nette\\Application\\Routers\\CliRouter' => $vendorDir . '/nette/application/src/Application/Routers/CliRouter.php',
|
||||
'Nette\\Application\\Routers\\Route' => $vendorDir . '/nette/application/src/Application/Routers/Route.php',
|
||||
'Nette\\Application\\Routers\\RouteList' => $vendorDir . '/nette/application/src/Application/Routers/RouteList.php',
|
||||
'Nette\\Application\\Routers\\SimpleRouter' => $vendorDir . '/nette/application/src/Application/Routers/SimpleRouter.php',
|
||||
'Nette\\Application\\SwitchException' => $vendorDir . '/nette/application/src/Application/exceptions.php',
|
||||
'Nette\\Application\\UI\\AccessPolicy' => $vendorDir . '/nette/application/src/Application/UI/AccessPolicy.php',
|
||||
'Nette\\Application\\UI\\BadSignalException' => $vendorDir . '/nette/application/src/Application/UI/BadSignalException.php',
|
||||
'Nette\\Application\\UI\\Component' => $vendorDir . '/nette/application/src/Application/UI/Component.php',
|
||||
'Nette\\Application\\UI\\ComponentReflection' => $vendorDir . '/nette/application/src/Application/UI/ComponentReflection.php',
|
||||
'Nette\\Application\\UI\\Control' => $vendorDir . '/nette/application/src/Application/UI/Control.php',
|
||||
'Nette\\Application\\UI\\Form' => $vendorDir . '/nette/application/src/Application/UI/Form.php',
|
||||
'Nette\\Application\\UI\\IRenderable' => $vendorDir . '/nette/application/src/compatibility-intf.php',
|
||||
'Nette\\Application\\UI\\ISignalReceiver' => $vendorDir . '/nette/application/src/compatibility-intf.php',
|
||||
'Nette\\Application\\UI\\IStatePersistent' => $vendorDir . '/nette/application/src/compatibility-intf.php',
|
||||
'Nette\\Application\\UI\\ITemplate' => $vendorDir . '/nette/application/src/compatibility-intf.php',
|
||||
'Nette\\Application\\UI\\ITemplateFactory' => $vendorDir . '/nette/application/src/compatibility-intf.php',
|
||||
'Nette\\Application\\UI\\InvalidLinkException' => $vendorDir . '/nette/application/src/Application/UI/InvalidLinkException.php',
|
||||
'Nette\\Application\\UI\\Link' => $vendorDir . '/nette/application/src/Application/UI/Link.php',
|
||||
'Nette\\Application\\UI\\MethodReflection' => $vendorDir . '/nette/application/src/Application/UI/MethodReflection.php',
|
||||
'Nette\\Application\\UI\\Multiplier' => $vendorDir . '/nette/application/src/Application/UI/Multiplier.php',
|
||||
'Nette\\Application\\UI\\ParameterConverter' => $vendorDir . '/nette/application/src/Application/UI/ParameterConverter.php',
|
||||
'Nette\\Application\\UI\\Presenter' => $vendorDir . '/nette/application/src/Application/UI/Presenter.php',
|
||||
'Nette\\Application\\UI\\PresenterComponent' => $vendorDir . '/nette/application/src/compatibility.php',
|
||||
'Nette\\Application\\UI\\PresenterComponentReflection' => $vendorDir . '/nette/application/src/compatibility.php',
|
||||
'Nette\\Application\\UI\\Renderable' => $vendorDir . '/nette/application/src/Application/UI/Renderable.php',
|
||||
'Nette\\Application\\UI\\SignalReceiver' => $vendorDir . '/nette/application/src/Application/UI/SignalReceiver.php',
|
||||
'Nette\\Application\\UI\\StatePersistent' => $vendorDir . '/nette/application/src/Application/UI/StatePersistent.php',
|
||||
'Nette\\Application\\UI\\Template' => $vendorDir . '/nette/application/src/Application/UI/Template.php',
|
||||
'Nette\\Application\\UI\\TemplateFactory' => $vendorDir . '/nette/application/src/Application/UI/TemplateFactory.php',
|
||||
'Nette\\ArgumentOutOfRangeException' => $vendorDir . '/nette/utils/src/exceptions.php',
|
||||
'Nette\\Bootstrap\\Configurator' => $vendorDir . '/nette/bootstrap/src/Bootstrap/Configurator.php',
|
||||
'Nette\\Bootstrap\\Extensions\\ConstantsExtension' => $vendorDir . '/nette/bootstrap/src/Bootstrap/Extensions/ConstantsExtension.php',
|
||||
'Nette\\Bootstrap\\Extensions\\PhpExtension' => $vendorDir . '/nette/bootstrap/src/Bootstrap/Extensions/PhpExtension.php',
|
||||
'Nette\\Bridges\\ApplicationDI\\ApplicationExtension' => $vendorDir . '/nette/application/src/Bridges/ApplicationDI/ApplicationExtension.php',
|
||||
'Nette\\Bridges\\ApplicationDI\\LatteExtension' => $vendorDir . '/nette/application/src/Bridges/ApplicationDI/LatteExtension.php',
|
||||
'Nette\\Bridges\\ApplicationDI\\PresenterFactoryCallback' => $vendorDir . '/nette/application/src/Bridges/ApplicationDI/PresenterFactoryCallback.php',
|
||||
'Nette\\Bridges\\ApplicationDI\\RoutingExtension' => $vendorDir . '/nette/application/src/Bridges/ApplicationDI/RoutingExtension.php',
|
||||
'Nette\\Bridges\\ApplicationLatte\\DefaultTemplate' => $vendorDir . '/nette/application/src/Bridges/ApplicationLatte/DefaultTemplate.php',
|
||||
'Nette\\Bridges\\ApplicationLatte\\ILatteFactory' => $vendorDir . '/nette/application/src/compatibility-intf.php',
|
||||
'Nette\\Bridges\\ApplicationLatte\\LatteFactory' => $vendorDir . '/nette/application/src/Bridges/ApplicationLatte/LatteFactory.php',
|
||||
'Nette\\Bridges\\ApplicationLatte\\Nodes\\ControlNode' => $vendorDir . '/nette/application/src/Bridges/ApplicationLatte/Nodes/ControlNode.php',
|
||||
'Nette\\Bridges\\ApplicationLatte\\Nodes\\IfCurrentNode' => $vendorDir . '/nette/application/src/Bridges/ApplicationLatte/Nodes/IfCurrentNode.php',
|
||||
'Nette\\Bridges\\ApplicationLatte\\Nodes\\LinkNode' => $vendorDir . '/nette/application/src/Bridges/ApplicationLatte/Nodes/LinkNode.php',
|
||||
'Nette\\Bridges\\ApplicationLatte\\Nodes\\NNonceNode' => $vendorDir . '/nette/application/src/Bridges/ApplicationLatte/Nodes/NNonceNode.php',
|
||||
'Nette\\Bridges\\ApplicationLatte\\Nodes\\SnippetAreaNode' => $vendorDir . '/nette/application/src/Bridges/ApplicationLatte/Nodes/SnippetAreaNode.php',
|
||||
'Nette\\Bridges\\ApplicationLatte\\Nodes\\SnippetNode' => $vendorDir . '/nette/application/src/Bridges/ApplicationLatte/Nodes/SnippetNode.php',
|
||||
'Nette\\Bridges\\ApplicationLatte\\Nodes\\TemplatePrintNode' => $vendorDir . '/nette/application/src/Bridges/ApplicationLatte/Nodes/TemplatePrintNode.php',
|
||||
'Nette\\Bridges\\ApplicationLatte\\SnippetBridge' => $vendorDir . '/nette/application/src/Bridges/ApplicationLatte/SnippetBridge.php',
|
||||
'Nette\\Bridges\\ApplicationLatte\\SnippetRuntime' => $vendorDir . '/nette/application/src/Bridges/ApplicationLatte/SnippetRuntime.php',
|
||||
'Nette\\Bridges\\ApplicationLatte\\Template' => $vendorDir . '/nette/application/src/Bridges/ApplicationLatte/Template.php',
|
||||
'Nette\\Bridges\\ApplicationLatte\\TemplateFactory' => $vendorDir . '/nette/application/src/Bridges/ApplicationLatte/TemplateFactory.php',
|
||||
'Nette\\Bridges\\ApplicationLatte\\UIExtension' => $vendorDir . '/nette/application/src/Bridges/ApplicationLatte/UIExtension.php',
|
||||
'Nette\\Bridges\\ApplicationLatte\\UIMacros' => $vendorDir . '/nette/application/src/Bridges/ApplicationLatte/UIMacros.php',
|
||||
'Nette\\Bridges\\ApplicationLatte\\UIRuntime' => $vendorDir . '/nette/application/src/Bridges/ApplicationLatte/UIRuntime.php',
|
||||
'Nette\\Bridges\\ApplicationTracy\\RoutingPanel' => $vendorDir . '/nette/application/src/Bridges/ApplicationTracy/RoutingPanel.php',
|
||||
'Nette\\Bridges\\CacheDI\\CacheExtension' => $vendorDir . '/nette/caching/src/Bridges/CacheDI/CacheExtension.php',
|
||||
'Nette\\Bridges\\CacheLatte\\CacheExtension' => $vendorDir . '/nette/caching/src/Bridges/CacheLatte/CacheExtension.php',
|
||||
'Nette\\Bridges\\CacheLatte\\CacheMacro' => $vendorDir . '/nette/caching/src/Bridges/CacheLatte/CacheMacro.php',
|
||||
'Nette\\Bridges\\CacheLatte\\Nodes\\CacheNode' => $vendorDir . '/nette/caching/src/Bridges/CacheLatte/Nodes/CacheNode.php',
|
||||
'Nette\\Bridges\\CacheLatte\\Runtime' => $vendorDir . '/nette/caching/src/Bridges/CacheLatte/Runtime.php',
|
||||
'Nette\\Bridges\\DITracy\\ContainerPanel' => $vendorDir . '/nette/di/src/Bridges/DITracy/ContainerPanel.php',
|
||||
'Nette\\Bridges\\DatabaseDI\\DatabaseExtension' => $vendorDir . '/nette/database/src/Bridges/DatabaseDI/DatabaseExtension.php',
|
||||
'Nette\\Bridges\\DatabaseTracy\\ConnectionPanel' => $vendorDir . '/nette/database/src/Bridges/DatabaseTracy/ConnectionPanel.php',
|
||||
'Nette\\Bridges\\FormsDI\\FormsExtension' => $vendorDir . '/nette/forms/src/Bridges/FormsDI/FormsExtension.php',
|
||||
'Nette\\Bridges\\FormsLatte\\FormMacros' => $vendorDir . '/nette/forms/src/Bridges/FormsLatte/FormMacros.php',
|
||||
'Nette\\Bridges\\FormsLatte\\FormsExtension' => $vendorDir . '/nette/forms/src/Bridges/FormsLatte/FormsExtension.php',
|
||||
'Nette\\Bridges\\FormsLatte\\Nodes\\FieldNNameNode' => $vendorDir . '/nette/forms/src/Bridges/FormsLatte/Nodes/FieldNNameNode.php',
|
||||
'Nette\\Bridges\\FormsLatte\\Nodes\\FormContainerNode' => $vendorDir . '/nette/forms/src/Bridges/FormsLatte/Nodes/FormContainerNode.php',
|
||||
'Nette\\Bridges\\FormsLatte\\Nodes\\FormNNameNode' => $vendorDir . '/nette/forms/src/Bridges/FormsLatte/Nodes/FormNNameNode.php',
|
||||
'Nette\\Bridges\\FormsLatte\\Nodes\\FormNode' => $vendorDir . '/nette/forms/src/Bridges/FormsLatte/Nodes/FormNode.php',
|
||||
'Nette\\Bridges\\FormsLatte\\Nodes\\FormPrintNode' => $vendorDir . '/nette/forms/src/Bridges/FormsLatte/Nodes/FormPrintNode.php',
|
||||
'Nette\\Bridges\\FormsLatte\\Nodes\\InputErrorNode' => $vendorDir . '/nette/forms/src/Bridges/FormsLatte/Nodes/InputErrorNode.php',
|
||||
'Nette\\Bridges\\FormsLatte\\Nodes\\InputNode' => $vendorDir . '/nette/forms/src/Bridges/FormsLatte/Nodes/InputNode.php',
|
||||
'Nette\\Bridges\\FormsLatte\\Nodes\\LabelNode' => $vendorDir . '/nette/forms/src/Bridges/FormsLatte/Nodes/LabelNode.php',
|
||||
'Nette\\Bridges\\FormsLatte\\Runtime' => $vendorDir . '/nette/forms/src/Bridges/FormsLatte/Runtime.php',
|
||||
'Nette\\Bridges\\HttpDI\\HttpExtension' => $vendorDir . '/nette/http/src/Bridges/HttpDI/HttpExtension.php',
|
||||
'Nette\\Bridges\\HttpDI\\SessionExtension' => $vendorDir . '/nette/http/src/Bridges/HttpDI/SessionExtension.php',
|
||||
'Nette\\Bridges\\HttpTracy\\SessionPanel' => $vendorDir . '/nette/http/src/Bridges/HttpTracy/SessionPanel.php',
|
||||
'Nette\\Bridges\\MailDI\\MailExtension' => $vendorDir . '/nette/mail/src/Bridges/MailDI/MailExtension.php',
|
||||
'Nette\\Bridges\\Psr\\PsrCacheAdapter' => $vendorDir . '/nette/caching/src/Bridges/Psr/PsrCacheAdapter.php',
|
||||
'Nette\\Bridges\\SecurityDI\\SecurityExtension' => $vendorDir . '/nette/security/src/Bridges/SecurityDI/SecurityExtension.php',
|
||||
'Nette\\Bridges\\SecurityHttp\\CookieStorage' => $vendorDir . '/nette/security/src/Bridges/SecurityHttp/CookieStorage.php',
|
||||
'Nette\\Bridges\\SecurityHttp\\SessionStorage' => $vendorDir . '/nette/security/src/Bridges/SecurityHttp/SessionStorage.php',
|
||||
'Nette\\Bridges\\SecurityTracy\\UserPanel' => $vendorDir . '/nette/security/src/Bridges/SecurityTracy/UserPanel.php',
|
||||
'Nette\\Caching\\BulkReader' => $vendorDir . '/nette/caching/src/Caching/BulkReader.php',
|
||||
'Nette\\Caching\\BulkWriter' => $vendorDir . '/nette/caching/src/Caching/BulkWriter.php',
|
||||
'Nette\\Caching\\Cache' => $vendorDir . '/nette/caching/src/Caching/Cache.php',
|
||||
'Nette\\Caching\\IBulkReader' => $vendorDir . '/nette/caching/src/compatibility.php',
|
||||
'Nette\\Caching\\IStorage' => $vendorDir . '/nette/caching/src/compatibility.php',
|
||||
'Nette\\Caching\\OutputHelper' => $vendorDir . '/nette/caching/src/Caching/OutputHelper.php',
|
||||
'Nette\\Caching\\Storage' => $vendorDir . '/nette/caching/src/Caching/Storage.php',
|
||||
'Nette\\Caching\\Storages\\DevNullStorage' => $vendorDir . '/nette/caching/src/Caching/Storages/DevNullStorage.php',
|
||||
'Nette\\Caching\\Storages\\FileStorage' => $vendorDir . '/nette/caching/src/Caching/Storages/FileStorage.php',
|
||||
'Nette\\Caching\\Storages\\IJournal' => $vendorDir . '/nette/caching/src/compatibility.php',
|
||||
'Nette\\Caching\\Storages\\Journal' => $vendorDir . '/nette/caching/src/Caching/Storages/Journal.php',
|
||||
'Nette\\Caching\\Storages\\MemcachedStorage' => $vendorDir . '/nette/caching/src/Caching/Storages/MemcachedStorage.php',
|
||||
'Nette\\Caching\\Storages\\MemoryStorage' => $vendorDir . '/nette/caching/src/Caching/Storages/MemoryStorage.php',
|
||||
'Nette\\Caching\\Storages\\SQLiteJournal' => $vendorDir . '/nette/caching/src/Caching/Storages/SQLiteJournal.php',
|
||||
'Nette\\Caching\\Storages\\SQLiteStorage' => $vendorDir . '/nette/caching/src/Caching/Storages/SQLiteStorage.php',
|
||||
'Nette\\ComponentModel\\ArrayAccess' => $vendorDir . '/nette/component-model/src/ComponentModel/ArrayAccess.php',
|
||||
'Nette\\ComponentModel\\Component' => $vendorDir . '/nette/component-model/src/ComponentModel/Component.php',
|
||||
'Nette\\ComponentModel\\Container' => $vendorDir . '/nette/component-model/src/ComponentModel/Container.php',
|
||||
'Nette\\ComponentModel\\IComponent' => $vendorDir . '/nette/component-model/src/ComponentModel/IComponent.php',
|
||||
'Nette\\ComponentModel\\IContainer' => $vendorDir . '/nette/component-model/src/ComponentModel/IContainer.php',
|
||||
'Nette\\ComponentModel\\RecursiveComponentIterator' => $vendorDir . '/nette/component-model/src/ComponentModel/RecursiveComponentIterator.php',
|
||||
'Nette\\Configurator' => $vendorDir . '/nette/bootstrap/src/Configurator.php',
|
||||
'Nette\\DI\\Attributes\\Inject' => $vendorDir . '/nette/di/src/DI/Attributes/Inject.php',
|
||||
'Nette\\DI\\Autowiring' => $vendorDir . '/nette/di/src/DI/Autowiring.php',
|
||||
'Nette\\DI\\Compiler' => $vendorDir . '/nette/di/src/DI/Compiler.php',
|
||||
'Nette\\DI\\CompilerExtension' => $vendorDir . '/nette/di/src/DI/CompilerExtension.php',
|
||||
'Nette\\DI\\Config\\Adapter' => $vendorDir . '/nette/di/src/DI/Config/Adapter.php',
|
||||
'Nette\\DI\\Config\\Adapters\\NeonAdapter' => $vendorDir . '/nette/di/src/DI/Config/Adapters/NeonAdapter.php',
|
||||
'Nette\\DI\\Config\\Adapters\\PhpAdapter' => $vendorDir . '/nette/di/src/DI/Config/Adapters/PhpAdapter.php',
|
||||
'Nette\\DI\\Config\\Helpers' => $vendorDir . '/nette/di/src/DI/Config/Helpers.php',
|
||||
'Nette\\DI\\Config\\IAdapter' => $vendorDir . '/nette/di/src/compatibility.php',
|
||||
'Nette\\DI\\Config\\Loader' => $vendorDir . '/nette/di/src/DI/Config/Loader.php',
|
||||
'Nette\\DI\\Container' => $vendorDir . '/nette/di/src/DI/Container.php',
|
||||
'Nette\\DI\\ContainerBuilder' => $vendorDir . '/nette/di/src/DI/ContainerBuilder.php',
|
||||
'Nette\\DI\\ContainerLoader' => $vendorDir . '/nette/di/src/DI/ContainerLoader.php',
|
||||
'Nette\\DI\\Definitions\\AccessorDefinition' => $vendorDir . '/nette/di/src/DI/Definitions/AccessorDefinition.php',
|
||||
'Nette\\DI\\Definitions\\Definition' => $vendorDir . '/nette/di/src/DI/Definitions/Definition.php',
|
||||
'Nette\\DI\\Definitions\\FactoryDefinition' => $vendorDir . '/nette/di/src/DI/Definitions/FactoryDefinition.php',
|
||||
'Nette\\DI\\Definitions\\ImportedDefinition' => $vendorDir . '/nette/di/src/DI/Definitions/ImportedDefinition.php',
|
||||
'Nette\\DI\\Definitions\\LocatorDefinition' => $vendorDir . '/nette/di/src/DI/Definitions/LocatorDefinition.php',
|
||||
'Nette\\DI\\Definitions\\Reference' => $vendorDir . '/nette/di/src/DI/Definitions/Reference.php',
|
||||
'Nette\\DI\\Definitions\\ServiceDefinition' => $vendorDir . '/nette/di/src/DI/Definitions/ServiceDefinition.php',
|
||||
'Nette\\DI\\Definitions\\Statement' => $vendorDir . '/nette/di/src/DI/Definitions/Statement.php',
|
||||
'Nette\\DI\\DependencyChecker' => $vendorDir . '/nette/di/src/DI/DependencyChecker.php',
|
||||
'Nette\\DI\\DynamicParameter' => $vendorDir . '/nette/di/src/DI/DynamicParameter.php',
|
||||
'Nette\\DI\\Extensions\\DIExtension' => $vendorDir . '/nette/di/src/DI/Extensions/DIExtension.php',
|
||||
'Nette\\DI\\Extensions\\DecoratorExtension' => $vendorDir . '/nette/di/src/DI/Extensions/DecoratorExtension.php',
|
||||
'Nette\\DI\\Extensions\\DefinitionSchema' => $vendorDir . '/nette/di/src/DI/Extensions/DefinitionSchema.php',
|
||||
'Nette\\DI\\Extensions\\ExtensionsExtension' => $vendorDir . '/nette/di/src/DI/Extensions/ExtensionsExtension.php',
|
||||
'Nette\\DI\\Extensions\\InjectExtension' => $vendorDir . '/nette/di/src/DI/Extensions/InjectExtension.php',
|
||||
'Nette\\DI\\Extensions\\ParametersExtension' => $vendorDir . '/nette/di/src/DI/Extensions/ParametersExtension.php',
|
||||
'Nette\\DI\\Extensions\\SearchExtension' => $vendorDir . '/nette/di/src/DI/Extensions/SearchExtension.php',
|
||||
'Nette\\DI\\Extensions\\ServicesExtension' => $vendorDir . '/nette/di/src/DI/Extensions/ServicesExtension.php',
|
||||
'Nette\\DI\\Helpers' => $vendorDir . '/nette/di/src/DI/Helpers.php',
|
||||
'Nette\\DI\\InvalidConfigurationException' => $vendorDir . '/nette/di/src/DI/exceptions.php',
|
||||
'Nette\\DI\\MissingServiceException' => $vendorDir . '/nette/di/src/DI/exceptions.php',
|
||||
'Nette\\DI\\NotAllowedDuringResolvingException' => $vendorDir . '/nette/di/src/DI/exceptions.php',
|
||||
'Nette\\DI\\PhpGenerator' => $vendorDir . '/nette/di/src/DI/PhpGenerator.php',
|
||||
'Nette\\DI\\Resolver' => $vendorDir . '/nette/di/src/DI/Resolver.php',
|
||||
'Nette\\DI\\ServiceCreationException' => $vendorDir . '/nette/di/src/DI/exceptions.php',
|
||||
'Nette\\DI\\ServiceDefinition' => $vendorDir . '/nette/di/src/compatibility.php',
|
||||
'Nette\\DI\\Statement' => $vendorDir . '/nette/di/src/compatibility.php',
|
||||
'Nette\\Database\\Connection' => $vendorDir . '/nette/database/src/Database/Connection.php',
|
||||
'Nette\\Database\\ConnectionException' => $vendorDir . '/nette/database/src/Database/exceptions.php',
|
||||
'Nette\\Database\\ConstraintViolationException' => $vendorDir . '/nette/database/src/Database/exceptions.php',
|
||||
'Nette\\Database\\Context' => $vendorDir . '/nette/database/src/compatibility.php',
|
||||
'Nette\\Database\\Conventions' => $vendorDir . '/nette/database/src/Database/Conventions.php',
|
||||
'Nette\\Database\\Conventions\\AmbiguousReferenceKeyException' => $vendorDir . '/nette/database/src/Database/Conventions/AmbiguousReferenceKeyException.php',
|
||||
'Nette\\Database\\Conventions\\DiscoveredConventions' => $vendorDir . '/nette/database/src/Database/Conventions/DiscoveredConventions.php',
|
||||
'Nette\\Database\\Conventions\\StaticConventions' => $vendorDir . '/nette/database/src/Database/Conventions/StaticConventions.php',
|
||||
'Nette\\Database\\DateTime' => $vendorDir . '/nette/database/src/Database/DateTime.php',
|
||||
'Nette\\Database\\Driver' => $vendorDir . '/nette/database/src/Database/Driver.php',
|
||||
'Nette\\Database\\DriverException' => $vendorDir . '/nette/database/src/Database/DriverException.php',
|
||||
'Nette\\Database\\Drivers\\MsSqlDriver' => $vendorDir . '/nette/database/src/Database/Drivers/MsSqlDriver.php',
|
||||
'Nette\\Database\\Drivers\\MySqlDriver' => $vendorDir . '/nette/database/src/Database/Drivers/MySqlDriver.php',
|
||||
'Nette\\Database\\Drivers\\OciDriver' => $vendorDir . '/nette/database/src/Database/Drivers/OciDriver.php',
|
||||
'Nette\\Database\\Drivers\\OdbcDriver' => $vendorDir . '/nette/database/src/Database/Drivers/OdbcDriver.php',
|
||||
'Nette\\Database\\Drivers\\PgSqlDriver' => $vendorDir . '/nette/database/src/Database/Drivers/PgSqlDriver.php',
|
||||
'Nette\\Database\\Drivers\\SqliteDriver' => $vendorDir . '/nette/database/src/Database/Drivers/SqliteDriver.php',
|
||||
'Nette\\Database\\Drivers\\SqlsrvDriver' => $vendorDir . '/nette/database/src/Database/Drivers/SqlsrvDriver.php',
|
||||
'Nette\\Database\\Explorer' => $vendorDir . '/nette/database/src/Database/Explorer.php',
|
||||
'Nette\\Database\\ForeignKeyConstraintViolationException' => $vendorDir . '/nette/database/src/Database/exceptions.php',
|
||||
'Nette\\Database\\Helpers' => $vendorDir . '/nette/database/src/Database/Helpers.php',
|
||||
'Nette\\Database\\IConventions' => $vendorDir . '/nette/database/src/compatibility-intf.php',
|
||||
'Nette\\Database\\IRow' => $vendorDir . '/nette/database/src/Database/IRow.php',
|
||||
'Nette\\Database\\IRowContainer' => $vendorDir . '/nette/database/src/Database/IRowContainer.php',
|
||||
'Nette\\Database\\IStructure' => $vendorDir . '/nette/database/src/Database/IStructure.php',
|
||||
'Nette\\Database\\ISupplementalDriver' => $vendorDir . '/nette/database/src/compatibility-intf.php',
|
||||
'Nette\\Database\\NotNullConstraintViolationException' => $vendorDir . '/nette/database/src/Database/exceptions.php',
|
||||
'Nette\\Database\\Reflection' => $vendorDir . '/nette/database/src/Database/Reflection.php',
|
||||
'Nette\\Database\\Reflection\\Column' => $vendorDir . '/nette/database/src/Database/Reflection/Column.php',
|
||||
'Nette\\Database\\Reflection\\ForeignKey' => $vendorDir . '/nette/database/src/Database/Reflection/ForeignKey.php',
|
||||
'Nette\\Database\\Reflection\\Index' => $vendorDir . '/nette/database/src/Database/Reflection/Index.php',
|
||||
'Nette\\Database\\Reflection\\Table' => $vendorDir . '/nette/database/src/Database/Reflection/Table.php',
|
||||
'Nette\\Database\\ResultSet' => $vendorDir . '/nette/database/src/Database/ResultSet.php',
|
||||
'Nette\\Database\\Row' => $vendorDir . '/nette/database/src/Database/Row.php',
|
||||
'Nette\\Database\\SqlLiteral' => $vendorDir . '/nette/database/src/Database/SqlLiteral.php',
|
||||
'Nette\\Database\\SqlPreprocessor' => $vendorDir . '/nette/database/src/Database/SqlPreprocessor.php',
|
||||
'Nette\\Database\\Structure' => $vendorDir . '/nette/database/src/Database/Structure.php',
|
||||
'Nette\\Database\\Table\\ActiveRow' => $vendorDir . '/nette/database/src/Database/Table/ActiveRow.php',
|
||||
'Nette\\Database\\Table\\GroupedSelection' => $vendorDir . '/nette/database/src/Database/Table/GroupedSelection.php',
|
||||
'Nette\\Database\\Table\\IRow' => $vendorDir . '/nette/database/src/Database/Table/IRow.php',
|
||||
'Nette\\Database\\Table\\IRowContainer' => $vendorDir . '/nette/database/src/Database/Table/IRowContainer.php',
|
||||
'Nette\\Database\\Table\\Selection' => $vendorDir . '/nette/database/src/Database/Table/Selection.php',
|
||||
'Nette\\Database\\Table\\SqlBuilder' => $vendorDir . '/nette/database/src/Database/Table/SqlBuilder.php',
|
||||
'Nette\\Database\\UniqueConstraintViolationException' => $vendorDir . '/nette/database/src/Database/exceptions.php',
|
||||
'Nette\\DeprecatedException' => $vendorDir . '/nette/utils/src/exceptions.php',
|
||||
'Nette\\DirectoryNotFoundException' => $vendorDir . '/nette/utils/src/exceptions.php',
|
||||
'Nette\\FileNotFoundException' => $vendorDir . '/nette/utils/src/exceptions.php',
|
||||
'Nette\\Forms\\Blueprint' => $vendorDir . '/nette/forms/src/Forms/Blueprint.php',
|
||||
'Nette\\Forms\\Container' => $vendorDir . '/nette/forms/src/Forms/Container.php',
|
||||
'Nette\\Forms\\Control' => $vendorDir . '/nette/forms/src/Forms/Control.php',
|
||||
'Nette\\Forms\\ControlGroup' => $vendorDir . '/nette/forms/src/Forms/ControlGroup.php',
|
||||
'Nette\\Forms\\Controls\\BaseControl' => $vendorDir . '/nette/forms/src/Forms/Controls/BaseControl.php',
|
||||
'Nette\\Forms\\Controls\\Button' => $vendorDir . '/nette/forms/src/Forms/Controls/Button.php',
|
||||
'Nette\\Forms\\Controls\\Checkbox' => $vendorDir . '/nette/forms/src/Forms/Controls/Checkbox.php',
|
||||
'Nette\\Forms\\Controls\\CheckboxList' => $vendorDir . '/nette/forms/src/Forms/Controls/CheckboxList.php',
|
||||
'Nette\\Forms\\Controls\\ChoiceControl' => $vendorDir . '/nette/forms/src/Forms/Controls/ChoiceControl.php',
|
||||
'Nette\\Forms\\Controls\\ColorPicker' => $vendorDir . '/nette/forms/src/Forms/Controls/ColorPicker.php',
|
||||
'Nette\\Forms\\Controls\\CsrfProtection' => $vendorDir . '/nette/forms/src/Forms/Controls/CsrfProtection.php',
|
||||
'Nette\\Forms\\Controls\\DateTimeControl' => $vendorDir . '/nette/forms/src/Forms/Controls/DateTimeControl.php',
|
||||
'Nette\\Forms\\Controls\\HiddenField' => $vendorDir . '/nette/forms/src/Forms/Controls/HiddenField.php',
|
||||
'Nette\\Forms\\Controls\\ImageButton' => $vendorDir . '/nette/forms/src/Forms/Controls/ImageButton.php',
|
||||
'Nette\\Forms\\Controls\\MultiChoiceControl' => $vendorDir . '/nette/forms/src/Forms/Controls/MultiChoiceControl.php',
|
||||
'Nette\\Forms\\Controls\\MultiSelectBox' => $vendorDir . '/nette/forms/src/Forms/Controls/MultiSelectBox.php',
|
||||
'Nette\\Forms\\Controls\\RadioList' => $vendorDir . '/nette/forms/src/Forms/Controls/RadioList.php',
|
||||
'Nette\\Forms\\Controls\\SelectBox' => $vendorDir . '/nette/forms/src/Forms/Controls/SelectBox.php',
|
||||
'Nette\\Forms\\Controls\\SubmitButton' => $vendorDir . '/nette/forms/src/Forms/Controls/SubmitButton.php',
|
||||
'Nette\\Forms\\Controls\\TextArea' => $vendorDir . '/nette/forms/src/Forms/Controls/TextArea.php',
|
||||
'Nette\\Forms\\Controls\\TextBase' => $vendorDir . '/nette/forms/src/Forms/Controls/TextBase.php',
|
||||
'Nette\\Forms\\Controls\\TextInput' => $vendorDir . '/nette/forms/src/Forms/Controls/TextInput.php',
|
||||
'Nette\\Forms\\Controls\\UploadControl' => $vendorDir . '/nette/forms/src/Forms/Controls/UploadControl.php',
|
||||
'Nette\\Forms\\Form' => $vendorDir . '/nette/forms/src/Forms/Form.php',
|
||||
'Nette\\Forms\\FormRenderer' => $vendorDir . '/nette/forms/src/Forms/FormRenderer.php',
|
||||
'Nette\\Forms\\Helpers' => $vendorDir . '/nette/forms/src/Forms/Helpers.php',
|
||||
'Nette\\Forms\\IControl' => $vendorDir . '/nette/forms/src/compatibility.php',
|
||||
'Nette\\Forms\\IFormRenderer' => $vendorDir . '/nette/forms/src/compatibility.php',
|
||||
'Nette\\Forms\\ISubmitterControl' => $vendorDir . '/nette/forms/src/compatibility.php',
|
||||
'Nette\\Forms\\Rendering\\DataClassGenerator' => $vendorDir . '/nette/forms/src/Forms/Rendering/DataClassGenerator.php',
|
||||
'Nette\\Forms\\Rendering\\DefaultFormRenderer' => $vendorDir . '/nette/forms/src/Forms/Rendering/DefaultFormRenderer.php',
|
||||
'Nette\\Forms\\Rendering\\LatteRenderer' => $vendorDir . '/nette/forms/src/Forms/Rendering/LatteRenderer.php',
|
||||
'Nette\\Forms\\Rule' => $vendorDir . '/nette/forms/src/Forms/Rule.php',
|
||||
'Nette\\Forms\\Rules' => $vendorDir . '/nette/forms/src/Forms/Rules.php',
|
||||
'Nette\\Forms\\SubmitterControl' => $vendorDir . '/nette/forms/src/Forms/SubmitterControl.php',
|
||||
'Nette\\Forms\\Validator' => $vendorDir . '/nette/forms/src/Forms/Validator.php',
|
||||
'Nette\\HtmlStringable' => $vendorDir . '/nette/utils/src/HtmlStringable.php',
|
||||
'Nette\\Http\\Context' => $vendorDir . '/nette/http/src/Http/Context.php',
|
||||
'Nette\\Http\\FileUpload' => $vendorDir . '/nette/http/src/Http/FileUpload.php',
|
||||
'Nette\\Http\\Helpers' => $vendorDir . '/nette/http/src/Http/Helpers.php',
|
||||
'Nette\\Http\\IRequest' => $vendorDir . '/nette/http/src/Http/IRequest.php',
|
||||
'Nette\\Http\\IResponse' => $vendorDir . '/nette/http/src/Http/IResponse.php',
|
||||
'Nette\\Http\\Request' => $vendorDir . '/nette/http/src/Http/Request.php',
|
||||
'Nette\\Http\\RequestFactory' => $vendorDir . '/nette/http/src/Http/RequestFactory.php',
|
||||
'Nette\\Http\\Response' => $vendorDir . '/nette/http/src/Http/Response.php',
|
||||
'Nette\\Http\\Session' => $vendorDir . '/nette/http/src/Http/Session.php',
|
||||
'Nette\\Http\\SessionSection' => $vendorDir . '/nette/http/src/Http/SessionSection.php',
|
||||
'Nette\\Http\\Url' => $vendorDir . '/nette/http/src/Http/Url.php',
|
||||
'Nette\\Http\\UrlImmutable' => $vendorDir . '/nette/http/src/Http/UrlImmutable.php',
|
||||
'Nette\\Http\\UrlScript' => $vendorDir . '/nette/http/src/Http/UrlScript.php',
|
||||
'Nette\\Http\\UserStorage' => $vendorDir . '/nette/http/src/Http/UserStorage.php',
|
||||
'Nette\\IOException' => $vendorDir . '/nette/utils/src/exceptions.php',
|
||||
'Nette\\InvalidArgumentException' => $vendorDir . '/nette/utils/src/exceptions.php',
|
||||
'Nette\\InvalidStateException' => $vendorDir . '/nette/utils/src/exceptions.php',
|
||||
'Nette\\Iterators\\CachingIterator' => $vendorDir . '/nette/utils/src/Iterators/CachingIterator.php',
|
||||
'Nette\\Iterators\\Mapper' => $vendorDir . '/nette/utils/src/Iterators/Mapper.php',
|
||||
'Nette\\Loaders\\RobotLoader' => $vendorDir . '/nette/robot-loader/src/RobotLoader/RobotLoader.php',
|
||||
'Nette\\Localization\\ITranslator' => $vendorDir . '/nette/utils/src/compatibility.php',
|
||||
'Nette\\Localization\\Translator' => $vendorDir . '/nette/utils/src/Translator.php',
|
||||
'Nette\\Mail\\DkimSigner' => $vendorDir . '/nette/mail/src/Mail/DkimSigner.php',
|
||||
'Nette\\Mail\\FallbackMailer' => $vendorDir . '/nette/mail/src/Mail/FallbackMailer.php',
|
||||
'Nette\\Mail\\FallbackMailerException' => $vendorDir . '/nette/mail/src/Mail/exceptions.php',
|
||||
'Nette\\Mail\\IMailer' => $vendorDir . '/nette/mail/src/Mail/Mailer.php',
|
||||
'Nette\\Mail\\Mailer' => $vendorDir . '/nette/mail/src/Mail/Mailer.php',
|
||||
'Nette\\Mail\\Message' => $vendorDir . '/nette/mail/src/Mail/Message.php',
|
||||
'Nette\\Mail\\MimePart' => $vendorDir . '/nette/mail/src/Mail/MimePart.php',
|
||||
'Nette\\Mail\\SendException' => $vendorDir . '/nette/mail/src/Mail/exceptions.php',
|
||||
'Nette\\Mail\\SendmailMailer' => $vendorDir . '/nette/mail/src/Mail/SendmailMailer.php',
|
||||
'Nette\\Mail\\SignException' => $vendorDir . '/nette/mail/src/Mail/exceptions.php',
|
||||
'Nette\\Mail\\Signer' => $vendorDir . '/nette/mail/src/Mail/Signer.php',
|
||||
'Nette\\Mail\\SmtpException' => $vendorDir . '/nette/mail/src/Mail/exceptions.php',
|
||||
'Nette\\Mail\\SmtpMailer' => $vendorDir . '/nette/mail/src/Mail/SmtpMailer.php',
|
||||
'Nette\\MemberAccessException' => $vendorDir . '/nette/utils/src/exceptions.php',
|
||||
'Nette\\Neon\\Decoder' => $vendorDir . '/nette/neon/src/Neon/Decoder.php',
|
||||
'Nette\\Neon\\Encoder' => $vendorDir . '/nette/neon/src/Neon/Encoder.php',
|
||||
'Nette\\Neon\\Entity' => $vendorDir . '/nette/neon/src/Neon/Entity.php',
|
||||
'Nette\\Neon\\Exception' => $vendorDir . '/nette/neon/src/Neon/Exception.php',
|
||||
'Nette\\Neon\\Lexer' => $vendorDir . '/nette/neon/src/Neon/Lexer.php',
|
||||
'Nette\\Neon\\Neon' => $vendorDir . '/nette/neon/src/Neon/Neon.php',
|
||||
'Nette\\Neon\\Node' => $vendorDir . '/nette/neon/src/Neon/Node.php',
|
||||
'Nette\\Neon\\Node\\ArrayItemNode' => $vendorDir . '/nette/neon/src/Neon/Node/ArrayItemNode.php',
|
||||
'Nette\\Neon\\Node\\ArrayNode' => $vendorDir . '/nette/neon/src/Neon/Node/ArrayNode.php',
|
||||
'Nette\\Neon\\Node\\BlockArrayNode' => $vendorDir . '/nette/neon/src/Neon/Node/BlockArrayNode.php',
|
||||
'Nette\\Neon\\Node\\EntityChainNode' => $vendorDir . '/nette/neon/src/Neon/Node/EntityChainNode.php',
|
||||
'Nette\\Neon\\Node\\EntityNode' => $vendorDir . '/nette/neon/src/Neon/Node/EntityNode.php',
|
||||
'Nette\\Neon\\Node\\InlineArrayNode' => $vendorDir . '/nette/neon/src/Neon/Node/InlineArrayNode.php',
|
||||
'Nette\\Neon\\Node\\LiteralNode' => $vendorDir . '/nette/neon/src/Neon/Node/LiteralNode.php',
|
||||
'Nette\\Neon\\Node\\StringNode' => $vendorDir . '/nette/neon/src/Neon/Node/StringNode.php',
|
||||
'Nette\\Neon\\Parser' => $vendorDir . '/nette/neon/src/Neon/Parser.php',
|
||||
'Nette\\Neon\\Token' => $vendorDir . '/nette/neon/src/Neon/Token.php',
|
||||
'Nette\\Neon\\TokenStream' => $vendorDir . '/nette/neon/src/Neon/TokenStream.php',
|
||||
'Nette\\Neon\\Traverser' => $vendorDir . '/nette/neon/src/Neon/Traverser.php',
|
||||
'Nette\\NotImplementedException' => $vendorDir . '/nette/utils/src/exceptions.php',
|
||||
'Nette\\NotSupportedException' => $vendorDir . '/nette/utils/src/exceptions.php',
|
||||
'Nette\\OutOfRangeException' => $vendorDir . '/nette/utils/src/exceptions.php',
|
||||
'Nette\\PhpGenerator\\Attribute' => $vendorDir . '/nette/php-generator/src/PhpGenerator/Attribute.php',
|
||||
'Nette\\PhpGenerator\\ClassLike' => $vendorDir . '/nette/php-generator/src/PhpGenerator/ClassLike.php',
|
||||
'Nette\\PhpGenerator\\ClassManipulator' => $vendorDir . '/nette/php-generator/src/PhpGenerator/ClassManipulator.php',
|
||||
'Nette\\PhpGenerator\\ClassType' => $vendorDir . '/nette/php-generator/src/PhpGenerator/ClassType.php',
|
||||
'Nette\\PhpGenerator\\Closure' => $vendorDir . '/nette/php-generator/src/PhpGenerator/Closure.php',
|
||||
'Nette\\PhpGenerator\\Constant' => $vendorDir . '/nette/php-generator/src/PhpGenerator/Constant.php',
|
||||
'Nette\\PhpGenerator\\Dumper' => $vendorDir . '/nette/php-generator/src/PhpGenerator/Dumper.php',
|
||||
'Nette\\PhpGenerator\\EnumCase' => $vendorDir . '/nette/php-generator/src/PhpGenerator/EnumCase.php',
|
||||
'Nette\\PhpGenerator\\EnumType' => $vendorDir . '/nette/php-generator/src/PhpGenerator/EnumType.php',
|
||||
'Nette\\PhpGenerator\\Extractor' => $vendorDir . '/nette/php-generator/src/PhpGenerator/Extractor.php',
|
||||
'Nette\\PhpGenerator\\Factory' => $vendorDir . '/nette/php-generator/src/PhpGenerator/Factory.php',
|
||||
'Nette\\PhpGenerator\\GlobalFunction' => $vendorDir . '/nette/php-generator/src/PhpGenerator/GlobalFunction.php',
|
||||
'Nette\\PhpGenerator\\Helpers' => $vendorDir . '/nette/php-generator/src/PhpGenerator/Helpers.php',
|
||||
'Nette\\PhpGenerator\\InterfaceType' => $vendorDir . '/nette/php-generator/src/PhpGenerator/InterfaceType.php',
|
||||
'Nette\\PhpGenerator\\Literal' => $vendorDir . '/nette/php-generator/src/PhpGenerator/Literal.php',
|
||||
'Nette\\PhpGenerator\\Method' => $vendorDir . '/nette/php-generator/src/PhpGenerator/Method.php',
|
||||
'Nette\\PhpGenerator\\Parameter' => $vendorDir . '/nette/php-generator/src/PhpGenerator/Parameter.php',
|
||||
'Nette\\PhpGenerator\\PhpFile' => $vendorDir . '/nette/php-generator/src/PhpGenerator/PhpFile.php',
|
||||
'Nette\\PhpGenerator\\PhpLiteral' => $vendorDir . '/nette/php-generator/src/PhpGenerator/PhpLiteral.php',
|
||||
'Nette\\PhpGenerator\\PhpNamespace' => $vendorDir . '/nette/php-generator/src/PhpGenerator/PhpNamespace.php',
|
||||
'Nette\\PhpGenerator\\Printer' => $vendorDir . '/nette/php-generator/src/PhpGenerator/Printer.php',
|
||||
'Nette\\PhpGenerator\\PromotedParameter' => $vendorDir . '/nette/php-generator/src/PhpGenerator/PromotedParameter.php',
|
||||
'Nette\\PhpGenerator\\Property' => $vendorDir . '/nette/php-generator/src/PhpGenerator/Property.php',
|
||||
'Nette\\PhpGenerator\\PropertyAccessMode' => $vendorDir . '/nette/php-generator/src/PhpGenerator/PropertyAccessMode.php',
|
||||
'Nette\\PhpGenerator\\PropertyHook' => $vendorDir . '/nette/php-generator/src/PhpGenerator/PropertyHook.php',
|
||||
'Nette\\PhpGenerator\\PropertyHookType' => $vendorDir . '/nette/php-generator/src/PhpGenerator/PropertyHookType.php',
|
||||
'Nette\\PhpGenerator\\PsrPrinter' => $vendorDir . '/nette/php-generator/src/PhpGenerator/PsrPrinter.php',
|
||||
'Nette\\PhpGenerator\\TraitType' => $vendorDir . '/nette/php-generator/src/PhpGenerator/TraitType.php',
|
||||
'Nette\\PhpGenerator\\TraitUse' => $vendorDir . '/nette/php-generator/src/PhpGenerator/TraitUse.php',
|
||||
'Nette\\PhpGenerator\\Traits\\AttributeAware' => $vendorDir . '/nette/php-generator/src/PhpGenerator/Traits/AttributeAware.php',
|
||||
'Nette\\PhpGenerator\\Traits\\CommentAware' => $vendorDir . '/nette/php-generator/src/PhpGenerator/Traits/CommentAware.php',
|
||||
'Nette\\PhpGenerator\\Traits\\ConstantsAware' => $vendorDir . '/nette/php-generator/src/PhpGenerator/Traits/ConstantsAware.php',
|
||||
'Nette\\PhpGenerator\\Traits\\FunctionLike' => $vendorDir . '/nette/php-generator/src/PhpGenerator/Traits/FunctionLike.php',
|
||||
'Nette\\PhpGenerator\\Traits\\MethodsAware' => $vendorDir . '/nette/php-generator/src/PhpGenerator/Traits/MethodsAware.php',
|
||||
'Nette\\PhpGenerator\\Traits\\NameAware' => $vendorDir . '/nette/php-generator/src/PhpGenerator/Traits/NameAware.php',
|
||||
'Nette\\PhpGenerator\\Traits\\PropertiesAware' => $vendorDir . '/nette/php-generator/src/PhpGenerator/Traits/PropertiesAware.php',
|
||||
'Nette\\PhpGenerator\\Traits\\PropertyLike' => $vendorDir . '/nette/php-generator/src/PhpGenerator/Traits/PropertyLike.php',
|
||||
'Nette\\PhpGenerator\\Traits\\TraitsAware' => $vendorDir . '/nette/php-generator/src/PhpGenerator/Traits/TraitsAware.php',
|
||||
'Nette\\PhpGenerator\\Traits\\VisibilityAware' => $vendorDir . '/nette/php-generator/src/PhpGenerator/Traits/VisibilityAware.php',
|
||||
'Nette\\PhpGenerator\\Type' => $vendorDir . '/nette/php-generator/src/PhpGenerator/Type.php',
|
||||
'Nette\\PhpGenerator\\Visibility' => $vendorDir . '/nette/php-generator/src/PhpGenerator/Visibility.php',
|
||||
'Nette\\Routing\\Route' => $vendorDir . '/nette/routing/src/Routing/Route.php',
|
||||
'Nette\\Routing\\RouteList' => $vendorDir . '/nette/routing/src/Routing/RouteList.php',
|
||||
'Nette\\Routing\\Router' => $vendorDir . '/nette/routing/src/Routing/Router.php',
|
||||
'Nette\\Routing\\SimpleRouter' => $vendorDir . '/nette/routing/src/Routing/SimpleRouter.php',
|
||||
'Nette\\Schema\\Context' => $vendorDir . '/nette/schema/src/Schema/Context.php',
|
||||
'Nette\\Schema\\DynamicParameter' => $vendorDir . '/nette/schema/src/Schema/DynamicParameter.php',
|
||||
'Nette\\Schema\\Elements\\AnyOf' => $vendorDir . '/nette/schema/src/Schema/Elements/AnyOf.php',
|
||||
'Nette\\Schema\\Elements\\Base' => $vendorDir . '/nette/schema/src/Schema/Elements/Base.php',
|
||||
'Nette\\Schema\\Elements\\Structure' => $vendorDir . '/nette/schema/src/Schema/Elements/Structure.php',
|
||||
'Nette\\Schema\\Elements\\Type' => $vendorDir . '/nette/schema/src/Schema/Elements/Type.php',
|
||||
'Nette\\Schema\\Expect' => $vendorDir . '/nette/schema/src/Schema/Expect.php',
|
||||
'Nette\\Schema\\Helpers' => $vendorDir . '/nette/schema/src/Schema/Helpers.php',
|
||||
'Nette\\Schema\\Message' => $vendorDir . '/nette/schema/src/Schema/Message.php',
|
||||
'Nette\\Schema\\Processor' => $vendorDir . '/nette/schema/src/Schema/Processor.php',
|
||||
'Nette\\Schema\\Schema' => $vendorDir . '/nette/schema/src/Schema/Schema.php',
|
||||
'Nette\\Schema\\ValidationException' => $vendorDir . '/nette/schema/src/Schema/ValidationException.php',
|
||||
'Nette\\Security\\AuthenticationException' => $vendorDir . '/nette/security/src/Security/AuthenticationException.php',
|
||||
'Nette\\Security\\Authenticator' => $vendorDir . '/nette/security/src/Security/Authenticator.php',
|
||||
'Nette\\Security\\Authorizator' => $vendorDir . '/nette/security/src/Security/Authorizator.php',
|
||||
'Nette\\Security\\IAuthenticator' => $vendorDir . '/nette/security/src/Security/IAuthenticator.php',
|
||||
'Nette\\Security\\IAuthorizator' => $vendorDir . '/nette/security/src/compatibility.php',
|
||||
'Nette\\Security\\IIdentity' => $vendorDir . '/nette/security/src/Security/IIdentity.php',
|
||||
'Nette\\Security\\IResource' => $vendorDir . '/nette/security/src/compatibility.php',
|
||||
'Nette\\Security\\IRole' => $vendorDir . '/nette/security/src/compatibility.php',
|
||||
'Nette\\Security\\Identity' => $vendorDir . '/nette/security/src/Security/Identity.php',
|
||||
'Nette\\Security\\IdentityHandler' => $vendorDir . '/nette/security/src/Security/IdentityHandler.php',
|
||||
'Nette\\Security\\Passwords' => $vendorDir . '/nette/security/src/Security/Passwords.php',
|
||||
'Nette\\Security\\Permission' => $vendorDir . '/nette/security/src/Security/Permission.php',
|
||||
'Nette\\Security\\Resource' => $vendorDir . '/nette/security/src/Security/Resource.php',
|
||||
'Nette\\Security\\Role' => $vendorDir . '/nette/security/src/Security/Role.php',
|
||||
'Nette\\Security\\SimpleAuthenticator' => $vendorDir . '/nette/security/src/Security/SimpleAuthenticator.php',
|
||||
'Nette\\Security\\SimpleIdentity' => $vendorDir . '/nette/security/src/Security/SimpleIdentity.php',
|
||||
'Nette\\Security\\User' => $vendorDir . '/nette/security/src/Security/User.php',
|
||||
'Nette\\Security\\UserStorage' => $vendorDir . '/nette/security/src/Security/UserStorage.php',
|
||||
'Nette\\SmartObject' => $vendorDir . '/nette/utils/src/SmartObject.php',
|
||||
'Nette\\StaticClass' => $vendorDir . '/nette/utils/src/StaticClass.php',
|
||||
'Nette\\UnexpectedValueException' => $vendorDir . '/nette/utils/src/exceptions.php',
|
||||
'Nette\\Utils\\ArrayHash' => $vendorDir . '/nette/utils/src/Utils/ArrayHash.php',
|
||||
'Nette\\Utils\\ArrayList' => $vendorDir . '/nette/utils/src/Utils/ArrayList.php',
|
||||
'Nette\\Utils\\Arrays' => $vendorDir . '/nette/utils/src/Utils/Arrays.php',
|
||||
'Nette\\Utils\\AssertionException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php',
|
||||
'Nette\\Utils\\Callback' => $vendorDir . '/nette/utils/src/Utils/Callback.php',
|
||||
'Nette\\Utils\\DateTime' => $vendorDir . '/nette/utils/src/Utils/DateTime.php',
|
||||
'Nette\\Utils\\FileInfo' => $vendorDir . '/nette/utils/src/Utils/FileInfo.php',
|
||||
'Nette\\Utils\\FileSystem' => $vendorDir . '/nette/utils/src/Utils/FileSystem.php',
|
||||
'Nette\\Utils\\Finder' => $vendorDir . '/nette/utils/src/Utils/Finder.php',
|
||||
'Nette\\Utils\\Floats' => $vendorDir . '/nette/utils/src/Utils/Floats.php',
|
||||
'Nette\\Utils\\Helpers' => $vendorDir . '/nette/utils/src/Utils/Helpers.php',
|
||||
'Nette\\Utils\\Html' => $vendorDir . '/nette/utils/src/Utils/Html.php',
|
||||
'Nette\\Utils\\IHtmlString' => $vendorDir . '/nette/utils/src/compatibility.php',
|
||||
'Nette\\Utils\\Image' => $vendorDir . '/nette/utils/src/Utils/Image.php',
|
||||
'Nette\\Utils\\ImageColor' => $vendorDir . '/nette/utils/src/Utils/ImageColor.php',
|
||||
'Nette\\Utils\\ImageException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php',
|
||||
'Nette\\Utils\\ImageType' => $vendorDir . '/nette/utils/src/Utils/ImageType.php',
|
||||
'Nette\\Utils\\Iterables' => $vendorDir . '/nette/utils/src/Utils/Iterables.php',
|
||||
'Nette\\Utils\\Json' => $vendorDir . '/nette/utils/src/Utils/Json.php',
|
||||
'Nette\\Utils\\JsonException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php',
|
||||
'Nette\\Utils\\ObjectHelpers' => $vendorDir . '/nette/utils/src/Utils/ObjectHelpers.php',
|
||||
'Nette\\Utils\\Paginator' => $vendorDir . '/nette/utils/src/Utils/Paginator.php',
|
||||
'Nette\\Utils\\Random' => $vendorDir . '/nette/utils/src/Utils/Random.php',
|
||||
'Nette\\Utils\\Reflection' => $vendorDir . '/nette/utils/src/Utils/Reflection.php',
|
||||
'Nette\\Utils\\ReflectionMethod' => $vendorDir . '/nette/utils/src/Utils/ReflectionMethod.php',
|
||||
'Nette\\Utils\\RegexpException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php',
|
||||
'Nette\\Utils\\Strings' => $vendorDir . '/nette/utils/src/Utils/Strings.php',
|
||||
'Nette\\Utils\\Type' => $vendorDir . '/nette/utils/src/Utils/Type.php',
|
||||
'Nette\\Utils\\UnknownImageFileException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php',
|
||||
'Nette\\Utils\\Validators' => $vendorDir . '/nette/utils/src/Utils/Validators.php',
|
||||
'Tester\\Assert' => $vendorDir . '/nette/tester/src/Framework/Assert.php',
|
||||
'Tester\\AssertException' => $vendorDir . '/nette/tester/src/Framework/AssertException.php',
|
||||
'Tester\\CodeCoverage\\Collector' => $vendorDir . '/nette/tester/src/CodeCoverage/Collector.php',
|
||||
'Tester\\CodeCoverage\\Generators\\AbstractGenerator' => $vendorDir . '/nette/tester/src/CodeCoverage/Generators/AbstractGenerator.php',
|
||||
'Tester\\CodeCoverage\\Generators\\CloverXMLGenerator' => $vendorDir . '/nette/tester/src/CodeCoverage/Generators/CloverXMLGenerator.php',
|
||||
'Tester\\CodeCoverage\\Generators\\HtmlGenerator' => $vendorDir . '/nette/tester/src/CodeCoverage/Generators/HtmlGenerator.php',
|
||||
'Tester\\CodeCoverage\\PhpParser' => $vendorDir . '/nette/tester/src/CodeCoverage/PhpParser.php',
|
||||
'Tester\\DataProvider' => $vendorDir . '/nette/tester/src/Framework/DataProvider.php',
|
||||
'Tester\\DomQuery' => $vendorDir . '/nette/tester/src/Framework/DomQuery.php',
|
||||
'Tester\\Dumper' => $vendorDir . '/nette/tester/src/Framework/Dumper.php',
|
||||
'Tester\\Environment' => $vendorDir . '/nette/tester/src/Framework/Environment.php',
|
||||
'Tester\\Expect' => $vendorDir . '/nette/tester/src/Framework/Expect.php',
|
||||
'Tester\\FileMock' => $vendorDir . '/nette/tester/src/Framework/FileMock.php',
|
||||
'Tester\\FileMutator' => $vendorDir . '/nette/tester/src/Framework/FileMutator.php',
|
||||
'Tester\\Helpers' => $vendorDir . '/nette/tester/src/Framework/Helpers.php',
|
||||
'Tester\\Runner\\CliTester' => $vendorDir . '/nette/tester/src/Runner/CliTester.php',
|
||||
'Tester\\Runner\\CommandLine' => $vendorDir . '/nette/tester/src/Runner/CommandLine.php',
|
||||
'Tester\\Runner\\InterruptException' => $vendorDir . '/nette/tester/src/Runner/exceptions.php',
|
||||
'Tester\\Runner\\Job' => $vendorDir . '/nette/tester/src/Runner/Job.php',
|
||||
'Tester\\Runner\\OutputHandler' => $vendorDir . '/nette/tester/src/Runner/OutputHandler.php',
|
||||
'Tester\\Runner\\Output\\ConsolePrinter' => $vendorDir . '/nette/tester/src/Runner/Output/ConsolePrinter.php',
|
||||
'Tester\\Runner\\Output\\JUnitPrinter' => $vendorDir . '/nette/tester/src/Runner/Output/JUnitPrinter.php',
|
||||
'Tester\\Runner\\Output\\Logger' => $vendorDir . '/nette/tester/src/Runner/Output/Logger.php',
|
||||
'Tester\\Runner\\Output\\TapPrinter' => $vendorDir . '/nette/tester/src/Runner/Output/TapPrinter.php',
|
||||
'Tester\\Runner\\PhpInterpreter' => $vendorDir . '/nette/tester/src/Runner/PhpInterpreter.php',
|
||||
'Tester\\Runner\\Runner' => $vendorDir . '/nette/tester/src/Runner/Runner.php',
|
||||
'Tester\\Runner\\Test' => $vendorDir . '/nette/tester/src/Runner/Test.php',
|
||||
'Tester\\Runner\\TestHandler' => $vendorDir . '/nette/tester/src/Runner/TestHandler.php',
|
||||
'Tester\\TestCase' => $vendorDir . '/nette/tester/src/Framework/TestCase.php',
|
||||
'Tester\\TestCaseException' => $vendorDir . '/nette/tester/src/Framework/TestCase.php',
|
||||
'Tester\\TestCaseSkippedException' => $vendorDir . '/nette/tester/src/Framework/TestCase.php',
|
||||
'Tracy\\Bar' => $vendorDir . '/tracy/tracy/src/Tracy/Bar/Bar.php',
|
||||
'Tracy\\BlueScreen' => $vendorDir . '/tracy/tracy/src/Tracy/BlueScreen/BlueScreen.php',
|
||||
'Tracy\\Bridges\\Nette\\Bridge' => $vendorDir . '/tracy/tracy/src/Bridges/Nette/Bridge.php',
|
||||
'Tracy\\Bridges\\Nette\\MailSender' => $vendorDir . '/tracy/tracy/src/Bridges/Nette/MailSender.php',
|
||||
'Tracy\\Bridges\\Nette\\TracyExtension' => $vendorDir . '/tracy/tracy/src/Bridges/Nette/TracyExtension.php',
|
||||
'Tracy\\Bridges\\Psr\\PsrToTracyLoggerAdapter' => $vendorDir . '/tracy/tracy/src/Bridges/Psr/PsrToTracyLoggerAdapter.php',
|
||||
'Tracy\\Bridges\\Psr\\TracyToPsrLoggerAdapter' => $vendorDir . '/tracy/tracy/src/Bridges/Psr/TracyToPsrLoggerAdapter.php',
|
||||
'Tracy\\CodeHighlighter' => $vendorDir . '/tracy/tracy/src/Tracy/BlueScreen/CodeHighlighter.php',
|
||||
'Tracy\\Debugger' => $vendorDir . '/tracy/tracy/src/Tracy/Debugger/Debugger.php',
|
||||
'Tracy\\DefaultBarPanel' => $vendorDir . '/tracy/tracy/src/Tracy/Bar/DefaultBarPanel.php',
|
||||
'Tracy\\DeferredContent' => $vendorDir . '/tracy/tracy/src/Tracy/Debugger/DeferredContent.php',
|
||||
'Tracy\\DevelopmentStrategy' => $vendorDir . '/tracy/tracy/src/Tracy/Debugger/DevelopmentStrategy.php',
|
||||
'Tracy\\Dumper' => $vendorDir . '/tracy/tracy/src/Tracy/Dumper/Dumper.php',
|
||||
'Tracy\\Dumper\\Describer' => $vendorDir . '/tracy/tracy/src/Tracy/Dumper/Describer.php',
|
||||
'Tracy\\Dumper\\Exposer' => $vendorDir . '/tracy/tracy/src/Tracy/Dumper/Exposer.php',
|
||||
'Tracy\\Dumper\\Renderer' => $vendorDir . '/tracy/tracy/src/Tracy/Dumper/Renderer.php',
|
||||
'Tracy\\Dumper\\Value' => $vendorDir . '/tracy/tracy/src/Tracy/Dumper/Value.php',
|
||||
'Tracy\\FileSession' => $vendorDir . '/tracy/tracy/src/Tracy/Session/FileSession.php',
|
||||
'Tracy\\Helpers' => $vendorDir . '/tracy/tracy/src/Tracy/Helpers.php',
|
||||
'Tracy\\IBarPanel' => $vendorDir . '/tracy/tracy/src/Tracy/Bar/IBarPanel.php',
|
||||
'Tracy\\ILogger' => $vendorDir . '/tracy/tracy/src/Tracy/Logger/ILogger.php',
|
||||
'Tracy\\Logger' => $vendorDir . '/tracy/tracy/src/Tracy/Logger/Logger.php',
|
||||
'Tracy\\NativeSession' => $vendorDir . '/tracy/tracy/src/Tracy/Session/NativeSession.php',
|
||||
'Tracy\\OutputDebugger' => $vendorDir . '/tracy/tracy/src/Tracy/OutputDebugger/OutputDebugger.php',
|
||||
'Tracy\\ProductionStrategy' => $vendorDir . '/tracy/tracy/src/Tracy/Debugger/ProductionStrategy.php',
|
||||
'Tracy\\SessionStorage' => $vendorDir . '/tracy/tracy/src/Tracy/Session/SessionStorage.php',
|
||||
);
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
<?php
|
||||
|
||||
// autoload_files.php @generated by Composer
|
||||
|
||||
$vendorDir = dirname(__DIR__);
|
||||
$baseDir = dirname($vendorDir);
|
||||
|
||||
return array(
|
||||
'd507e002f7fce7f0c6dbf1f22edcb902' => $vendorDir . '/tracy/tracy/src/Tracy/functions.php',
|
||||
);
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
<?php
|
||||
|
||||
// autoload_namespaces.php @generated by Composer
|
||||
|
||||
$vendorDir = dirname(__DIR__);
|
||||
$baseDir = dirname($vendorDir);
|
||||
|
||||
return array(
|
||||
);
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
<?php
|
||||
|
||||
// autoload_psr4.php @generated by Composer
|
||||
|
||||
$vendorDir = dirname(__DIR__);
|
||||
$baseDir = dirname($vendorDir);
|
||||
|
||||
return array(
|
||||
'Symfony\\Thanks\\' => array($vendorDir . '/symfony/thanks/src'),
|
||||
'App\\' => array($baseDir . '/app'),
|
||||
);
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
<?php
|
||||
|
||||
// autoload_real.php @generated by Composer
|
||||
|
||||
class ComposerAutoloaderInit9c49a418f02ffb235919088891200a26
|
||||
{
|
||||
private static $loader;
|
||||
|
||||
public static function loadClassLoader($class)
|
||||
{
|
||||
if ('Composer\Autoload\ClassLoader' === $class) {
|
||||
require __DIR__ . '/ClassLoader.php';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \Composer\Autoload\ClassLoader
|
||||
*/
|
||||
public static function getLoader()
|
||||
{
|
||||
if (null !== self::$loader) {
|
||||
return self::$loader;
|
||||
}
|
||||
|
||||
require __DIR__ . '/platform_check.php';
|
||||
|
||||
spl_autoload_register(array('ComposerAutoloaderInit9c49a418f02ffb235919088891200a26', 'loadClassLoader'), true, true);
|
||||
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
|
||||
spl_autoload_unregister(array('ComposerAutoloaderInit9c49a418f02ffb235919088891200a26', 'loadClassLoader'));
|
||||
|
||||
require __DIR__ . '/autoload_static.php';
|
||||
call_user_func(\Composer\Autoload\ComposerStaticInit9c49a418f02ffb235919088891200a26::getInitializer($loader));
|
||||
|
||||
$loader->register(true);
|
||||
|
||||
$filesToLoad = \Composer\Autoload\ComposerStaticInit9c49a418f02ffb235919088891200a26::$files;
|
||||
$requireFile = \Closure::bind(static function ($fileIdentifier, $file) {
|
||||
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
||||
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
|
||||
|
||||
require $file;
|
||||
}
|
||||
}, null, null);
|
||||
foreach ($filesToLoad as $fileIdentifier => $file) {
|
||||
$requireFile($fileIdentifier, $file);
|
||||
}
|
||||
|
||||
return $loader;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,711 @@
|
|||
<?php
|
||||
|
||||
// autoload_static.php @generated by Composer
|
||||
|
||||
namespace Composer\Autoload;
|
||||
|
||||
class ComposerStaticInit9c49a418f02ffb235919088891200a26
|
||||
{
|
||||
public static $files = array (
|
||||
'd507e002f7fce7f0c6dbf1f22edcb902' => __DIR__ . '/..' . '/tracy/tracy/src/Tracy/functions.php',
|
||||
);
|
||||
|
||||
public static $prefixLengthsPsr4 = array (
|
||||
'S' =>
|
||||
array (
|
||||
'Symfony\\Thanks\\' => 15,
|
||||
),
|
||||
'A' =>
|
||||
array (
|
||||
'App\\' => 4,
|
||||
),
|
||||
);
|
||||
|
||||
public static $prefixDirsPsr4 = array (
|
||||
'Symfony\\Thanks\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/symfony/thanks/src',
|
||||
),
|
||||
'App\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/../..' . '/app',
|
||||
),
|
||||
);
|
||||
|
||||
public static $classMap = array (
|
||||
'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php',
|
||||
'Latte\\Attributes\\TemplateFilter' => __DIR__ . '/..' . '/latte/latte/src/Latte/attributes.php',
|
||||
'Latte\\Attributes\\TemplateFunction' => __DIR__ . '/..' . '/latte/latte/src/Latte/attributes.php',
|
||||
'Latte\\Bridges\\Tracy\\BlueScreenPanel' => __DIR__ . '/..' . '/latte/latte/src/Bridges/Tracy/BlueScreenPanel.php',
|
||||
'Latte\\Bridges\\Tracy\\LattePanel' => __DIR__ . '/..' . '/latte/latte/src/Bridges/Tracy/LattePanel.php',
|
||||
'Latte\\Bridges\\Tracy\\TracyExtension' => __DIR__ . '/..' . '/latte/latte/src/Bridges/Tracy/TracyExtension.php',
|
||||
'Latte\\CompileException' => __DIR__ . '/..' . '/latte/latte/src/Latte/exceptions.php',
|
||||
'Latte\\Compiler\\Block' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Block.php',
|
||||
'Latte\\Compiler\\Escaper' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Escaper.php',
|
||||
'Latte\\Compiler\\ExpressionBuilder' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/ExpressionBuilder.php',
|
||||
'Latte\\Compiler\\Node' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Node.php',
|
||||
'Latte\\Compiler\\NodeHelpers' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/NodeHelpers.php',
|
||||
'Latte\\Compiler\\NodeTraverser' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/NodeTraverser.php',
|
||||
'Latte\\Compiler\\Nodes\\AreaNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/AreaNode.php',
|
||||
'Latte\\Compiler\\Nodes\\AuxiliaryNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/AuxiliaryNode.php',
|
||||
'Latte\\Compiler\\Nodes\\FragmentNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/FragmentNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Html\\AttributeNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Html/AttributeNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Html\\BogusTagNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Html/BogusTagNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Html\\CommentNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Html/CommentNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Html\\ElementNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Html/ElementNode.php',
|
||||
'Latte\\Compiler\\Nodes\\NopNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/NopNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\ArgumentNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/ArgumentNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\ArrayItemNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/ArrayItemNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\ClosureUseNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/ClosureUseNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\ComplexTypeNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/ComplexTypeNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\ExpressionNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/ExpressionNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\ArrayAccessNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/ArrayAccessNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\ArrayItemNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/ArrayItemNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\ArrayNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/ArrayNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\AssignNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/AssignNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\AssignOpNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/AssignOpNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\AuxiliaryNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/AuxiliaryNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\BinaryOpNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/BinaryOpNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\CastNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/CastNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\ClassConstantFetchNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/ClassConstantFetchNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\CloneNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/CloneNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\ClosureNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/ClosureNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\ConstantFetchNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/ConstantFetchNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\EmptyNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/EmptyNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\ErrorSuppressNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/ErrorSuppressNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\FilterCallNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/FilterCallNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\FunctionCallNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/FunctionCallNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\FunctionCallableNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/FunctionCallableNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\InNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/InNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\InstanceofNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/InstanceofNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\IssetNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/IssetNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\MatchNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/MatchNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\MethodCallNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/MethodCallNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\MethodCallableNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/MethodCallableNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\NewNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/NewNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\NotNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/NotNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\PostOpNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/PostOpNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\PreOpNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/PreOpNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\PropertyFetchNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/PropertyFetchNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\StaticCallNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/StaticMethodCallNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\StaticCallableNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/StaticMethodCallableNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\StaticMethodCallNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/StaticMethodCallNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\StaticMethodCallableNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/StaticMethodCallableNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\StaticPropertyFetchNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/StaticPropertyFetchNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\TemporaryNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/TemporaryNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\TernaryNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/TernaryNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\UnaryOpNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/UnaryOpNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Expression\\VariableNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/VariableNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\FilterNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/FilterNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\IdentifierNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/IdentifierNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\InterpolatedStringPartNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/InterpolatedStringPartNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\IntersectionTypeNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/IntersectionTypeNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\ListItemNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/ListItemNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\ListNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/ListNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\MatchArmNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/MatchArmNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\ModifierNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/ModifierNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\NameNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/NameNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\NullableTypeNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/NullableTypeNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\ParameterNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/ParameterNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\ScalarNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/ScalarNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Scalar\\BooleanNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/Scalar/BooleanNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Scalar\\FloatNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/Scalar/FloatNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Scalar\\IntegerNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/Scalar/IntegerNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Scalar\\InterpolatedStringNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/Scalar/InterpolatedStringNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Scalar\\NullNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/Scalar/NullNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\Scalar\\StringNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/Scalar/StringNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\SuperiorTypeNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/SuperiorTypeNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\UnionTypeNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/UnionTypeNode.php',
|
||||
'Latte\\Compiler\\Nodes\\Php\\VarLikeIdentifierNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/Php/VarLikeIdentifierNode.php',
|
||||
'Latte\\Compiler\\Nodes\\StatementNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/StatementNode.php',
|
||||
'Latte\\Compiler\\Nodes\\TemplateNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/TemplateNode.php',
|
||||
'Latte\\Compiler\\Nodes\\TextNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Nodes/TextNode.php',
|
||||
'Latte\\Compiler\\PhpHelpers' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/PhpHelpers.php',
|
||||
'Latte\\Compiler\\Position' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Position.php',
|
||||
'Latte\\Compiler\\PrintContext' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/PrintContext.php',
|
||||
'Latte\\Compiler\\Tag' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Tag.php',
|
||||
'Latte\\Compiler\\TagLexer' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/TagLexer.php',
|
||||
'Latte\\Compiler\\TagParser' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/TagParser.php',
|
||||
'Latte\\Compiler\\TagParserData' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/TagParserData.php',
|
||||
'Latte\\Compiler\\TemplateGenerator' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/TemplateGenerator.php',
|
||||
'Latte\\Compiler\\TemplateLexer' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/TemplateLexer.php',
|
||||
'Latte\\Compiler\\TemplateParser' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/TemplateParser.php',
|
||||
'Latte\\Compiler\\TemplateParserHtml' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/TemplateParserHtml.php',
|
||||
'Latte\\Compiler\\Token' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/Token.php',
|
||||
'Latte\\Compiler\\TokenStream' => __DIR__ . '/..' . '/latte/latte/src/Latte/Compiler/TokenStream.php',
|
||||
'Latte\\ContentType' => __DIR__ . '/..' . '/latte/latte/src/Latte/ContentType.php',
|
||||
'Latte\\Engine' => __DIR__ . '/..' . '/latte/latte/src/Latte/Engine.php',
|
||||
'Latte\\Essential\\AuxiliaryIterator' => __DIR__ . '/..' . '/latte/latte/src/Latte/Essential/AuxiliaryIterator.php',
|
||||
'Latte\\Essential\\Blueprint' => __DIR__ . '/..' . '/latte/latte/src/Latte/Essential/Blueprint.php',
|
||||
'Latte\\Essential\\CachingIterator' => __DIR__ . '/..' . '/latte/latte/src/Latte/Essential/CachingIterator.php',
|
||||
'Latte\\Essential\\CoreExtension' => __DIR__ . '/..' . '/latte/latte/src/Latte/Essential/CoreExtension.php',
|
||||
'Latte\\Essential\\Filters' => __DIR__ . '/..' . '/latte/latte/src/Latte/Essential/Filters.php',
|
||||
'Latte\\Essential\\Nodes\\BlockNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Essential/Nodes/BlockNode.php',
|
||||
'Latte\\Essential\\Nodes\\CaptureNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Essential/Nodes/CaptureNode.php',
|
||||
'Latte\\Essential\\Nodes\\ContentTypeNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Essential/Nodes/ContentTypeNode.php',
|
||||
'Latte\\Essential\\Nodes\\DebugbreakNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Essential/Nodes/DebugbreakNode.php',
|
||||
'Latte\\Essential\\Nodes\\DefineNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Essential/Nodes/DefineNode.php',
|
||||
'Latte\\Essential\\Nodes\\DoNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Essential/Nodes/DoNode.php',
|
||||
'Latte\\Essential\\Nodes\\DumpNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Essential/Nodes/DumpNode.php',
|
||||
'Latte\\Essential\\Nodes\\EmbedNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Essential/Nodes/EmbedNode.php',
|
||||
'Latte\\Essential\\Nodes\\ExtendsNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Essential/Nodes/ExtendsNode.php',
|
||||
'Latte\\Essential\\Nodes\\FirstLastSepNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Essential/Nodes/FirstLastSepNode.php',
|
||||
'Latte\\Essential\\Nodes\\ForNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Essential/Nodes/ForNode.php',
|
||||
'Latte\\Essential\\Nodes\\ForeachNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Essential/Nodes/ForeachNode.php',
|
||||
'Latte\\Essential\\Nodes\\IfChangedNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Essential/Nodes/IfChangedNode.php',
|
||||
'Latte\\Essential\\Nodes\\IfContentNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Essential/Nodes/IfContentNode.php',
|
||||
'Latte\\Essential\\Nodes\\IfNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Essential/Nodes/IfNode.php',
|
||||
'Latte\\Essential\\Nodes\\ImportNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Essential/Nodes/ImportNode.php',
|
||||
'Latte\\Essential\\Nodes\\IncludeBlockNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Essential/Nodes/IncludeBlockNode.php',
|
||||
'Latte\\Essential\\Nodes\\IncludeFileNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Essential/Nodes/IncludeFileNode.php',
|
||||
'Latte\\Essential\\Nodes\\IterateWhileNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Essential/Nodes/IterateWhileNode.php',
|
||||
'Latte\\Essential\\Nodes\\JumpNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Essential/Nodes/JumpNode.php',
|
||||
'Latte\\Essential\\Nodes\\NAttrNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Essential/Nodes/NAttrNode.php',
|
||||
'Latte\\Essential\\Nodes\\NClassNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Essential/Nodes/NClassNode.php',
|
||||
'Latte\\Essential\\Nodes\\NElseNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Essential/Nodes/NElseNode.php',
|
||||
'Latte\\Essential\\Nodes\\NTagNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Essential/Nodes/NTagNode.php',
|
||||
'Latte\\Essential\\Nodes\\ParametersNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Essential/Nodes/ParametersNode.php',
|
||||
'Latte\\Essential\\Nodes\\PrintNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Essential/Nodes/PrintNode.php',
|
||||
'Latte\\Essential\\Nodes\\RawPhpNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Essential/Nodes/RawPhpNode.php',
|
||||
'Latte\\Essential\\Nodes\\RollbackNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Essential/Nodes/RollbackNode.php',
|
||||
'Latte\\Essential\\Nodes\\SpacelessNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Essential/Nodes/SpacelessNode.php',
|
||||
'Latte\\Essential\\Nodes\\SwitchNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Essential/Nodes/SwitchNode.php',
|
||||
'Latte\\Essential\\Nodes\\TemplatePrintNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Essential/Nodes/TemplatePrintNode.php',
|
||||
'Latte\\Essential\\Nodes\\TemplateTypeNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Essential/Nodes/TemplateTypeNode.php',
|
||||
'Latte\\Essential\\Nodes\\TraceNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Essential/Nodes/TraceNode.php',
|
||||
'Latte\\Essential\\Nodes\\TranslateNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Essential/Nodes/TranslateNode.php',
|
||||
'Latte\\Essential\\Nodes\\TryNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Essential/Nodes/TryNode.php',
|
||||
'Latte\\Essential\\Nodes\\VarNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Essential/Nodes/VarNode.php',
|
||||
'Latte\\Essential\\Nodes\\VarPrintNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Essential/Nodes/VarPrintNode.php',
|
||||
'Latte\\Essential\\Nodes\\VarTypeNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Essential/Nodes/VarTypeNode.php',
|
||||
'Latte\\Essential\\Nodes\\WhileNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Essential/Nodes/WhileNode.php',
|
||||
'Latte\\Essential\\Passes' => __DIR__ . '/..' . '/latte/latte/src/Latte/Essential/Passes.php',
|
||||
'Latte\\Essential\\RawPhpExtension' => __DIR__ . '/..' . '/latte/latte/src/Latte/Essential/RawPhpExtension.php',
|
||||
'Latte\\Essential\\RollbackException' => __DIR__ . '/..' . '/latte/latte/src/Latte/Essential/RollbackException.php',
|
||||
'Latte\\Essential\\Tracer' => __DIR__ . '/..' . '/latte/latte/src/Latte/Essential/Tracer.php',
|
||||
'Latte\\Essential\\TranslatorExtension' => __DIR__ . '/..' . '/latte/latte/src/Latte/Essential/TranslatorExtension.php',
|
||||
'Latte\\Exception' => __DIR__ . '/..' . '/latte/latte/src/Latte/exceptions.php',
|
||||
'Latte\\Extension' => __DIR__ . '/..' . '/latte/latte/src/Latte/Extension.php',
|
||||
'Latte\\Helpers' => __DIR__ . '/..' . '/latte/latte/src/Latte/Helpers.php',
|
||||
'Latte\\Loader' => __DIR__ . '/..' . '/latte/latte/src/Latte/Loader.php',
|
||||
'Latte\\Loaders\\FileLoader' => __DIR__ . '/..' . '/latte/latte/src/Latte/Loaders/FileLoader.php',
|
||||
'Latte\\Loaders\\StringLoader' => __DIR__ . '/..' . '/latte/latte/src/Latte/Loaders/StringLoader.php',
|
||||
'Latte\\Policy' => __DIR__ . '/..' . '/latte/latte/src/Latte/Policy.php',
|
||||
'Latte\\PositionAwareException' => __DIR__ . '/..' . '/latte/latte/src/Latte/PositionAwareException.php',
|
||||
'Latte\\RuntimeException' => __DIR__ . '/..' . '/latte/latte/src/Latte/exceptions.php',
|
||||
'Latte\\Runtime\\Block' => __DIR__ . '/..' . '/latte/latte/src/Latte/Runtime/Block.php',
|
||||
'Latte\\Runtime\\FilterExecutor' => __DIR__ . '/..' . '/latte/latte/src/Latte/Runtime/FilterExecutor.php',
|
||||
'Latte\\Runtime\\FilterInfo' => __DIR__ . '/..' . '/latte/latte/src/Latte/Runtime/FilterInfo.php',
|
||||
'Latte\\Runtime\\Filters' => __DIR__ . '/..' . '/latte/latte/src/Latte/Runtime/Filters.php',
|
||||
'Latte\\Runtime\\FunctionExecutor' => __DIR__ . '/..' . '/latte/latte/src/Latte/Runtime/FunctionExecutor.php',
|
||||
'Latte\\Runtime\\Html' => __DIR__ . '/..' . '/latte/latte/src/Latte/Runtime/Html.php',
|
||||
'Latte\\Runtime\\HtmlStringable' => __DIR__ . '/..' . '/latte/latte/src/Latte/Runtime/HtmlStringable.php',
|
||||
'Latte\\Runtime\\Template' => __DIR__ . '/..' . '/latte/latte/src/Latte/Runtime/Template.php',
|
||||
'Latte\\Sandbox\\Nodes\\FunctionCallNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Sandbox/Nodes/FunctionCallNode.php',
|
||||
'Latte\\Sandbox\\Nodes\\FunctionCallableNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Sandbox/Nodes/FunctionCallableNode.php',
|
||||
'Latte\\Sandbox\\Nodes\\MethodCallNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Sandbox/Nodes/MethodCallNode.php',
|
||||
'Latte\\Sandbox\\Nodes\\MethodCallableNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Sandbox/Nodes/MethodCallableNode.php',
|
||||
'Latte\\Sandbox\\Nodes\\PropertyFetchNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Sandbox/Nodes/PropertyFetchNode.php',
|
||||
'Latte\\Sandbox\\Nodes\\SandboxNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Sandbox/Nodes/SandboxNode.php',
|
||||
'Latte\\Sandbox\\Nodes\\StaticMethodCallNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Sandbox/Nodes/StaticMethodCallNode.php',
|
||||
'Latte\\Sandbox\\Nodes\\StaticMethodCallableNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Sandbox/Nodes/StaticMethodCallableNode.php',
|
||||
'Latte\\Sandbox\\Nodes\\StaticPropertyFetchNode' => __DIR__ . '/..' . '/latte/latte/src/Latte/Sandbox/Nodes/StaticPropertyFetchNode.php',
|
||||
'Latte\\Sandbox\\RuntimeChecker' => __DIR__ . '/..' . '/latte/latte/src/Latte/Sandbox/RuntimeChecker.php',
|
||||
'Latte\\Sandbox\\SandboxExtension' => __DIR__ . '/..' . '/latte/latte/src/Latte/Sandbox/SandboxExtension.php',
|
||||
'Latte\\Sandbox\\SecurityPolicy' => __DIR__ . '/..' . '/latte/latte/src/Latte/Sandbox/SecurityPolicy.php',
|
||||
'Latte\\SecurityViolationException' => __DIR__ . '/..' . '/latte/latte/src/Latte/exceptions.php',
|
||||
'Latte\\Tools\\Linter' => __DIR__ . '/..' . '/latte/latte/src/Tools/Linter.php',
|
||||
'NetteModule\\ErrorPresenter' => __DIR__ . '/..' . '/nette/application/src/Application/ErrorPresenter.php',
|
||||
'NetteModule\\MicroPresenter' => __DIR__ . '/..' . '/nette/application/src/Application/MicroPresenter.php',
|
||||
'Nette\\Application\\AbortException' => __DIR__ . '/..' . '/nette/application/src/Application/exceptions.php',
|
||||
'Nette\\Application\\Application' => __DIR__ . '/..' . '/nette/application/src/Application/Application.php',
|
||||
'Nette\\Application\\ApplicationException' => __DIR__ . '/..' . '/nette/application/src/Application/exceptions.php',
|
||||
'Nette\\Application\\Attributes\\CrossOrigin' => __DIR__ . '/..' . '/nette/application/src/Application/Attributes/CrossOrigin.php',
|
||||
'Nette\\Application\\Attributes\\Deprecated' => __DIR__ . '/..' . '/nette/application/src/Application/Attributes/Deprecated.php',
|
||||
'Nette\\Application\\Attributes\\Parameter' => __DIR__ . '/..' . '/nette/application/src/Application/Attributes/Parameter.php',
|
||||
'Nette\\Application\\Attributes\\Persistent' => __DIR__ . '/..' . '/nette/application/src/Application/Attributes/Persistent.php',
|
||||
'Nette\\Application\\Attributes\\Requires' => __DIR__ . '/..' . '/nette/application/src/Application/Attributes/Requires.php',
|
||||
'Nette\\Application\\BadRequestException' => __DIR__ . '/..' . '/nette/application/src/Application/exceptions.php',
|
||||
'Nette\\Application\\ForbiddenRequestException' => __DIR__ . '/..' . '/nette/application/src/Application/exceptions.php',
|
||||
'Nette\\Application\\Helpers' => __DIR__ . '/..' . '/nette/application/src/Application/Helpers.php',
|
||||
'Nette\\Application\\IPresenter' => __DIR__ . '/..' . '/nette/application/src/Application/IPresenter.php',
|
||||
'Nette\\Application\\IPresenterFactory' => __DIR__ . '/..' . '/nette/application/src/Application/IPresenterFactory.php',
|
||||
'Nette\\Application\\IResponse' => __DIR__ . '/..' . '/nette/application/src/compatibility-intf.php',
|
||||
'Nette\\Application\\IRouter' => __DIR__ . '/..' . '/nette/application/src/compatibility-intf.php',
|
||||
'Nette\\Application\\InvalidPresenterException' => __DIR__ . '/..' . '/nette/application/src/Application/exceptions.php',
|
||||
'Nette\\Application\\LinkGenerator' => __DIR__ . '/..' . '/nette/application/src/Application/LinkGenerator.php',
|
||||
'Nette\\Application\\PresenterFactory' => __DIR__ . '/..' . '/nette/application/src/Application/PresenterFactory.php',
|
||||
'Nette\\Application\\Request' => __DIR__ . '/..' . '/nette/application/src/Application/Request.php',
|
||||
'Nette\\Application\\Response' => __DIR__ . '/..' . '/nette/application/src/Application/Response.php',
|
||||
'Nette\\Application\\Responses\\CallbackResponse' => __DIR__ . '/..' . '/nette/application/src/Application/Responses/CallbackResponse.php',
|
||||
'Nette\\Application\\Responses\\FileResponse' => __DIR__ . '/..' . '/nette/application/src/Application/Responses/FileResponse.php',
|
||||
'Nette\\Application\\Responses\\ForwardResponse' => __DIR__ . '/..' . '/nette/application/src/Application/Responses/ForwardResponse.php',
|
||||
'Nette\\Application\\Responses\\JsonResponse' => __DIR__ . '/..' . '/nette/application/src/Application/Responses/JsonResponse.php',
|
||||
'Nette\\Application\\Responses\\RedirectResponse' => __DIR__ . '/..' . '/nette/application/src/Application/Responses/RedirectResponse.php',
|
||||
'Nette\\Application\\Responses\\TextResponse' => __DIR__ . '/..' . '/nette/application/src/Application/Responses/TextResponse.php',
|
||||
'Nette\\Application\\Responses\\VoidResponse' => __DIR__ . '/..' . '/nette/application/src/Application/Responses/VoidResponse.php',
|
||||
'Nette\\Application\\Routers\\CliRouter' => __DIR__ . '/..' . '/nette/application/src/Application/Routers/CliRouter.php',
|
||||
'Nette\\Application\\Routers\\Route' => __DIR__ . '/..' . '/nette/application/src/Application/Routers/Route.php',
|
||||
'Nette\\Application\\Routers\\RouteList' => __DIR__ . '/..' . '/nette/application/src/Application/Routers/RouteList.php',
|
||||
'Nette\\Application\\Routers\\SimpleRouter' => __DIR__ . '/..' . '/nette/application/src/Application/Routers/SimpleRouter.php',
|
||||
'Nette\\Application\\SwitchException' => __DIR__ . '/..' . '/nette/application/src/Application/exceptions.php',
|
||||
'Nette\\Application\\UI\\AccessPolicy' => __DIR__ . '/..' . '/nette/application/src/Application/UI/AccessPolicy.php',
|
||||
'Nette\\Application\\UI\\BadSignalException' => __DIR__ . '/..' . '/nette/application/src/Application/UI/BadSignalException.php',
|
||||
'Nette\\Application\\UI\\Component' => __DIR__ . '/..' . '/nette/application/src/Application/UI/Component.php',
|
||||
'Nette\\Application\\UI\\ComponentReflection' => __DIR__ . '/..' . '/nette/application/src/Application/UI/ComponentReflection.php',
|
||||
'Nette\\Application\\UI\\Control' => __DIR__ . '/..' . '/nette/application/src/Application/UI/Control.php',
|
||||
'Nette\\Application\\UI\\Form' => __DIR__ . '/..' . '/nette/application/src/Application/UI/Form.php',
|
||||
'Nette\\Application\\UI\\IRenderable' => __DIR__ . '/..' . '/nette/application/src/compatibility-intf.php',
|
||||
'Nette\\Application\\UI\\ISignalReceiver' => __DIR__ . '/..' . '/nette/application/src/compatibility-intf.php',
|
||||
'Nette\\Application\\UI\\IStatePersistent' => __DIR__ . '/..' . '/nette/application/src/compatibility-intf.php',
|
||||
'Nette\\Application\\UI\\ITemplate' => __DIR__ . '/..' . '/nette/application/src/compatibility-intf.php',
|
||||
'Nette\\Application\\UI\\ITemplateFactory' => __DIR__ . '/..' . '/nette/application/src/compatibility-intf.php',
|
||||
'Nette\\Application\\UI\\InvalidLinkException' => __DIR__ . '/..' . '/nette/application/src/Application/UI/InvalidLinkException.php',
|
||||
'Nette\\Application\\UI\\Link' => __DIR__ . '/..' . '/nette/application/src/Application/UI/Link.php',
|
||||
'Nette\\Application\\UI\\MethodReflection' => __DIR__ . '/..' . '/nette/application/src/Application/UI/MethodReflection.php',
|
||||
'Nette\\Application\\UI\\Multiplier' => __DIR__ . '/..' . '/nette/application/src/Application/UI/Multiplier.php',
|
||||
'Nette\\Application\\UI\\ParameterConverter' => __DIR__ . '/..' . '/nette/application/src/Application/UI/ParameterConverter.php',
|
||||
'Nette\\Application\\UI\\Presenter' => __DIR__ . '/..' . '/nette/application/src/Application/UI/Presenter.php',
|
||||
'Nette\\Application\\UI\\PresenterComponent' => __DIR__ . '/..' . '/nette/application/src/compatibility.php',
|
||||
'Nette\\Application\\UI\\PresenterComponentReflection' => __DIR__ . '/..' . '/nette/application/src/compatibility.php',
|
||||
'Nette\\Application\\UI\\Renderable' => __DIR__ . '/..' . '/nette/application/src/Application/UI/Renderable.php',
|
||||
'Nette\\Application\\UI\\SignalReceiver' => __DIR__ . '/..' . '/nette/application/src/Application/UI/SignalReceiver.php',
|
||||
'Nette\\Application\\UI\\StatePersistent' => __DIR__ . '/..' . '/nette/application/src/Application/UI/StatePersistent.php',
|
||||
'Nette\\Application\\UI\\Template' => __DIR__ . '/..' . '/nette/application/src/Application/UI/Template.php',
|
||||
'Nette\\Application\\UI\\TemplateFactory' => __DIR__ . '/..' . '/nette/application/src/Application/UI/TemplateFactory.php',
|
||||
'Nette\\ArgumentOutOfRangeException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php',
|
||||
'Nette\\Bootstrap\\Configurator' => __DIR__ . '/..' . '/nette/bootstrap/src/Bootstrap/Configurator.php',
|
||||
'Nette\\Bootstrap\\Extensions\\ConstantsExtension' => __DIR__ . '/..' . '/nette/bootstrap/src/Bootstrap/Extensions/ConstantsExtension.php',
|
||||
'Nette\\Bootstrap\\Extensions\\PhpExtension' => __DIR__ . '/..' . '/nette/bootstrap/src/Bootstrap/Extensions/PhpExtension.php',
|
||||
'Nette\\Bridges\\ApplicationDI\\ApplicationExtension' => __DIR__ . '/..' . '/nette/application/src/Bridges/ApplicationDI/ApplicationExtension.php',
|
||||
'Nette\\Bridges\\ApplicationDI\\LatteExtension' => __DIR__ . '/..' . '/nette/application/src/Bridges/ApplicationDI/LatteExtension.php',
|
||||
'Nette\\Bridges\\ApplicationDI\\PresenterFactoryCallback' => __DIR__ . '/..' . '/nette/application/src/Bridges/ApplicationDI/PresenterFactoryCallback.php',
|
||||
'Nette\\Bridges\\ApplicationDI\\RoutingExtension' => __DIR__ . '/..' . '/nette/application/src/Bridges/ApplicationDI/RoutingExtension.php',
|
||||
'Nette\\Bridges\\ApplicationLatte\\DefaultTemplate' => __DIR__ . '/..' . '/nette/application/src/Bridges/ApplicationLatte/DefaultTemplate.php',
|
||||
'Nette\\Bridges\\ApplicationLatte\\ILatteFactory' => __DIR__ . '/..' . '/nette/application/src/compatibility-intf.php',
|
||||
'Nette\\Bridges\\ApplicationLatte\\LatteFactory' => __DIR__ . '/..' . '/nette/application/src/Bridges/ApplicationLatte/LatteFactory.php',
|
||||
'Nette\\Bridges\\ApplicationLatte\\Nodes\\ControlNode' => __DIR__ . '/..' . '/nette/application/src/Bridges/ApplicationLatte/Nodes/ControlNode.php',
|
||||
'Nette\\Bridges\\ApplicationLatte\\Nodes\\IfCurrentNode' => __DIR__ . '/..' . '/nette/application/src/Bridges/ApplicationLatte/Nodes/IfCurrentNode.php',
|
||||
'Nette\\Bridges\\ApplicationLatte\\Nodes\\LinkNode' => __DIR__ . '/..' . '/nette/application/src/Bridges/ApplicationLatte/Nodes/LinkNode.php',
|
||||
'Nette\\Bridges\\ApplicationLatte\\Nodes\\NNonceNode' => __DIR__ . '/..' . '/nette/application/src/Bridges/ApplicationLatte/Nodes/NNonceNode.php',
|
||||
'Nette\\Bridges\\ApplicationLatte\\Nodes\\SnippetAreaNode' => __DIR__ . '/..' . '/nette/application/src/Bridges/ApplicationLatte/Nodes/SnippetAreaNode.php',
|
||||
'Nette\\Bridges\\ApplicationLatte\\Nodes\\SnippetNode' => __DIR__ . '/..' . '/nette/application/src/Bridges/ApplicationLatte/Nodes/SnippetNode.php',
|
||||
'Nette\\Bridges\\ApplicationLatte\\Nodes\\TemplatePrintNode' => __DIR__ . '/..' . '/nette/application/src/Bridges/ApplicationLatte/Nodes/TemplatePrintNode.php',
|
||||
'Nette\\Bridges\\ApplicationLatte\\SnippetBridge' => __DIR__ . '/..' . '/nette/application/src/Bridges/ApplicationLatte/SnippetBridge.php',
|
||||
'Nette\\Bridges\\ApplicationLatte\\SnippetRuntime' => __DIR__ . '/..' . '/nette/application/src/Bridges/ApplicationLatte/SnippetRuntime.php',
|
||||
'Nette\\Bridges\\ApplicationLatte\\Template' => __DIR__ . '/..' . '/nette/application/src/Bridges/ApplicationLatte/Template.php',
|
||||
'Nette\\Bridges\\ApplicationLatte\\TemplateFactory' => __DIR__ . '/..' . '/nette/application/src/Bridges/ApplicationLatte/TemplateFactory.php',
|
||||
'Nette\\Bridges\\ApplicationLatte\\UIExtension' => __DIR__ . '/..' . '/nette/application/src/Bridges/ApplicationLatte/UIExtension.php',
|
||||
'Nette\\Bridges\\ApplicationLatte\\UIMacros' => __DIR__ . '/..' . '/nette/application/src/Bridges/ApplicationLatte/UIMacros.php',
|
||||
'Nette\\Bridges\\ApplicationLatte\\UIRuntime' => __DIR__ . '/..' . '/nette/application/src/Bridges/ApplicationLatte/UIRuntime.php',
|
||||
'Nette\\Bridges\\ApplicationTracy\\RoutingPanel' => __DIR__ . '/..' . '/nette/application/src/Bridges/ApplicationTracy/RoutingPanel.php',
|
||||
'Nette\\Bridges\\CacheDI\\CacheExtension' => __DIR__ . '/..' . '/nette/caching/src/Bridges/CacheDI/CacheExtension.php',
|
||||
'Nette\\Bridges\\CacheLatte\\CacheExtension' => __DIR__ . '/..' . '/nette/caching/src/Bridges/CacheLatte/CacheExtension.php',
|
||||
'Nette\\Bridges\\CacheLatte\\CacheMacro' => __DIR__ . '/..' . '/nette/caching/src/Bridges/CacheLatte/CacheMacro.php',
|
||||
'Nette\\Bridges\\CacheLatte\\Nodes\\CacheNode' => __DIR__ . '/..' . '/nette/caching/src/Bridges/CacheLatte/Nodes/CacheNode.php',
|
||||
'Nette\\Bridges\\CacheLatte\\Runtime' => __DIR__ . '/..' . '/nette/caching/src/Bridges/CacheLatte/Runtime.php',
|
||||
'Nette\\Bridges\\DITracy\\ContainerPanel' => __DIR__ . '/..' . '/nette/di/src/Bridges/DITracy/ContainerPanel.php',
|
||||
'Nette\\Bridges\\DatabaseDI\\DatabaseExtension' => __DIR__ . '/..' . '/nette/database/src/Bridges/DatabaseDI/DatabaseExtension.php',
|
||||
'Nette\\Bridges\\DatabaseTracy\\ConnectionPanel' => __DIR__ . '/..' . '/nette/database/src/Bridges/DatabaseTracy/ConnectionPanel.php',
|
||||
'Nette\\Bridges\\FormsDI\\FormsExtension' => __DIR__ . '/..' . '/nette/forms/src/Bridges/FormsDI/FormsExtension.php',
|
||||
'Nette\\Bridges\\FormsLatte\\FormMacros' => __DIR__ . '/..' . '/nette/forms/src/Bridges/FormsLatte/FormMacros.php',
|
||||
'Nette\\Bridges\\FormsLatte\\FormsExtension' => __DIR__ . '/..' . '/nette/forms/src/Bridges/FormsLatte/FormsExtension.php',
|
||||
'Nette\\Bridges\\FormsLatte\\Nodes\\FieldNNameNode' => __DIR__ . '/..' . '/nette/forms/src/Bridges/FormsLatte/Nodes/FieldNNameNode.php',
|
||||
'Nette\\Bridges\\FormsLatte\\Nodes\\FormContainerNode' => __DIR__ . '/..' . '/nette/forms/src/Bridges/FormsLatte/Nodes/FormContainerNode.php',
|
||||
'Nette\\Bridges\\FormsLatte\\Nodes\\FormNNameNode' => __DIR__ . '/..' . '/nette/forms/src/Bridges/FormsLatte/Nodes/FormNNameNode.php',
|
||||
'Nette\\Bridges\\FormsLatte\\Nodes\\FormNode' => __DIR__ . '/..' . '/nette/forms/src/Bridges/FormsLatte/Nodes/FormNode.php',
|
||||
'Nette\\Bridges\\FormsLatte\\Nodes\\FormPrintNode' => __DIR__ . '/..' . '/nette/forms/src/Bridges/FormsLatte/Nodes/FormPrintNode.php',
|
||||
'Nette\\Bridges\\FormsLatte\\Nodes\\InputErrorNode' => __DIR__ . '/..' . '/nette/forms/src/Bridges/FormsLatte/Nodes/InputErrorNode.php',
|
||||
'Nette\\Bridges\\FormsLatte\\Nodes\\InputNode' => __DIR__ . '/..' . '/nette/forms/src/Bridges/FormsLatte/Nodes/InputNode.php',
|
||||
'Nette\\Bridges\\FormsLatte\\Nodes\\LabelNode' => __DIR__ . '/..' . '/nette/forms/src/Bridges/FormsLatte/Nodes/LabelNode.php',
|
||||
'Nette\\Bridges\\FormsLatte\\Runtime' => __DIR__ . '/..' . '/nette/forms/src/Bridges/FormsLatte/Runtime.php',
|
||||
'Nette\\Bridges\\HttpDI\\HttpExtension' => __DIR__ . '/..' . '/nette/http/src/Bridges/HttpDI/HttpExtension.php',
|
||||
'Nette\\Bridges\\HttpDI\\SessionExtension' => __DIR__ . '/..' . '/nette/http/src/Bridges/HttpDI/SessionExtension.php',
|
||||
'Nette\\Bridges\\HttpTracy\\SessionPanel' => __DIR__ . '/..' . '/nette/http/src/Bridges/HttpTracy/SessionPanel.php',
|
||||
'Nette\\Bridges\\MailDI\\MailExtension' => __DIR__ . '/..' . '/nette/mail/src/Bridges/MailDI/MailExtension.php',
|
||||
'Nette\\Bridges\\Psr\\PsrCacheAdapter' => __DIR__ . '/..' . '/nette/caching/src/Bridges/Psr/PsrCacheAdapter.php',
|
||||
'Nette\\Bridges\\SecurityDI\\SecurityExtension' => __DIR__ . '/..' . '/nette/security/src/Bridges/SecurityDI/SecurityExtension.php',
|
||||
'Nette\\Bridges\\SecurityHttp\\CookieStorage' => __DIR__ . '/..' . '/nette/security/src/Bridges/SecurityHttp/CookieStorage.php',
|
||||
'Nette\\Bridges\\SecurityHttp\\SessionStorage' => __DIR__ . '/..' . '/nette/security/src/Bridges/SecurityHttp/SessionStorage.php',
|
||||
'Nette\\Bridges\\SecurityTracy\\UserPanel' => __DIR__ . '/..' . '/nette/security/src/Bridges/SecurityTracy/UserPanel.php',
|
||||
'Nette\\Caching\\BulkReader' => __DIR__ . '/..' . '/nette/caching/src/Caching/BulkReader.php',
|
||||
'Nette\\Caching\\BulkWriter' => __DIR__ . '/..' . '/nette/caching/src/Caching/BulkWriter.php',
|
||||
'Nette\\Caching\\Cache' => __DIR__ . '/..' . '/nette/caching/src/Caching/Cache.php',
|
||||
'Nette\\Caching\\IBulkReader' => __DIR__ . '/..' . '/nette/caching/src/compatibility.php',
|
||||
'Nette\\Caching\\IStorage' => __DIR__ . '/..' . '/nette/caching/src/compatibility.php',
|
||||
'Nette\\Caching\\OutputHelper' => __DIR__ . '/..' . '/nette/caching/src/Caching/OutputHelper.php',
|
||||
'Nette\\Caching\\Storage' => __DIR__ . '/..' . '/nette/caching/src/Caching/Storage.php',
|
||||
'Nette\\Caching\\Storages\\DevNullStorage' => __DIR__ . '/..' . '/nette/caching/src/Caching/Storages/DevNullStorage.php',
|
||||
'Nette\\Caching\\Storages\\FileStorage' => __DIR__ . '/..' . '/nette/caching/src/Caching/Storages/FileStorage.php',
|
||||
'Nette\\Caching\\Storages\\IJournal' => __DIR__ . '/..' . '/nette/caching/src/compatibility.php',
|
||||
'Nette\\Caching\\Storages\\Journal' => __DIR__ . '/..' . '/nette/caching/src/Caching/Storages/Journal.php',
|
||||
'Nette\\Caching\\Storages\\MemcachedStorage' => __DIR__ . '/..' . '/nette/caching/src/Caching/Storages/MemcachedStorage.php',
|
||||
'Nette\\Caching\\Storages\\MemoryStorage' => __DIR__ . '/..' . '/nette/caching/src/Caching/Storages/MemoryStorage.php',
|
||||
'Nette\\Caching\\Storages\\SQLiteJournal' => __DIR__ . '/..' . '/nette/caching/src/Caching/Storages/SQLiteJournal.php',
|
||||
'Nette\\Caching\\Storages\\SQLiteStorage' => __DIR__ . '/..' . '/nette/caching/src/Caching/Storages/SQLiteStorage.php',
|
||||
'Nette\\ComponentModel\\ArrayAccess' => __DIR__ . '/..' . '/nette/component-model/src/ComponentModel/ArrayAccess.php',
|
||||
'Nette\\ComponentModel\\Component' => __DIR__ . '/..' . '/nette/component-model/src/ComponentModel/Component.php',
|
||||
'Nette\\ComponentModel\\Container' => __DIR__ . '/..' . '/nette/component-model/src/ComponentModel/Container.php',
|
||||
'Nette\\ComponentModel\\IComponent' => __DIR__ . '/..' . '/nette/component-model/src/ComponentModel/IComponent.php',
|
||||
'Nette\\ComponentModel\\IContainer' => __DIR__ . '/..' . '/nette/component-model/src/ComponentModel/IContainer.php',
|
||||
'Nette\\ComponentModel\\RecursiveComponentIterator' => __DIR__ . '/..' . '/nette/component-model/src/ComponentModel/RecursiveComponentIterator.php',
|
||||
'Nette\\Configurator' => __DIR__ . '/..' . '/nette/bootstrap/src/Configurator.php',
|
||||
'Nette\\DI\\Attributes\\Inject' => __DIR__ . '/..' . '/nette/di/src/DI/Attributes/Inject.php',
|
||||
'Nette\\DI\\Autowiring' => __DIR__ . '/..' . '/nette/di/src/DI/Autowiring.php',
|
||||
'Nette\\DI\\Compiler' => __DIR__ . '/..' . '/nette/di/src/DI/Compiler.php',
|
||||
'Nette\\DI\\CompilerExtension' => __DIR__ . '/..' . '/nette/di/src/DI/CompilerExtension.php',
|
||||
'Nette\\DI\\Config\\Adapter' => __DIR__ . '/..' . '/nette/di/src/DI/Config/Adapter.php',
|
||||
'Nette\\DI\\Config\\Adapters\\NeonAdapter' => __DIR__ . '/..' . '/nette/di/src/DI/Config/Adapters/NeonAdapter.php',
|
||||
'Nette\\DI\\Config\\Adapters\\PhpAdapter' => __DIR__ . '/..' . '/nette/di/src/DI/Config/Adapters/PhpAdapter.php',
|
||||
'Nette\\DI\\Config\\Helpers' => __DIR__ . '/..' . '/nette/di/src/DI/Config/Helpers.php',
|
||||
'Nette\\DI\\Config\\IAdapter' => __DIR__ . '/..' . '/nette/di/src/compatibility.php',
|
||||
'Nette\\DI\\Config\\Loader' => __DIR__ . '/..' . '/nette/di/src/DI/Config/Loader.php',
|
||||
'Nette\\DI\\Container' => __DIR__ . '/..' . '/nette/di/src/DI/Container.php',
|
||||
'Nette\\DI\\ContainerBuilder' => __DIR__ . '/..' . '/nette/di/src/DI/ContainerBuilder.php',
|
||||
'Nette\\DI\\ContainerLoader' => __DIR__ . '/..' . '/nette/di/src/DI/ContainerLoader.php',
|
||||
'Nette\\DI\\Definitions\\AccessorDefinition' => __DIR__ . '/..' . '/nette/di/src/DI/Definitions/AccessorDefinition.php',
|
||||
'Nette\\DI\\Definitions\\Definition' => __DIR__ . '/..' . '/nette/di/src/DI/Definitions/Definition.php',
|
||||
'Nette\\DI\\Definitions\\FactoryDefinition' => __DIR__ . '/..' . '/nette/di/src/DI/Definitions/FactoryDefinition.php',
|
||||
'Nette\\DI\\Definitions\\ImportedDefinition' => __DIR__ . '/..' . '/nette/di/src/DI/Definitions/ImportedDefinition.php',
|
||||
'Nette\\DI\\Definitions\\LocatorDefinition' => __DIR__ . '/..' . '/nette/di/src/DI/Definitions/LocatorDefinition.php',
|
||||
'Nette\\DI\\Definitions\\Reference' => __DIR__ . '/..' . '/nette/di/src/DI/Definitions/Reference.php',
|
||||
'Nette\\DI\\Definitions\\ServiceDefinition' => __DIR__ . '/..' . '/nette/di/src/DI/Definitions/ServiceDefinition.php',
|
||||
'Nette\\DI\\Definitions\\Statement' => __DIR__ . '/..' . '/nette/di/src/DI/Definitions/Statement.php',
|
||||
'Nette\\DI\\DependencyChecker' => __DIR__ . '/..' . '/nette/di/src/DI/DependencyChecker.php',
|
||||
'Nette\\DI\\DynamicParameter' => __DIR__ . '/..' . '/nette/di/src/DI/DynamicParameter.php',
|
||||
'Nette\\DI\\Extensions\\DIExtension' => __DIR__ . '/..' . '/nette/di/src/DI/Extensions/DIExtension.php',
|
||||
'Nette\\DI\\Extensions\\DecoratorExtension' => __DIR__ . '/..' . '/nette/di/src/DI/Extensions/DecoratorExtension.php',
|
||||
'Nette\\DI\\Extensions\\DefinitionSchema' => __DIR__ . '/..' . '/nette/di/src/DI/Extensions/DefinitionSchema.php',
|
||||
'Nette\\DI\\Extensions\\ExtensionsExtension' => __DIR__ . '/..' . '/nette/di/src/DI/Extensions/ExtensionsExtension.php',
|
||||
'Nette\\DI\\Extensions\\InjectExtension' => __DIR__ . '/..' . '/nette/di/src/DI/Extensions/InjectExtension.php',
|
||||
'Nette\\DI\\Extensions\\ParametersExtension' => __DIR__ . '/..' . '/nette/di/src/DI/Extensions/ParametersExtension.php',
|
||||
'Nette\\DI\\Extensions\\SearchExtension' => __DIR__ . '/..' . '/nette/di/src/DI/Extensions/SearchExtension.php',
|
||||
'Nette\\DI\\Extensions\\ServicesExtension' => __DIR__ . '/..' . '/nette/di/src/DI/Extensions/ServicesExtension.php',
|
||||
'Nette\\DI\\Helpers' => __DIR__ . '/..' . '/nette/di/src/DI/Helpers.php',
|
||||
'Nette\\DI\\InvalidConfigurationException' => __DIR__ . '/..' . '/nette/di/src/DI/exceptions.php',
|
||||
'Nette\\DI\\MissingServiceException' => __DIR__ . '/..' . '/nette/di/src/DI/exceptions.php',
|
||||
'Nette\\DI\\NotAllowedDuringResolvingException' => __DIR__ . '/..' . '/nette/di/src/DI/exceptions.php',
|
||||
'Nette\\DI\\PhpGenerator' => __DIR__ . '/..' . '/nette/di/src/DI/PhpGenerator.php',
|
||||
'Nette\\DI\\Resolver' => __DIR__ . '/..' . '/nette/di/src/DI/Resolver.php',
|
||||
'Nette\\DI\\ServiceCreationException' => __DIR__ . '/..' . '/nette/di/src/DI/exceptions.php',
|
||||
'Nette\\DI\\ServiceDefinition' => __DIR__ . '/..' . '/nette/di/src/compatibility.php',
|
||||
'Nette\\DI\\Statement' => __DIR__ . '/..' . '/nette/di/src/compatibility.php',
|
||||
'Nette\\Database\\Connection' => __DIR__ . '/..' . '/nette/database/src/Database/Connection.php',
|
||||
'Nette\\Database\\ConnectionException' => __DIR__ . '/..' . '/nette/database/src/Database/exceptions.php',
|
||||
'Nette\\Database\\ConstraintViolationException' => __DIR__ . '/..' . '/nette/database/src/Database/exceptions.php',
|
||||
'Nette\\Database\\Context' => __DIR__ . '/..' . '/nette/database/src/compatibility.php',
|
||||
'Nette\\Database\\Conventions' => __DIR__ . '/..' . '/nette/database/src/Database/Conventions.php',
|
||||
'Nette\\Database\\Conventions\\AmbiguousReferenceKeyException' => __DIR__ . '/..' . '/nette/database/src/Database/Conventions/AmbiguousReferenceKeyException.php',
|
||||
'Nette\\Database\\Conventions\\DiscoveredConventions' => __DIR__ . '/..' . '/nette/database/src/Database/Conventions/DiscoveredConventions.php',
|
||||
'Nette\\Database\\Conventions\\StaticConventions' => __DIR__ . '/..' . '/nette/database/src/Database/Conventions/StaticConventions.php',
|
||||
'Nette\\Database\\DateTime' => __DIR__ . '/..' . '/nette/database/src/Database/DateTime.php',
|
||||
'Nette\\Database\\Driver' => __DIR__ . '/..' . '/nette/database/src/Database/Driver.php',
|
||||
'Nette\\Database\\DriverException' => __DIR__ . '/..' . '/nette/database/src/Database/DriverException.php',
|
||||
'Nette\\Database\\Drivers\\MsSqlDriver' => __DIR__ . '/..' . '/nette/database/src/Database/Drivers/MsSqlDriver.php',
|
||||
'Nette\\Database\\Drivers\\MySqlDriver' => __DIR__ . '/..' . '/nette/database/src/Database/Drivers/MySqlDriver.php',
|
||||
'Nette\\Database\\Drivers\\OciDriver' => __DIR__ . '/..' . '/nette/database/src/Database/Drivers/OciDriver.php',
|
||||
'Nette\\Database\\Drivers\\OdbcDriver' => __DIR__ . '/..' . '/nette/database/src/Database/Drivers/OdbcDriver.php',
|
||||
'Nette\\Database\\Drivers\\PgSqlDriver' => __DIR__ . '/..' . '/nette/database/src/Database/Drivers/PgSqlDriver.php',
|
||||
'Nette\\Database\\Drivers\\SqliteDriver' => __DIR__ . '/..' . '/nette/database/src/Database/Drivers/SqliteDriver.php',
|
||||
'Nette\\Database\\Drivers\\SqlsrvDriver' => __DIR__ . '/..' . '/nette/database/src/Database/Drivers/SqlsrvDriver.php',
|
||||
'Nette\\Database\\Explorer' => __DIR__ . '/..' . '/nette/database/src/Database/Explorer.php',
|
||||
'Nette\\Database\\ForeignKeyConstraintViolationException' => __DIR__ . '/..' . '/nette/database/src/Database/exceptions.php',
|
||||
'Nette\\Database\\Helpers' => __DIR__ . '/..' . '/nette/database/src/Database/Helpers.php',
|
||||
'Nette\\Database\\IConventions' => __DIR__ . '/..' . '/nette/database/src/compatibility-intf.php',
|
||||
'Nette\\Database\\IRow' => __DIR__ . '/..' . '/nette/database/src/Database/IRow.php',
|
||||
'Nette\\Database\\IRowContainer' => __DIR__ . '/..' . '/nette/database/src/Database/IRowContainer.php',
|
||||
'Nette\\Database\\IStructure' => __DIR__ . '/..' . '/nette/database/src/Database/IStructure.php',
|
||||
'Nette\\Database\\ISupplementalDriver' => __DIR__ . '/..' . '/nette/database/src/compatibility-intf.php',
|
||||
'Nette\\Database\\NotNullConstraintViolationException' => __DIR__ . '/..' . '/nette/database/src/Database/exceptions.php',
|
||||
'Nette\\Database\\Reflection' => __DIR__ . '/..' . '/nette/database/src/Database/Reflection.php',
|
||||
'Nette\\Database\\Reflection\\Column' => __DIR__ . '/..' . '/nette/database/src/Database/Reflection/Column.php',
|
||||
'Nette\\Database\\Reflection\\ForeignKey' => __DIR__ . '/..' . '/nette/database/src/Database/Reflection/ForeignKey.php',
|
||||
'Nette\\Database\\Reflection\\Index' => __DIR__ . '/..' . '/nette/database/src/Database/Reflection/Index.php',
|
||||
'Nette\\Database\\Reflection\\Table' => __DIR__ . '/..' . '/nette/database/src/Database/Reflection/Table.php',
|
||||
'Nette\\Database\\ResultSet' => __DIR__ . '/..' . '/nette/database/src/Database/ResultSet.php',
|
||||
'Nette\\Database\\Row' => __DIR__ . '/..' . '/nette/database/src/Database/Row.php',
|
||||
'Nette\\Database\\SqlLiteral' => __DIR__ . '/..' . '/nette/database/src/Database/SqlLiteral.php',
|
||||
'Nette\\Database\\SqlPreprocessor' => __DIR__ . '/..' . '/nette/database/src/Database/SqlPreprocessor.php',
|
||||
'Nette\\Database\\Structure' => __DIR__ . '/..' . '/nette/database/src/Database/Structure.php',
|
||||
'Nette\\Database\\Table\\ActiveRow' => __DIR__ . '/..' . '/nette/database/src/Database/Table/ActiveRow.php',
|
||||
'Nette\\Database\\Table\\GroupedSelection' => __DIR__ . '/..' . '/nette/database/src/Database/Table/GroupedSelection.php',
|
||||
'Nette\\Database\\Table\\IRow' => __DIR__ . '/..' . '/nette/database/src/Database/Table/IRow.php',
|
||||
'Nette\\Database\\Table\\IRowContainer' => __DIR__ . '/..' . '/nette/database/src/Database/Table/IRowContainer.php',
|
||||
'Nette\\Database\\Table\\Selection' => __DIR__ . '/..' . '/nette/database/src/Database/Table/Selection.php',
|
||||
'Nette\\Database\\Table\\SqlBuilder' => __DIR__ . '/..' . '/nette/database/src/Database/Table/SqlBuilder.php',
|
||||
'Nette\\Database\\UniqueConstraintViolationException' => __DIR__ . '/..' . '/nette/database/src/Database/exceptions.php',
|
||||
'Nette\\DeprecatedException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php',
|
||||
'Nette\\DirectoryNotFoundException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php',
|
||||
'Nette\\FileNotFoundException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php',
|
||||
'Nette\\Forms\\Blueprint' => __DIR__ . '/..' . '/nette/forms/src/Forms/Blueprint.php',
|
||||
'Nette\\Forms\\Container' => __DIR__ . '/..' . '/nette/forms/src/Forms/Container.php',
|
||||
'Nette\\Forms\\Control' => __DIR__ . '/..' . '/nette/forms/src/Forms/Control.php',
|
||||
'Nette\\Forms\\ControlGroup' => __DIR__ . '/..' . '/nette/forms/src/Forms/ControlGroup.php',
|
||||
'Nette\\Forms\\Controls\\BaseControl' => __DIR__ . '/..' . '/nette/forms/src/Forms/Controls/BaseControl.php',
|
||||
'Nette\\Forms\\Controls\\Button' => __DIR__ . '/..' . '/nette/forms/src/Forms/Controls/Button.php',
|
||||
'Nette\\Forms\\Controls\\Checkbox' => __DIR__ . '/..' . '/nette/forms/src/Forms/Controls/Checkbox.php',
|
||||
'Nette\\Forms\\Controls\\CheckboxList' => __DIR__ . '/..' . '/nette/forms/src/Forms/Controls/CheckboxList.php',
|
||||
'Nette\\Forms\\Controls\\ChoiceControl' => __DIR__ . '/..' . '/nette/forms/src/Forms/Controls/ChoiceControl.php',
|
||||
'Nette\\Forms\\Controls\\ColorPicker' => __DIR__ . '/..' . '/nette/forms/src/Forms/Controls/ColorPicker.php',
|
||||
'Nette\\Forms\\Controls\\CsrfProtection' => __DIR__ . '/..' . '/nette/forms/src/Forms/Controls/CsrfProtection.php',
|
||||
'Nette\\Forms\\Controls\\DateTimeControl' => __DIR__ . '/..' . '/nette/forms/src/Forms/Controls/DateTimeControl.php',
|
||||
'Nette\\Forms\\Controls\\HiddenField' => __DIR__ . '/..' . '/nette/forms/src/Forms/Controls/HiddenField.php',
|
||||
'Nette\\Forms\\Controls\\ImageButton' => __DIR__ . '/..' . '/nette/forms/src/Forms/Controls/ImageButton.php',
|
||||
'Nette\\Forms\\Controls\\MultiChoiceControl' => __DIR__ . '/..' . '/nette/forms/src/Forms/Controls/MultiChoiceControl.php',
|
||||
'Nette\\Forms\\Controls\\MultiSelectBox' => __DIR__ . '/..' . '/nette/forms/src/Forms/Controls/MultiSelectBox.php',
|
||||
'Nette\\Forms\\Controls\\RadioList' => __DIR__ . '/..' . '/nette/forms/src/Forms/Controls/RadioList.php',
|
||||
'Nette\\Forms\\Controls\\SelectBox' => __DIR__ . '/..' . '/nette/forms/src/Forms/Controls/SelectBox.php',
|
||||
'Nette\\Forms\\Controls\\SubmitButton' => __DIR__ . '/..' . '/nette/forms/src/Forms/Controls/SubmitButton.php',
|
||||
'Nette\\Forms\\Controls\\TextArea' => __DIR__ . '/..' . '/nette/forms/src/Forms/Controls/TextArea.php',
|
||||
'Nette\\Forms\\Controls\\TextBase' => __DIR__ . '/..' . '/nette/forms/src/Forms/Controls/TextBase.php',
|
||||
'Nette\\Forms\\Controls\\TextInput' => __DIR__ . '/..' . '/nette/forms/src/Forms/Controls/TextInput.php',
|
||||
'Nette\\Forms\\Controls\\UploadControl' => __DIR__ . '/..' . '/nette/forms/src/Forms/Controls/UploadControl.php',
|
||||
'Nette\\Forms\\Form' => __DIR__ . '/..' . '/nette/forms/src/Forms/Form.php',
|
||||
'Nette\\Forms\\FormRenderer' => __DIR__ . '/..' . '/nette/forms/src/Forms/FormRenderer.php',
|
||||
'Nette\\Forms\\Helpers' => __DIR__ . '/..' . '/nette/forms/src/Forms/Helpers.php',
|
||||
'Nette\\Forms\\IControl' => __DIR__ . '/..' . '/nette/forms/src/compatibility.php',
|
||||
'Nette\\Forms\\IFormRenderer' => __DIR__ . '/..' . '/nette/forms/src/compatibility.php',
|
||||
'Nette\\Forms\\ISubmitterControl' => __DIR__ . '/..' . '/nette/forms/src/compatibility.php',
|
||||
'Nette\\Forms\\Rendering\\DataClassGenerator' => __DIR__ . '/..' . '/nette/forms/src/Forms/Rendering/DataClassGenerator.php',
|
||||
'Nette\\Forms\\Rendering\\DefaultFormRenderer' => __DIR__ . '/..' . '/nette/forms/src/Forms/Rendering/DefaultFormRenderer.php',
|
||||
'Nette\\Forms\\Rendering\\LatteRenderer' => __DIR__ . '/..' . '/nette/forms/src/Forms/Rendering/LatteRenderer.php',
|
||||
'Nette\\Forms\\Rule' => __DIR__ . '/..' . '/nette/forms/src/Forms/Rule.php',
|
||||
'Nette\\Forms\\Rules' => __DIR__ . '/..' . '/nette/forms/src/Forms/Rules.php',
|
||||
'Nette\\Forms\\SubmitterControl' => __DIR__ . '/..' . '/nette/forms/src/Forms/SubmitterControl.php',
|
||||
'Nette\\Forms\\Validator' => __DIR__ . '/..' . '/nette/forms/src/Forms/Validator.php',
|
||||
'Nette\\HtmlStringable' => __DIR__ . '/..' . '/nette/utils/src/HtmlStringable.php',
|
||||
'Nette\\Http\\Context' => __DIR__ . '/..' . '/nette/http/src/Http/Context.php',
|
||||
'Nette\\Http\\FileUpload' => __DIR__ . '/..' . '/nette/http/src/Http/FileUpload.php',
|
||||
'Nette\\Http\\Helpers' => __DIR__ . '/..' . '/nette/http/src/Http/Helpers.php',
|
||||
'Nette\\Http\\IRequest' => __DIR__ . '/..' . '/nette/http/src/Http/IRequest.php',
|
||||
'Nette\\Http\\IResponse' => __DIR__ . '/..' . '/nette/http/src/Http/IResponse.php',
|
||||
'Nette\\Http\\Request' => __DIR__ . '/..' . '/nette/http/src/Http/Request.php',
|
||||
'Nette\\Http\\RequestFactory' => __DIR__ . '/..' . '/nette/http/src/Http/RequestFactory.php',
|
||||
'Nette\\Http\\Response' => __DIR__ . '/..' . '/nette/http/src/Http/Response.php',
|
||||
'Nette\\Http\\Session' => __DIR__ . '/..' . '/nette/http/src/Http/Session.php',
|
||||
'Nette\\Http\\SessionSection' => __DIR__ . '/..' . '/nette/http/src/Http/SessionSection.php',
|
||||
'Nette\\Http\\Url' => __DIR__ . '/..' . '/nette/http/src/Http/Url.php',
|
||||
'Nette\\Http\\UrlImmutable' => __DIR__ . '/..' . '/nette/http/src/Http/UrlImmutable.php',
|
||||
'Nette\\Http\\UrlScript' => __DIR__ . '/..' . '/nette/http/src/Http/UrlScript.php',
|
||||
'Nette\\Http\\UserStorage' => __DIR__ . '/..' . '/nette/http/src/Http/UserStorage.php',
|
||||
'Nette\\IOException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php',
|
||||
'Nette\\InvalidArgumentException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php',
|
||||
'Nette\\InvalidStateException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php',
|
||||
'Nette\\Iterators\\CachingIterator' => __DIR__ . '/..' . '/nette/utils/src/Iterators/CachingIterator.php',
|
||||
'Nette\\Iterators\\Mapper' => __DIR__ . '/..' . '/nette/utils/src/Iterators/Mapper.php',
|
||||
'Nette\\Loaders\\RobotLoader' => __DIR__ . '/..' . '/nette/robot-loader/src/RobotLoader/RobotLoader.php',
|
||||
'Nette\\Localization\\ITranslator' => __DIR__ . '/..' . '/nette/utils/src/compatibility.php',
|
||||
'Nette\\Localization\\Translator' => __DIR__ . '/..' . '/nette/utils/src/Translator.php',
|
||||
'Nette\\Mail\\DkimSigner' => __DIR__ . '/..' . '/nette/mail/src/Mail/DkimSigner.php',
|
||||
'Nette\\Mail\\FallbackMailer' => __DIR__ . '/..' . '/nette/mail/src/Mail/FallbackMailer.php',
|
||||
'Nette\\Mail\\FallbackMailerException' => __DIR__ . '/..' . '/nette/mail/src/Mail/exceptions.php',
|
||||
'Nette\\Mail\\IMailer' => __DIR__ . '/..' . '/nette/mail/src/Mail/Mailer.php',
|
||||
'Nette\\Mail\\Mailer' => __DIR__ . '/..' . '/nette/mail/src/Mail/Mailer.php',
|
||||
'Nette\\Mail\\Message' => __DIR__ . '/..' . '/nette/mail/src/Mail/Message.php',
|
||||
'Nette\\Mail\\MimePart' => __DIR__ . '/..' . '/nette/mail/src/Mail/MimePart.php',
|
||||
'Nette\\Mail\\SendException' => __DIR__ . '/..' . '/nette/mail/src/Mail/exceptions.php',
|
||||
'Nette\\Mail\\SendmailMailer' => __DIR__ . '/..' . '/nette/mail/src/Mail/SendmailMailer.php',
|
||||
'Nette\\Mail\\SignException' => __DIR__ . '/..' . '/nette/mail/src/Mail/exceptions.php',
|
||||
'Nette\\Mail\\Signer' => __DIR__ . '/..' . '/nette/mail/src/Mail/Signer.php',
|
||||
'Nette\\Mail\\SmtpException' => __DIR__ . '/..' . '/nette/mail/src/Mail/exceptions.php',
|
||||
'Nette\\Mail\\SmtpMailer' => __DIR__ . '/..' . '/nette/mail/src/Mail/SmtpMailer.php',
|
||||
'Nette\\MemberAccessException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php',
|
||||
'Nette\\Neon\\Decoder' => __DIR__ . '/..' . '/nette/neon/src/Neon/Decoder.php',
|
||||
'Nette\\Neon\\Encoder' => __DIR__ . '/..' . '/nette/neon/src/Neon/Encoder.php',
|
||||
'Nette\\Neon\\Entity' => __DIR__ . '/..' . '/nette/neon/src/Neon/Entity.php',
|
||||
'Nette\\Neon\\Exception' => __DIR__ . '/..' . '/nette/neon/src/Neon/Exception.php',
|
||||
'Nette\\Neon\\Lexer' => __DIR__ . '/..' . '/nette/neon/src/Neon/Lexer.php',
|
||||
'Nette\\Neon\\Neon' => __DIR__ . '/..' . '/nette/neon/src/Neon/Neon.php',
|
||||
'Nette\\Neon\\Node' => __DIR__ . '/..' . '/nette/neon/src/Neon/Node.php',
|
||||
'Nette\\Neon\\Node\\ArrayItemNode' => __DIR__ . '/..' . '/nette/neon/src/Neon/Node/ArrayItemNode.php',
|
||||
'Nette\\Neon\\Node\\ArrayNode' => __DIR__ . '/..' . '/nette/neon/src/Neon/Node/ArrayNode.php',
|
||||
'Nette\\Neon\\Node\\BlockArrayNode' => __DIR__ . '/..' . '/nette/neon/src/Neon/Node/BlockArrayNode.php',
|
||||
'Nette\\Neon\\Node\\EntityChainNode' => __DIR__ . '/..' . '/nette/neon/src/Neon/Node/EntityChainNode.php',
|
||||
'Nette\\Neon\\Node\\EntityNode' => __DIR__ . '/..' . '/nette/neon/src/Neon/Node/EntityNode.php',
|
||||
'Nette\\Neon\\Node\\InlineArrayNode' => __DIR__ . '/..' . '/nette/neon/src/Neon/Node/InlineArrayNode.php',
|
||||
'Nette\\Neon\\Node\\LiteralNode' => __DIR__ . '/..' . '/nette/neon/src/Neon/Node/LiteralNode.php',
|
||||
'Nette\\Neon\\Node\\StringNode' => __DIR__ . '/..' . '/nette/neon/src/Neon/Node/StringNode.php',
|
||||
'Nette\\Neon\\Parser' => __DIR__ . '/..' . '/nette/neon/src/Neon/Parser.php',
|
||||
'Nette\\Neon\\Token' => __DIR__ . '/..' . '/nette/neon/src/Neon/Token.php',
|
||||
'Nette\\Neon\\TokenStream' => __DIR__ . '/..' . '/nette/neon/src/Neon/TokenStream.php',
|
||||
'Nette\\Neon\\Traverser' => __DIR__ . '/..' . '/nette/neon/src/Neon/Traverser.php',
|
||||
'Nette\\NotImplementedException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php',
|
||||
'Nette\\NotSupportedException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php',
|
||||
'Nette\\OutOfRangeException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php',
|
||||
'Nette\\PhpGenerator\\Attribute' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/Attribute.php',
|
||||
'Nette\\PhpGenerator\\ClassLike' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/ClassLike.php',
|
||||
'Nette\\PhpGenerator\\ClassManipulator' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/ClassManipulator.php',
|
||||
'Nette\\PhpGenerator\\ClassType' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/ClassType.php',
|
||||
'Nette\\PhpGenerator\\Closure' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/Closure.php',
|
||||
'Nette\\PhpGenerator\\Constant' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/Constant.php',
|
||||
'Nette\\PhpGenerator\\Dumper' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/Dumper.php',
|
||||
'Nette\\PhpGenerator\\EnumCase' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/EnumCase.php',
|
||||
'Nette\\PhpGenerator\\EnumType' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/EnumType.php',
|
||||
'Nette\\PhpGenerator\\Extractor' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/Extractor.php',
|
||||
'Nette\\PhpGenerator\\Factory' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/Factory.php',
|
||||
'Nette\\PhpGenerator\\GlobalFunction' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/GlobalFunction.php',
|
||||
'Nette\\PhpGenerator\\Helpers' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/Helpers.php',
|
||||
'Nette\\PhpGenerator\\InterfaceType' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/InterfaceType.php',
|
||||
'Nette\\PhpGenerator\\Literal' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/Literal.php',
|
||||
'Nette\\PhpGenerator\\Method' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/Method.php',
|
||||
'Nette\\PhpGenerator\\Parameter' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/Parameter.php',
|
||||
'Nette\\PhpGenerator\\PhpFile' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/PhpFile.php',
|
||||
'Nette\\PhpGenerator\\PhpLiteral' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/PhpLiteral.php',
|
||||
'Nette\\PhpGenerator\\PhpNamespace' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/PhpNamespace.php',
|
||||
'Nette\\PhpGenerator\\Printer' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/Printer.php',
|
||||
'Nette\\PhpGenerator\\PromotedParameter' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/PromotedParameter.php',
|
||||
'Nette\\PhpGenerator\\Property' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/Property.php',
|
||||
'Nette\\PhpGenerator\\PropertyAccessMode' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/PropertyAccessMode.php',
|
||||
'Nette\\PhpGenerator\\PropertyHook' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/PropertyHook.php',
|
||||
'Nette\\PhpGenerator\\PropertyHookType' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/PropertyHookType.php',
|
||||
'Nette\\PhpGenerator\\PsrPrinter' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/PsrPrinter.php',
|
||||
'Nette\\PhpGenerator\\TraitType' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/TraitType.php',
|
||||
'Nette\\PhpGenerator\\TraitUse' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/TraitUse.php',
|
||||
'Nette\\PhpGenerator\\Traits\\AttributeAware' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/Traits/AttributeAware.php',
|
||||
'Nette\\PhpGenerator\\Traits\\CommentAware' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/Traits/CommentAware.php',
|
||||
'Nette\\PhpGenerator\\Traits\\ConstantsAware' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/Traits/ConstantsAware.php',
|
||||
'Nette\\PhpGenerator\\Traits\\FunctionLike' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/Traits/FunctionLike.php',
|
||||
'Nette\\PhpGenerator\\Traits\\MethodsAware' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/Traits/MethodsAware.php',
|
||||
'Nette\\PhpGenerator\\Traits\\NameAware' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/Traits/NameAware.php',
|
||||
'Nette\\PhpGenerator\\Traits\\PropertiesAware' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/Traits/PropertiesAware.php',
|
||||
'Nette\\PhpGenerator\\Traits\\PropertyLike' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/Traits/PropertyLike.php',
|
||||
'Nette\\PhpGenerator\\Traits\\TraitsAware' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/Traits/TraitsAware.php',
|
||||
'Nette\\PhpGenerator\\Traits\\VisibilityAware' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/Traits/VisibilityAware.php',
|
||||
'Nette\\PhpGenerator\\Type' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/Type.php',
|
||||
'Nette\\PhpGenerator\\Visibility' => __DIR__ . '/..' . '/nette/php-generator/src/PhpGenerator/Visibility.php',
|
||||
'Nette\\Routing\\Route' => __DIR__ . '/..' . '/nette/routing/src/Routing/Route.php',
|
||||
'Nette\\Routing\\RouteList' => __DIR__ . '/..' . '/nette/routing/src/Routing/RouteList.php',
|
||||
'Nette\\Routing\\Router' => __DIR__ . '/..' . '/nette/routing/src/Routing/Router.php',
|
||||
'Nette\\Routing\\SimpleRouter' => __DIR__ . '/..' . '/nette/routing/src/Routing/SimpleRouter.php',
|
||||
'Nette\\Schema\\Context' => __DIR__ . '/..' . '/nette/schema/src/Schema/Context.php',
|
||||
'Nette\\Schema\\DynamicParameter' => __DIR__ . '/..' . '/nette/schema/src/Schema/DynamicParameter.php',
|
||||
'Nette\\Schema\\Elements\\AnyOf' => __DIR__ . '/..' . '/nette/schema/src/Schema/Elements/AnyOf.php',
|
||||
'Nette\\Schema\\Elements\\Base' => __DIR__ . '/..' . '/nette/schema/src/Schema/Elements/Base.php',
|
||||
'Nette\\Schema\\Elements\\Structure' => __DIR__ . '/..' . '/nette/schema/src/Schema/Elements/Structure.php',
|
||||
'Nette\\Schema\\Elements\\Type' => __DIR__ . '/..' . '/nette/schema/src/Schema/Elements/Type.php',
|
||||
'Nette\\Schema\\Expect' => __DIR__ . '/..' . '/nette/schema/src/Schema/Expect.php',
|
||||
'Nette\\Schema\\Helpers' => __DIR__ . '/..' . '/nette/schema/src/Schema/Helpers.php',
|
||||
'Nette\\Schema\\Message' => __DIR__ . '/..' . '/nette/schema/src/Schema/Message.php',
|
||||
'Nette\\Schema\\Processor' => __DIR__ . '/..' . '/nette/schema/src/Schema/Processor.php',
|
||||
'Nette\\Schema\\Schema' => __DIR__ . '/..' . '/nette/schema/src/Schema/Schema.php',
|
||||
'Nette\\Schema\\ValidationException' => __DIR__ . '/..' . '/nette/schema/src/Schema/ValidationException.php',
|
||||
'Nette\\Security\\AuthenticationException' => __DIR__ . '/..' . '/nette/security/src/Security/AuthenticationException.php',
|
||||
'Nette\\Security\\Authenticator' => __DIR__ . '/..' . '/nette/security/src/Security/Authenticator.php',
|
||||
'Nette\\Security\\Authorizator' => __DIR__ . '/..' . '/nette/security/src/Security/Authorizator.php',
|
||||
'Nette\\Security\\IAuthenticator' => __DIR__ . '/..' . '/nette/security/src/Security/IAuthenticator.php',
|
||||
'Nette\\Security\\IAuthorizator' => __DIR__ . '/..' . '/nette/security/src/compatibility.php',
|
||||
'Nette\\Security\\IIdentity' => __DIR__ . '/..' . '/nette/security/src/Security/IIdentity.php',
|
||||
'Nette\\Security\\IResource' => __DIR__ . '/..' . '/nette/security/src/compatibility.php',
|
||||
'Nette\\Security\\IRole' => __DIR__ . '/..' . '/nette/security/src/compatibility.php',
|
||||
'Nette\\Security\\Identity' => __DIR__ . '/..' . '/nette/security/src/Security/Identity.php',
|
||||
'Nette\\Security\\IdentityHandler' => __DIR__ . '/..' . '/nette/security/src/Security/IdentityHandler.php',
|
||||
'Nette\\Security\\Passwords' => __DIR__ . '/..' . '/nette/security/src/Security/Passwords.php',
|
||||
'Nette\\Security\\Permission' => __DIR__ . '/..' . '/nette/security/src/Security/Permission.php',
|
||||
'Nette\\Security\\Resource' => __DIR__ . '/..' . '/nette/security/src/Security/Resource.php',
|
||||
'Nette\\Security\\Role' => __DIR__ . '/..' . '/nette/security/src/Security/Role.php',
|
||||
'Nette\\Security\\SimpleAuthenticator' => __DIR__ . '/..' . '/nette/security/src/Security/SimpleAuthenticator.php',
|
||||
'Nette\\Security\\SimpleIdentity' => __DIR__ . '/..' . '/nette/security/src/Security/SimpleIdentity.php',
|
||||
'Nette\\Security\\User' => __DIR__ . '/..' . '/nette/security/src/Security/User.php',
|
||||
'Nette\\Security\\UserStorage' => __DIR__ . '/..' . '/nette/security/src/Security/UserStorage.php',
|
||||
'Nette\\SmartObject' => __DIR__ . '/..' . '/nette/utils/src/SmartObject.php',
|
||||
'Nette\\StaticClass' => __DIR__ . '/..' . '/nette/utils/src/StaticClass.php',
|
||||
'Nette\\UnexpectedValueException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php',
|
||||
'Nette\\Utils\\ArrayHash' => __DIR__ . '/..' . '/nette/utils/src/Utils/ArrayHash.php',
|
||||
'Nette\\Utils\\ArrayList' => __DIR__ . '/..' . '/nette/utils/src/Utils/ArrayList.php',
|
||||
'Nette\\Utils\\Arrays' => __DIR__ . '/..' . '/nette/utils/src/Utils/Arrays.php',
|
||||
'Nette\\Utils\\AssertionException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php',
|
||||
'Nette\\Utils\\Callback' => __DIR__ . '/..' . '/nette/utils/src/Utils/Callback.php',
|
||||
'Nette\\Utils\\DateTime' => __DIR__ . '/..' . '/nette/utils/src/Utils/DateTime.php',
|
||||
'Nette\\Utils\\FileInfo' => __DIR__ . '/..' . '/nette/utils/src/Utils/FileInfo.php',
|
||||
'Nette\\Utils\\FileSystem' => __DIR__ . '/..' . '/nette/utils/src/Utils/FileSystem.php',
|
||||
'Nette\\Utils\\Finder' => __DIR__ . '/..' . '/nette/utils/src/Utils/Finder.php',
|
||||
'Nette\\Utils\\Floats' => __DIR__ . '/..' . '/nette/utils/src/Utils/Floats.php',
|
||||
'Nette\\Utils\\Helpers' => __DIR__ . '/..' . '/nette/utils/src/Utils/Helpers.php',
|
||||
'Nette\\Utils\\Html' => __DIR__ . '/..' . '/nette/utils/src/Utils/Html.php',
|
||||
'Nette\\Utils\\IHtmlString' => __DIR__ . '/..' . '/nette/utils/src/compatibility.php',
|
||||
'Nette\\Utils\\Image' => __DIR__ . '/..' . '/nette/utils/src/Utils/Image.php',
|
||||
'Nette\\Utils\\ImageColor' => __DIR__ . '/..' . '/nette/utils/src/Utils/ImageColor.php',
|
||||
'Nette\\Utils\\ImageException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php',
|
||||
'Nette\\Utils\\ImageType' => __DIR__ . '/..' . '/nette/utils/src/Utils/ImageType.php',
|
||||
'Nette\\Utils\\Iterables' => __DIR__ . '/..' . '/nette/utils/src/Utils/Iterables.php',
|
||||
'Nette\\Utils\\Json' => __DIR__ . '/..' . '/nette/utils/src/Utils/Json.php',
|
||||
'Nette\\Utils\\JsonException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php',
|
||||
'Nette\\Utils\\ObjectHelpers' => __DIR__ . '/..' . '/nette/utils/src/Utils/ObjectHelpers.php',
|
||||
'Nette\\Utils\\Paginator' => __DIR__ . '/..' . '/nette/utils/src/Utils/Paginator.php',
|
||||
'Nette\\Utils\\Random' => __DIR__ . '/..' . '/nette/utils/src/Utils/Random.php',
|
||||
'Nette\\Utils\\Reflection' => __DIR__ . '/..' . '/nette/utils/src/Utils/Reflection.php',
|
||||
'Nette\\Utils\\ReflectionMethod' => __DIR__ . '/..' . '/nette/utils/src/Utils/ReflectionMethod.php',
|
||||
'Nette\\Utils\\RegexpException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php',
|
||||
'Nette\\Utils\\Strings' => __DIR__ . '/..' . '/nette/utils/src/Utils/Strings.php',
|
||||
'Nette\\Utils\\Type' => __DIR__ . '/..' . '/nette/utils/src/Utils/Type.php',
|
||||
'Nette\\Utils\\UnknownImageFileException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php',
|
||||
'Nette\\Utils\\Validators' => __DIR__ . '/..' . '/nette/utils/src/Utils/Validators.php',
|
||||
'Tester\\Assert' => __DIR__ . '/..' . '/nette/tester/src/Framework/Assert.php',
|
||||
'Tester\\AssertException' => __DIR__ . '/..' . '/nette/tester/src/Framework/AssertException.php',
|
||||
'Tester\\CodeCoverage\\Collector' => __DIR__ . '/..' . '/nette/tester/src/CodeCoverage/Collector.php',
|
||||
'Tester\\CodeCoverage\\Generators\\AbstractGenerator' => __DIR__ . '/..' . '/nette/tester/src/CodeCoverage/Generators/AbstractGenerator.php',
|
||||
'Tester\\CodeCoverage\\Generators\\CloverXMLGenerator' => __DIR__ . '/..' . '/nette/tester/src/CodeCoverage/Generators/CloverXMLGenerator.php',
|
||||
'Tester\\CodeCoverage\\Generators\\HtmlGenerator' => __DIR__ . '/..' . '/nette/tester/src/CodeCoverage/Generators/HtmlGenerator.php',
|
||||
'Tester\\CodeCoverage\\PhpParser' => __DIR__ . '/..' . '/nette/tester/src/CodeCoverage/PhpParser.php',
|
||||
'Tester\\DataProvider' => __DIR__ . '/..' . '/nette/tester/src/Framework/DataProvider.php',
|
||||
'Tester\\DomQuery' => __DIR__ . '/..' . '/nette/tester/src/Framework/DomQuery.php',
|
||||
'Tester\\Dumper' => __DIR__ . '/..' . '/nette/tester/src/Framework/Dumper.php',
|
||||
'Tester\\Environment' => __DIR__ . '/..' . '/nette/tester/src/Framework/Environment.php',
|
||||
'Tester\\Expect' => __DIR__ . '/..' . '/nette/tester/src/Framework/Expect.php',
|
||||
'Tester\\FileMock' => __DIR__ . '/..' . '/nette/tester/src/Framework/FileMock.php',
|
||||
'Tester\\FileMutator' => __DIR__ . '/..' . '/nette/tester/src/Framework/FileMutator.php',
|
||||
'Tester\\Helpers' => __DIR__ . '/..' . '/nette/tester/src/Framework/Helpers.php',
|
||||
'Tester\\Runner\\CliTester' => __DIR__ . '/..' . '/nette/tester/src/Runner/CliTester.php',
|
||||
'Tester\\Runner\\CommandLine' => __DIR__ . '/..' . '/nette/tester/src/Runner/CommandLine.php',
|
||||
'Tester\\Runner\\InterruptException' => __DIR__ . '/..' . '/nette/tester/src/Runner/exceptions.php',
|
||||
'Tester\\Runner\\Job' => __DIR__ . '/..' . '/nette/tester/src/Runner/Job.php',
|
||||
'Tester\\Runner\\OutputHandler' => __DIR__ . '/..' . '/nette/tester/src/Runner/OutputHandler.php',
|
||||
'Tester\\Runner\\Output\\ConsolePrinter' => __DIR__ . '/..' . '/nette/tester/src/Runner/Output/ConsolePrinter.php',
|
||||
'Tester\\Runner\\Output\\JUnitPrinter' => __DIR__ . '/..' . '/nette/tester/src/Runner/Output/JUnitPrinter.php',
|
||||
'Tester\\Runner\\Output\\Logger' => __DIR__ . '/..' . '/nette/tester/src/Runner/Output/Logger.php',
|
||||
'Tester\\Runner\\Output\\TapPrinter' => __DIR__ . '/..' . '/nette/tester/src/Runner/Output/TapPrinter.php',
|
||||
'Tester\\Runner\\PhpInterpreter' => __DIR__ . '/..' . '/nette/tester/src/Runner/PhpInterpreter.php',
|
||||
'Tester\\Runner\\Runner' => __DIR__ . '/..' . '/nette/tester/src/Runner/Runner.php',
|
||||
'Tester\\Runner\\Test' => __DIR__ . '/..' . '/nette/tester/src/Runner/Test.php',
|
||||
'Tester\\Runner\\TestHandler' => __DIR__ . '/..' . '/nette/tester/src/Runner/TestHandler.php',
|
||||
'Tester\\TestCase' => __DIR__ . '/..' . '/nette/tester/src/Framework/TestCase.php',
|
||||
'Tester\\TestCaseException' => __DIR__ . '/..' . '/nette/tester/src/Framework/TestCase.php',
|
||||
'Tester\\TestCaseSkippedException' => __DIR__ . '/..' . '/nette/tester/src/Framework/TestCase.php',
|
||||
'Tracy\\Bar' => __DIR__ . '/..' . '/tracy/tracy/src/Tracy/Bar/Bar.php',
|
||||
'Tracy\\BlueScreen' => __DIR__ . '/..' . '/tracy/tracy/src/Tracy/BlueScreen/BlueScreen.php',
|
||||
'Tracy\\Bridges\\Nette\\Bridge' => __DIR__ . '/..' . '/tracy/tracy/src/Bridges/Nette/Bridge.php',
|
||||
'Tracy\\Bridges\\Nette\\MailSender' => __DIR__ . '/..' . '/tracy/tracy/src/Bridges/Nette/MailSender.php',
|
||||
'Tracy\\Bridges\\Nette\\TracyExtension' => __DIR__ . '/..' . '/tracy/tracy/src/Bridges/Nette/TracyExtension.php',
|
||||
'Tracy\\Bridges\\Psr\\PsrToTracyLoggerAdapter' => __DIR__ . '/..' . '/tracy/tracy/src/Bridges/Psr/PsrToTracyLoggerAdapter.php',
|
||||
'Tracy\\Bridges\\Psr\\TracyToPsrLoggerAdapter' => __DIR__ . '/..' . '/tracy/tracy/src/Bridges/Psr/TracyToPsrLoggerAdapter.php',
|
||||
'Tracy\\CodeHighlighter' => __DIR__ . '/..' . '/tracy/tracy/src/Tracy/BlueScreen/CodeHighlighter.php',
|
||||
'Tracy\\Debugger' => __DIR__ . '/..' . '/tracy/tracy/src/Tracy/Debugger/Debugger.php',
|
||||
'Tracy\\DefaultBarPanel' => __DIR__ . '/..' . '/tracy/tracy/src/Tracy/Bar/DefaultBarPanel.php',
|
||||
'Tracy\\DeferredContent' => __DIR__ . '/..' . '/tracy/tracy/src/Tracy/Debugger/DeferredContent.php',
|
||||
'Tracy\\DevelopmentStrategy' => __DIR__ . '/..' . '/tracy/tracy/src/Tracy/Debugger/DevelopmentStrategy.php',
|
||||
'Tracy\\Dumper' => __DIR__ . '/..' . '/tracy/tracy/src/Tracy/Dumper/Dumper.php',
|
||||
'Tracy\\Dumper\\Describer' => __DIR__ . '/..' . '/tracy/tracy/src/Tracy/Dumper/Describer.php',
|
||||
'Tracy\\Dumper\\Exposer' => __DIR__ . '/..' . '/tracy/tracy/src/Tracy/Dumper/Exposer.php',
|
||||
'Tracy\\Dumper\\Renderer' => __DIR__ . '/..' . '/tracy/tracy/src/Tracy/Dumper/Renderer.php',
|
||||
'Tracy\\Dumper\\Value' => __DIR__ . '/..' . '/tracy/tracy/src/Tracy/Dumper/Value.php',
|
||||
'Tracy\\FileSession' => __DIR__ . '/..' . '/tracy/tracy/src/Tracy/Session/FileSession.php',
|
||||
'Tracy\\Helpers' => __DIR__ . '/..' . '/tracy/tracy/src/Tracy/Helpers.php',
|
||||
'Tracy\\IBarPanel' => __DIR__ . '/..' . '/tracy/tracy/src/Tracy/Bar/IBarPanel.php',
|
||||
'Tracy\\ILogger' => __DIR__ . '/..' . '/tracy/tracy/src/Tracy/Logger/ILogger.php',
|
||||
'Tracy\\Logger' => __DIR__ . '/..' . '/tracy/tracy/src/Tracy/Logger/Logger.php',
|
||||
'Tracy\\NativeSession' => __DIR__ . '/..' . '/tracy/tracy/src/Tracy/Session/NativeSession.php',
|
||||
'Tracy\\OutputDebugger' => __DIR__ . '/..' . '/tracy/tracy/src/Tracy/OutputDebugger/OutputDebugger.php',
|
||||
'Tracy\\ProductionStrategy' => __DIR__ . '/..' . '/tracy/tracy/src/Tracy/Debugger/ProductionStrategy.php',
|
||||
'Tracy\\SessionStorage' => __DIR__ . '/..' . '/tracy/tracy/src/Tracy/Session/SessionStorage.php',
|
||||
);
|
||||
|
||||
public static function getInitializer(ClassLoader $loader)
|
||||
{
|
||||
return \Closure::bind(function () use ($loader) {
|
||||
$loader->prefixLengthsPsr4 = ComposerStaticInit9c49a418f02ffb235919088891200a26::$prefixLengthsPsr4;
|
||||
$loader->prefixDirsPsr4 = ComposerStaticInit9c49a418f02ffb235919088891200a26::$prefixDirsPsr4;
|
||||
$loader->classMap = ComposerStaticInit9c49a418f02ffb235919088891200a26::$classMap;
|
||||
|
||||
}, null, ClassLoader::class);
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,203 @@
|
|||
<?php return array(
|
||||
'root' => array(
|
||||
'name' => 'nette/web-project',
|
||||
'pretty_version' => '1.0.0+no-version-set',
|
||||
'version' => '1.0.0.0',
|
||||
'reference' => null,
|
||||
'type' => 'project',
|
||||
'install_path' => __DIR__ . '/../../',
|
||||
'aliases' => array(),
|
||||
'dev' => true,
|
||||
),
|
||||
'versions' => array(
|
||||
'latte/latte' => array(
|
||||
'pretty_version' => 'v3.0.20',
|
||||
'version' => '3.0.20.0',
|
||||
'reference' => '4db7a5502f8cef02fffa84fc9c34a635d9c79d4d',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../latte/latte',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'nette/application' => array(
|
||||
'pretty_version' => 'v3.2.6',
|
||||
'version' => '3.2.6.0',
|
||||
'reference' => '9c288cc45df467dc012504f4ad64791279720af8',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../nette/application',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'nette/bootstrap' => array(
|
||||
'pretty_version' => 'v3.2.5',
|
||||
'version' => '3.2.5.0',
|
||||
'reference' => '91d08432cb33d6c08d58b215c769d04f20580624',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../nette/bootstrap',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'nette/caching' => array(
|
||||
'pretty_version' => 'v3.3.1',
|
||||
'version' => '3.3.1.0',
|
||||
'reference' => 'b37d2c9647b41a9d04f099f10300dc5496c4eb77',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../nette/caching',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'nette/component-model' => array(
|
||||
'pretty_version' => 'v3.1.1',
|
||||
'version' => '3.1.1.0',
|
||||
'reference' => 'fb7608fd5f1c378ef9ef8ddc459c6ef0b63e9d77',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../nette/component-model',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'nette/database' => array(
|
||||
'pretty_version' => 'v3.2.6',
|
||||
'version' => '3.2.6.0',
|
||||
'reference' => 'cb825ac1cffe1ede98388a9c4e6c4445c26b961d',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../nette/database',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'nette/di' => array(
|
||||
'pretty_version' => 'v3.2.4',
|
||||
'version' => '3.2.4.0',
|
||||
'reference' => '57f923a7af32435b6e4921c0adbc70c619625a17',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../nette/di',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'nette/forms' => array(
|
||||
'pretty_version' => 'v3.2.5',
|
||||
'version' => '3.2.5.0',
|
||||
'reference' => '7e59cee3a16e0382f83680c94babb85a0a167dd0',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../nette/forms',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'nette/http' => array(
|
||||
'pretty_version' => 'v3.3.2',
|
||||
'version' => '3.3.2.0',
|
||||
'reference' => '3e2587b34beb66f238f119b12fbb4f0b9ab2d6d1',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../nette/http',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'nette/mail' => array(
|
||||
'pretty_version' => 'v4.0.3',
|
||||
'version' => '4.0.3.0',
|
||||
'reference' => 'd99839701c48031d6f35e3be95bdd9418f66ad2d',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../nette/mail',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'nette/neon' => array(
|
||||
'pretty_version' => 'v3.4.4',
|
||||
'version' => '3.4.4.0',
|
||||
'reference' => '3411aa86b104e2d5b7e760da4600865ead963c3c',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../nette/neon',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'nette/php-generator' => array(
|
||||
'pretty_version' => 'v4.1.7',
|
||||
'version' => '4.1.7.0',
|
||||
'reference' => 'd201c9bc217e0969d1b678d286be49302972fb56',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../nette/php-generator',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'nette/robot-loader' => array(
|
||||
'pretty_version' => 'v4.0.3',
|
||||
'version' => '4.0.3.0',
|
||||
'reference' => '45d67753fb4865bb718e9a6c9be69cc9470137b7',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../nette/robot-loader',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'nette/routing' => array(
|
||||
'pretty_version' => 'v3.1.1',
|
||||
'version' => '3.1.1.0',
|
||||
'reference' => '5b0782d3b50af68614253a373fa663ed03206a3f',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../nette/routing',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'nette/schema' => array(
|
||||
'pretty_version' => 'v1.3.2',
|
||||
'version' => '1.3.2.0',
|
||||
'reference' => 'da801d52f0354f70a638673c4a0f04e16529431d',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../nette/schema',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'nette/security' => array(
|
||||
'pretty_version' => 'v3.2.1',
|
||||
'version' => '3.2.1.0',
|
||||
'reference' => '6e19bf604934aec0cd3343a307e28fd997e40e96',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../nette/security',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'nette/tester' => array(
|
||||
'pretty_version' => 'v2.5.4',
|
||||
'version' => '2.5.4.0',
|
||||
'reference' => 'c11863785779e87b40adebf150364f2e5938c111',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../nette/tester',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => true,
|
||||
),
|
||||
'nette/utils' => array(
|
||||
'pretty_version' => 'v4.0.5',
|
||||
'version' => '4.0.5.0',
|
||||
'reference' => '736c567e257dbe0fcf6ce81b4d6dbe05c6899f96',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../nette/utils',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'nette/web-project' => array(
|
||||
'pretty_version' => '1.0.0+no-version-set',
|
||||
'version' => '1.0.0.0',
|
||||
'reference' => null,
|
||||
'type' => 'project',
|
||||
'install_path' => __DIR__ . '/../../',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'symfony/thanks' => array(
|
||||
'pretty_version' => 'v1.4.0',
|
||||
'version' => '1.4.0.0',
|
||||
'reference' => 'ad3f07af819f058666f0cac3f0737f18d31e3d05',
|
||||
'type' => 'composer-plugin',
|
||||
'install_path' => __DIR__ . '/../symfony/thanks',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => true,
|
||||
),
|
||||
'tracy/tracy' => array(
|
||||
'pretty_version' => 'v2.10.9',
|
||||
'version' => '2.10.9.0',
|
||||
'reference' => 'e7af75205b184ca8895bc57fafd331f8d5022d26',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../tracy/tracy',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
),
|
||||
);
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
<?php
|
||||
|
||||
// platform_check.php @generated by Composer
|
||||
|
||||
$issues = array();
|
||||
|
||||
if (!(PHP_VERSION_ID >= 80100)) {
|
||||
$issues[] = 'Your Composer dependencies require a PHP version ">= 8.1.0". You are running ' . PHP_VERSION . '.';
|
||||
}
|
||||
|
||||
if ($issues) {
|
||||
if (!headers_sent()) {
|
||||
header('HTTP/1.1 500 Internal Server Error');
|
||||
}
|
||||
if (!ini_get('display_errors')) {
|
||||
if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') {
|
||||
fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL);
|
||||
} elseif (!headers_sent()) {
|
||||
echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL;
|
||||
}
|
||||
}
|
||||
trigger_error(
|
||||
'Composer detected issues in your platform: ' . implode(' ', $issues),
|
||||
E_USER_ERROR
|
||||
);
|
||||
}
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
if (
|
||||
!(is_file($file = __DIR__ . '/../vendor/autoload.php') && include $file) &&
|
||||
!(is_file($file = __DIR__ . '/../../../autoload.php') && include $file)
|
||||
) {
|
||||
fwrite(STDERR, "Install packages using Composer.\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
||||
echo '
|
||||
Latte linter
|
||||
------------
|
||||
';
|
||||
|
||||
if ($argc < 2) {
|
||||
echo "Usage: latte-lint <path>\n";
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if ($debug = in_array('--debug', $argv, true)) {
|
||||
echo "Debug mode\n";
|
||||
}
|
||||
if ($strict = in_array('--strict', $argv, true)) {
|
||||
echo "Strict mode\n";
|
||||
}
|
||||
|
||||
$path = $argv[1];
|
||||
$linter = new Latte\Tools\Linter(debug: $debug, strict: $strict);
|
||||
$ok = $linter->scanDirectory($path);
|
||||
exit($ok ? 0 : 1);
|
||||
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"name": "latte/latte",
|
||||
"description": "☕ Latte: the intuitive and fast template engine for those who want the most secure PHP sites. Introduces context-sensitive escaping.",
|
||||
"keywords": ["template", "nette", "security", "engine", "html", "twig", "context-sensitive", "escaping"],
|
||||
"homepage": "https://latte.nette.org",
|
||||
"license": ["BSD-3-Clause", "GPL-2.0-only", "GPL-3.0-only"],
|
||||
"authors": [
|
||||
{
|
||||
"name": "David Grudl",
|
||||
"homepage": "https://davidgrudl.com"
|
||||
},
|
||||
{
|
||||
"name": "Nette Community",
|
||||
"homepage": "https://nette.org/contributors"
|
||||
}
|
||||
],
|
||||
"require": {
|
||||
"php": "8.0 - 8.4",
|
||||
"ext-json": "*",
|
||||
"ext-tokenizer": "*"
|
||||
},
|
||||
"require-dev": {
|
||||
"nette/tester": "^2.5",
|
||||
"tracy/tracy": "^2.10",
|
||||
"nette/utils": "^4.0",
|
||||
"phpstan/phpstan": "^1",
|
||||
"nette/php-generator": "^4.0"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-iconv": "to use filters |reverse, |substring",
|
||||
"ext-mbstring": "to use filters like lower, upper, capitalize, ...",
|
||||
"ext-fileinfo": "to use filter |datastream",
|
||||
"ext-intl": "to use Latte\\Engine::setLocale()",
|
||||
"nette/utils": "to use filter |webalize",
|
||||
"nette/php-generator": "to use tag {templatePrint}"
|
||||
},
|
||||
"conflict": {
|
||||
"nette/application": "<3.1.7",
|
||||
"nette/caching": "<3.1.4"
|
||||
},
|
||||
"autoload": {
|
||||
"classmap": ["src/"]
|
||||
},
|
||||
"minimum-stability": "dev",
|
||||
"bin": ["bin/latte-lint"],
|
||||
"scripts": {
|
||||
"phpstan": "phpstan analyse",
|
||||
"tester": "tester tests -s"
|
||||
},
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "3.0-dev"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
Licenses
|
||||
========
|
||||
|
||||
Good news! You may use Nette Framework under the terms of either
|
||||
the New BSD License or the GNU General Public License (GPL) version 2 or 3.
|
||||
|
||||
The BSD License is recommended for most projects. It is easy to understand and it
|
||||
places almost no restrictions on what you can do with the framework. If the GPL
|
||||
fits better to your project, you can use the framework under this license.
|
||||
|
||||
You don't have to notify anyone which license you are using. You can freely
|
||||
use Nette Framework in commercial projects as long as the copyright header
|
||||
remains intact.
|
||||
|
||||
Please be advised that the name "Nette Framework" is a protected trademark and its
|
||||
usage has some limitations. So please do not use word "Nette" in the name of your
|
||||
project or top-level domain, and choose a name that stands on its own merits.
|
||||
If your stuff is good, it will not take long to establish a reputation for yourselves.
|
||||
|
||||
|
||||
New BSD License
|
||||
---------------
|
||||
|
||||
Copyright (c) 2004, 2014 David Grudl (https://davidgrudl.com)
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
* Neither the name of "Nette Framework" nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
This software is provided by the copyright holders and contributors "as is" and
|
||||
any express or implied warranties, including, but not limited to, the implied
|
||||
warranties of merchantability and fitness for a particular purpose are
|
||||
disclaimed. In no event shall the copyright owner or contributors be liable for
|
||||
any direct, indirect, incidental, special, exemplary, or consequential damages
|
||||
(including, but not limited to, procurement of substitute goods or services;
|
||||
loss of use, data, or profits; or business interruption) however caused and on
|
||||
any theory of liability, whether in contract, strict liability, or tort
|
||||
(including negligence or otherwise) arising in any way out of the use of this
|
||||
software, even if advised of the possibility of such damage.
|
||||
|
||||
|
||||
GNU General Public License
|
||||
--------------------------
|
||||
|
||||
GPL licenses are very very long, so instead of including them here we offer
|
||||
you URLs with full text:
|
||||
|
||||
- [GPL version 2](http://www.gnu.org/licenses/gpl-2.0.html)
|
||||
- [GPL version 3](http://www.gnu.org/licenses/gpl-3.0.html)
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
[](https://latte.nette.org)
|
||||
|
||||
<!---->
|
||||
|
||||
<h3>
|
||||
|
||||
✅ The [only truly secure](https://latte.nette.org/en/safety-first) templating system for PHP<br>
|
||||
✅ [You already know the syntax](https://latte.nette.org/en/syntax)<br>
|
||||
✅ Highly mature, fast, and widely used library
|
||||
|
||||
</h3>
|
||||
|
||||
<!---->
|
||||
|
||||
Latte is the safest templating system for PHP. It is cleverly designed and easy to learn for those familiar with PHP, as they can quickly adopt its basic tags.
|
||||
A wide range of useful features will significantly simplify your work. It provides top-notch protection against critical vulnerabilities and allows you to focus on creating high-quality applications without worrying about their security.
|
||||
|
||||
🟨 Only 1% of programmers [can pass this quiz](https://blog.nette.org/en/quiz-can-you-defend-against-xss-vulnerability)!
|
||||
|
||||
<!---->
|
||||
|
||||
Getting started
|
||||
=======
|
||||
|
||||
<h3>
|
||||
|
||||
1️⃣ First, familiarize yourself with [Latte syntax](https://latte.nette.org/en/syntax) and [try it online](https://fiddle.nette.org/latte/#9cc0cf6d89)<br>
|
||||
2️⃣ Take a look at the basic set of [tags](https://latte.nette.org/en/tags) and [filters](https://latte.nette.org/en/filters)<br>
|
||||
3️⃣ Render a template with a [few lines of PHP code](https://latte.nette.org/en/develop)
|
||||
|
||||
</h3>
|
||||
|
||||
<!---->
|
||||
|
||||
Do you like Latte? Are you looking forward to the new features?
|
||||
|
||||
[](https://github.com/sponsors/dg)
|
||||
|
||||
Thank you!
|
||||
|
|
@ -0,0 +1,123 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Bridges\Tracy;
|
||||
|
||||
use Latte;
|
||||
use Tracy;
|
||||
use Tracy\BlueScreen;
|
||||
use Tracy\Helpers;
|
||||
|
||||
|
||||
/**
|
||||
* BlueScreen panels for Tracy 2.x
|
||||
* @internal
|
||||
*/
|
||||
class BlueScreenPanel
|
||||
{
|
||||
private static bool $initialized = false;
|
||||
|
||||
|
||||
public static function initialize(?BlueScreen $blueScreen = null): void
|
||||
{
|
||||
if (self::$initialized) {
|
||||
return;
|
||||
}
|
||||
self::$initialized = true;
|
||||
|
||||
$blueScreen ??= Tracy\Debugger::getBlueScreen();
|
||||
$blueScreen->addPanel([self::class, 'renderError']);
|
||||
$blueScreen->addAction([self::class, 'renderUnknownMacro']);
|
||||
if (
|
||||
version_compare(Tracy\Debugger::VERSION, '2.9.0', '>=')
|
||||
&& version_compare(Tracy\Debugger::VERSION, '3.0', '<')
|
||||
) {
|
||||
Tracy\Debugger::addSourceMapper([self::class, 'mapLatteSourceCode']);
|
||||
$blueScreen->addFileGenerator(fn(string $file) => substr($file, -6) === '.latte'
|
||||
? "{block content}\n\$END\$"
|
||||
: null);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static function renderError(?\Throwable $e): ?array
|
||||
{
|
||||
if ($e instanceof Latte\CompileException && $e->sourceName) {
|
||||
return [
|
||||
'tab' => 'Template',
|
||||
'panel' => (preg_match('#\n|\?#', $e->sourceName)
|
||||
? ''
|
||||
: '<p>'
|
||||
. (@is_file($e->sourceName) // @ - may trigger error
|
||||
? '<b>File:</b> ' . Helpers::editorLink($e->sourceName, $e->position?->line)
|
||||
: '<b>' . htmlspecialchars($e->sourceName . ($e->position?->line ? ':' . $e->position->line : '')) . '</b>')
|
||||
. '</p>')
|
||||
. '<pre class="code tracy-code"><div>'
|
||||
. BlueScreen::highlightLine(htmlspecialchars($e->sourceCode, ENT_IGNORE, 'UTF-8'), $e->position->line ?? 0, 15, $e->position->column ?? 0)
|
||||
. '</div></pre>',
|
||||
];
|
||||
|
||||
} elseif (
|
||||
$e
|
||||
&& ($file = $e->getFile())
|
||||
&& (version_compare(Tracy\Debugger::VERSION, '2.9.0', '<'))
|
||||
&& ($mapped = self::mapLatteSourceCode($file, $e->getLine()))
|
||||
) {
|
||||
return [
|
||||
'tab' => 'Template',
|
||||
'panel' => '<p><b>File:</b> ' . Helpers::editorLink($mapped['file'], $mapped['line']) . '</p>'
|
||||
. ($mapped['line']
|
||||
? BlueScreen::highlightFile($mapped['file'], $mapped['line'])
|
||||
: ''),
|
||||
];
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
public static function renderUnknownMacro(?\Throwable $e): ?array
|
||||
{
|
||||
if (
|
||||
$e instanceof Latte\CompileException
|
||||
&& $e->sourceName
|
||||
&& @is_file($e->sourceName) // @ - may trigger error
|
||||
&& (preg_match('#Unknown tag (\{\w+)\}, did you mean (\{\w+)\}\?#A', $e->getMessage(), $m)
|
||||
|| preg_match('#Unknown attribute (n:\w+), did you mean (n:\w+)\?#A', $e->getMessage(), $m))
|
||||
) {
|
||||
return [
|
||||
'link' => Helpers::editorUri($e->sourceName, $e->position?->line, 'fix', $m[1], $m[2]),
|
||||
'label' => 'fix it',
|
||||
];
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
/** @return array{file: string, line: int, label: string, active: bool} */
|
||||
public static function mapLatteSourceCode(string $file, int $line): ?array
|
||||
{
|
||||
if (!strpos($file, '.latte--')) {
|
||||
return null;
|
||||
}
|
||||
|
||||
$lines = file($file);
|
||||
if (
|
||||
!preg_match('#^/\*\* source: (\S+\.latte)#m', implode('', array_slice($lines, 0, 10)), $m)
|
||||
|| !@is_file($m[1]) // @ - may trigger error
|
||||
) {
|
||||
return null;
|
||||
}
|
||||
|
||||
$file = $m[1];
|
||||
$line = $line && preg_match('#/\* line (\d+) \*/#', $lines[$line - 1], $m) ? (int) $m[1] : 0;
|
||||
return ['file' => $file, 'line' => $line, 'label' => 'Latte', 'active' => true];
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,122 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Bridges\Tracy;
|
||||
|
||||
use Latte\Engine;
|
||||
use Latte\Extension;
|
||||
use Latte\Runtime\Template;
|
||||
use Tracy;
|
||||
|
||||
|
||||
/**
|
||||
* Bar panel for Tracy 2.x
|
||||
* @internal
|
||||
*/
|
||||
class LattePanel implements Tracy\IBarPanel
|
||||
{
|
||||
public bool $dumpParameters = true;
|
||||
|
||||
/** @var Template[] */
|
||||
private array $templates = [];
|
||||
private array $list;
|
||||
private ?string $name = null;
|
||||
|
||||
|
||||
/** @deprecated use TracyExtension see https://bit.ly/46flfDi */
|
||||
public static function initialize(Engine $latte, ?string $name = null, ?Tracy\Bar $bar = null): void
|
||||
{
|
||||
$bar ??= Tracy\Debugger::getBar();
|
||||
$bar->addPanel(new self($latte, $name));
|
||||
}
|
||||
|
||||
|
||||
/** @deprecated use TracyExtension see https://bit.ly/46flfDi */
|
||||
public function __construct(?Engine $latte = null, ?string $name = null)
|
||||
{
|
||||
$this->name = $name;
|
||||
if ($latte) {
|
||||
$latte->addExtension(
|
||||
new class ($this->templates) extends Extension {
|
||||
public function __construct(
|
||||
private array &$templates,
|
||||
) {
|
||||
}
|
||||
|
||||
|
||||
public function beforeRender(Template $template): void
|
||||
{
|
||||
$this->templates[] = $template;
|
||||
}
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function addTemplate(Template $template): void
|
||||
{
|
||||
$this->templates[] = $template;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Renders tab.
|
||||
*/
|
||||
public function getTab(): ?string
|
||||
{
|
||||
if (!$this->templates) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return Tracy\Helpers::capture(function () {
|
||||
$name = $this->name ?? basename(reset($this->templates)->getName());
|
||||
require __DIR__ . '/templates/LattePanel.tab.phtml';
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Renders panel.
|
||||
*/
|
||||
public function getPanel(): string
|
||||
{
|
||||
$this->list = [];
|
||||
$this->buildList($this->templates[0]);
|
||||
|
||||
return Tracy\Helpers::capture(function () {
|
||||
$list = $this->list;
|
||||
$dumpParameters = $this->dumpParameters;
|
||||
require __DIR__ . '/templates/LattePanel.panel.phtml';
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
private function buildList(Template $template, int $depth = 0, int $count = 1): void
|
||||
{
|
||||
$this->list[] = (object) [
|
||||
'template' => $template,
|
||||
'depth' => $depth,
|
||||
'count' => $count,
|
||||
'phpFile' => (new \ReflectionObject($template))->getFileName(),
|
||||
];
|
||||
|
||||
$children = $counter = [];
|
||||
foreach ($this->templates as $t) {
|
||||
if ($t->getReferringTemplate() === $template) {
|
||||
$children[$t->getName()] = $t;
|
||||
@$counter[$t->getName()]++;
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($children as $name => $t) {
|
||||
$this->buildList($t, $depth + 1, $counter[$name]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Bridges\Tracy;
|
||||
|
||||
use Latte\Extension;
|
||||
use Latte\Runtime\Template;
|
||||
use Tracy;
|
||||
|
||||
|
||||
/**
|
||||
* Extension for Tracy 2.x
|
||||
*/
|
||||
class TracyExtension extends Extension
|
||||
{
|
||||
private LattePanel $panel;
|
||||
|
||||
|
||||
public function __construct(?string $name = null)
|
||||
{
|
||||
BlueScreenPanel::initialize();
|
||||
$this->panel = new LattePanel(name: $name);
|
||||
Tracy\Debugger::getBar()->addPanel($this->panel);
|
||||
}
|
||||
|
||||
|
||||
public function beforeRender(Template $template): void
|
||||
{
|
||||
$this->panel->addTemplate($template);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,101 @@
|
|||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Bridges\Tracy;
|
||||
|
||||
use Latte\Runtime\Template;
|
||||
use Tracy\Dumper;
|
||||
use Tracy\Helpers;
|
||||
|
||||
$colors = [
|
||||
'include' => '#00000052',
|
||||
'extends' => '#cd1c1c7d',
|
||||
'import' => '#17c35b8f',
|
||||
'includeblock' => '#17c35b8f',
|
||||
'embed' => '#4f1ccd7d',
|
||||
'sandbox' => 'black',
|
||||
];
|
||||
|
||||
?>
|
||||
|
||||
<style class="tracy-debug">
|
||||
#tracy-debug .LattePanel td {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
#tracy-debug .LattePanel-php {
|
||||
background: #8993be;
|
||||
color: white;
|
||||
border-radius: 79px;
|
||||
padding: 1px 4px 3px 4px;
|
||||
font-size: 75%;
|
||||
font-style: italic;
|
||||
font-weight: bold;
|
||||
vertical-align: text-top;
|
||||
opacity: .5;
|
||||
margin-left: 2ex;
|
||||
}
|
||||
|
||||
#tracy-debug .LattePanel-type {
|
||||
border-radius: 2px;
|
||||
padding: 2px 4px;
|
||||
font-size: 80%;
|
||||
color: white;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#tracy-debug .LattePanel-include {
|
||||
background: #00000052;
|
||||
}
|
||||
|
||||
#tracy-debug .LattePanel-extends {
|
||||
background: #cd1c1c7d;
|
||||
}
|
||||
|
||||
#tracy-debug .LattePanel-import,
|
||||
#tracy-debug .LattePanel-includeblock {
|
||||
background: #17c35b8f;
|
||||
}
|
||||
|
||||
#tracy-debug .LattePanel-embed {
|
||||
background: #4f1ccd7d;
|
||||
}
|
||||
|
||||
#tracy-debug .LattePanel-sandbox {
|
||||
background: black;
|
||||
}
|
||||
</style>
|
||||
|
||||
<h1>Rendered Templates</h1>
|
||||
|
||||
<div class="tracy-inner LattePanel">
|
||||
<table>
|
||||
<?php foreach ($list as $item): ?>
|
||||
<tr>
|
||||
<td>
|
||||
<?php if ($item->template->getReferenceType()): ?>
|
||||
<span style="margin-left: <?= $item->depth * 4 ?>ex"></span>└
|
||||
<span class="LattePanel-type" style="background: <?= $colors[$item->template->getReferenceType()] ?>"><?= Helpers::escapeHtml($item->template->getReferenceType()) ?></span>
|
||||
<?php endif ?>
|
||||
|
||||
<?= Helpers::editorLink($item->template->getName()) ?>
|
||||
|
||||
<a href="<?= Helpers::escapeHtml(Helpers::editorUri($item->phpFile)) ?>" class="LattePanel-php">php</a>
|
||||
</td>
|
||||
|
||||
<td><?= $item->count > 1 ? $item->count . '×' : '' ?></td>
|
||||
</tr>
|
||||
<?php endforeach ?>
|
||||
</table>
|
||||
|
||||
<?php if ($dumpParameters): ?>
|
||||
<h2>Parameters</h2>
|
||||
|
||||
<div class="tracy-inner">
|
||||
<table class="tracy-sortable tracy-dump-seamless">
|
||||
<?php foreach (reset($list)->template->getParameters() as $k => $v): ?>
|
||||
<tr><th><?= Helpers::escapeHtml($k) ?></th><td><?= Dumper::toHtml($v, [Dumper::LIVE => true]) ?></td></tr>
|
||||
<?php endforeach ?>
|
||||
</div>
|
||||
<?php endif ?>
|
||||
</div>
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Bridges\Tracy;
|
||||
|
||||
use Tracy\Helpers;
|
||||
|
||||
?>
|
||||
<span title="Latte Templates">
|
||||
<svg viewBox="0 0 1793.77 1538.57">
|
||||
<path fill="#F1A443" d="M934.87 1166.46c41.84,-2.2 75.14,-17.07 99.91,-44.59 24.77,-27.53 37.16,-58.9 37.16,-94.13 0,-38.53 -12.38,-71.01 -37.16,-97.43 -24.77,-26.42 -58.08,-45.14 -99.91,-56.15l0 292.31zm-67.71 -786.08c-40.74,2.2 -72.66,15.41 -95.79,39.63 -23.12,24.22 -34.68,52.29 -34.68,84.22 0,33.03 11.29,63.03 33.86,90 22.57,26.98 54.77,43.21 96.61,48.72l0 -262.58zm0 1013.98l0 -64.41c-61.66,-5.5 -114.22,-15.97 -157.71,-31.38 -43.49,-15.41 -79.27,-37.43 -107.34,-66.06 -28.07,-28.63 -48.72,-64.13 -61.93,-106.52 -13.21,-42.39 -19.82,-92.76 -19.82,-151.11l198.18 0c4.4,35.23 10.18,64.41 17.34,87.53 7.16,23.12 16.51,41.84 28.07,56.15 11.56,14.31 25.6,25.05 42.11,32.2 16.51,7.16 36.88,12.39 61.1,15.69l0 -318.73c-55.05,-14.31 -102.94,-30.55 -143.67,-48.72 -40.74,-18.16 -74.59,-39.63 -101.57,-64.41 -26.97,-24.77 -47.34,-53.4 -61.1,-85.88 -13.76,-32.48 -20.64,-71.29 -20.64,-116.43 0,-42.93 8.26,-83.39 24.77,-121.38 16.51,-37.98 39.36,-71.29 68.53,-99.91 29.18,-28.63 63.58,-51.19 103.22,-67.71 39.63,-16.51 83.12,-25.32 130.46,-26.42l0 -72.67 67.71 0 0 72.67c203.68,6.6 310.47,113.4 320.38,320.38l-194.87 0c-5.5,-59.45 -18.44,-99.91 -38.81,-121.38 -20.37,-21.47 -49.27,-33.31 -86.7,-35.51l0 284.05c73.76,24.22 132.94,47.89 177.53,71.01 44.59,23.12 78.72,47.61 102.39,73.49 23.67,25.87 39.36,54.22 47.07,85.05 7.71,30.83 11.56,66.61 11.56,107.34 0,48.44 -7.98,92.2 -23.94,131.29 -15.97,39.08 -38.81,72.94 -68.54,101.56 -29.72,28.63 -65.5,51.2 -107.34,67.71 -41.84,16.51 -88.08,25.87 -138.72,28.07l0 64.41 -67.71 0z"/>
|
||||
<path fill="#5F4D36" d="M462.33 1411.31c-54.32,0 -98.33,-4.78 -132.03,-14.33 -33.7,-9.56 -59.85,-24.14 -78.46,-43.76 -18.61,-19.62 -30.93,-44.51 -36.97,-74.69 -6.04,-30.18 -9.05,-65.38 -9.05,-105.62 0,-9.05 0.5,-22.13 1.51,-39.23 1.01,-17.1 1.76,-35.21 2.27,-54.32 0.5,-19.11 1.26,-36.97 2.26,-53.56 1.01,-16.6 1.51,-28.42 1.51,-35.46 0,-58.34 -8.8,-99.08 -26.41,-122.22 -17.6,-23.13 -50.05,-34.7 -97.33,-34.7l0 -129.76c47.28,0 79.72,-11.82 97.33,-35.46 17.6,-23.64 26.41,-64.63 26.41,-122.97 0,-7.04 -0.5,-18.86 -1.51,-35.46 -1.01,-16.6 -1.76,-33.95 -2.26,-52.06 -0.5,-18.11 -1.26,-35.71 -2.27,-52.81 -1.01,-17.1 -1.51,-30.18 -1.51,-39.23 0,-40.24 3.02,-75.45 9.05,-105.62 6.03,-30.18 18.36,-55.08 36.97,-74.69 18.61,-19.62 44.76,-34.2 78.46,-43.76 33.7,-9.56 77.71,-14.34 132.03,-14.34l55.83 0 0 123.73 -33.2 0c-44.26,0 -74.18,7.04 -89.78,21.12 -15.59,14.08 -23.39,38.73 -23.39,73.94 0,45.27 1.51,90.03 4.53,134.29 3.02,44.26 4.53,89.02 4.53,134.29 0,21.12 -4.53,40.49 -13.58,58.09 -9.05,17.6 -20.87,33.19 -35.46,46.77 -14.59,13.58 -31.69,24.4 -51.3,32.44 -19.62,8.05 -39.98,13.58 -61.11,16.6 21.12,3.02 41.49,8.55 61.11,16.59 19.61,8.05 36.72,18.86 51.3,32.44 14.59,13.58 26.41,29.17 35.46,46.77 9.05,17.6 13.58,36.97 13.58,58.09 0,45.27 -1.51,90.28 -4.53,135.04 -3.02,44.76 -4.53,89.78 -4.53,135.05 0,35.21 7.79,59.85 23.39,73.94 15.59,14.08 45.52,21.12 89.78,21.12l33.2 0 0 123.73 -55.83 0z"/>
|
||||
<path fill="#5F4D36" d="M1275.61 1411.31l0 -123.73 33.2 0c44.26,0 74.19,-7.04 89.78,-21.12 15.59,-14.08 23.39,-38.73 23.39,-73.94 0,-45.27 -1.51,-90.28 -4.53,-135.05 -3.02,-44.76 -4.53,-89.78 -4.53,-135.04 0,-21.12 4.53,-40.49 13.58,-58.09 9.05,-17.6 20.87,-33.19 35.46,-46.77 14.59,-13.58 31.69,-24.4 51.3,-32.44 19.61,-8.05 39.98,-13.58 61.11,-16.59 -21.12,-3.02 -41.5,-8.55 -61.11,-16.6 -19.62,-8.05 -36.72,-18.86 -51.3,-32.44 -14.59,-13.58 -26.41,-29.17 -35.46,-46.77 -9.05,-17.6 -13.58,-36.97 -13.58,-58.09 0,-45.27 1.51,-90.03 4.53,-134.29 3.02,-44.26 4.53,-89.02 4.53,-134.29 0,-35.21 -7.8,-59.85 -23.39,-73.94 -15.59,-14.08 -45.52,-21.12 -89.78,-21.12l-33.2 0 0 -123.73 55.83 0c54.32,0 98.33,4.78 132.03,14.34 33.7,9.55 59.85,24.14 78.46,43.76 18.61,19.61 30.93,44.51 36.97,74.69 6.03,30.17 9.05,65.38 9.05,105.62 0,9.05 -0.5,22.13 -1.51,39.23 -1.01,17.1 -1.76,34.7 -2.26,52.81 -0.5,18.11 -1.26,35.46 -2.27,52.06 -1.01,16.59 -1.51,28.41 -1.51,35.46 0,58.34 8.8,99.33 26.41,122.97 17.6,23.64 50.04,35.46 97.32,35.46l0 129.76c-47.28,0 -79.72,11.57 -97.32,34.7 -17.6,23.14 -26.41,63.88 -26.41,122.22 0,7.04 0.5,18.86 1.51,35.46 1.01,16.6 1.76,34.45 2.27,53.56 0.5,19.11 1.26,37.22 2.26,54.32 1.01,17.1 1.51,30.18 1.51,39.23 0,40.24 -3.02,75.44 -9.05,105.62 -6.04,30.18 -18.36,55.07 -36.97,74.69 -18.61,19.61 -44.76,34.2 -78.46,43.76 -33.7,9.55 -77.7,14.33 -132.03,14.33l-55.83 0z"/>
|
||||
</svg><span class="tracy-label"><?= Helpers::escapeHtml($name) ?></span>
|
||||
</span>
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Compiler;
|
||||
|
||||
use Latte\Compiler\Nodes\Php\ExpressionNode;
|
||||
use Latte\Compiler\Nodes\Php\ParameterNode;
|
||||
use Latte\Compiler\Nodes\Php\Scalar;
|
||||
|
||||
|
||||
/** @internal */
|
||||
final class Block
|
||||
{
|
||||
public string $method;
|
||||
public string $content;
|
||||
public string $escaping;
|
||||
|
||||
/** @var ParameterNode[] */
|
||||
public array $parameters = [];
|
||||
|
||||
|
||||
public function __construct(
|
||||
public /*readonly*/ ExpressionNode $name,
|
||||
public /*readonly*/ int|string $layer,
|
||||
public /*readonly*/ Tag $tag,
|
||||
) {
|
||||
}
|
||||
|
||||
|
||||
public function isDynamic(): bool
|
||||
{
|
||||
return !$this->name instanceof Scalar\StringNode
|
||||
&& !$this->name instanceof Scalar\IntegerNode;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,268 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Compiler;
|
||||
|
||||
use Latte\Compiler\Nodes\Html\ElementNode;
|
||||
use Latte\ContentType;
|
||||
use Latte\Runtime\Filters;
|
||||
|
||||
|
||||
/**
|
||||
* Context-aware escaping.
|
||||
*/
|
||||
final class Escaper
|
||||
{
|
||||
public const
|
||||
Text = 'text',
|
||||
JavaScript = 'js',
|
||||
Css = 'css',
|
||||
ICal = 'ical',
|
||||
Url = 'url';
|
||||
|
||||
public const
|
||||
HtmlText = 'html',
|
||||
HtmlComment = 'html/comment',
|
||||
HtmlBogusTag = 'html/bogus',
|
||||
HtmlRawText = 'html/raw',
|
||||
HtmlTag = 'html/tag',
|
||||
HtmlAttribute = 'html/attr';
|
||||
|
||||
private const Convertors = [
|
||||
self::Text => [
|
||||
self::HtmlText => 'escapeHtmlText',
|
||||
self::HtmlAttribute => 'escapeHtmlAttr',
|
||||
self::HtmlAttribute . '/' . self::JavaScript => 'escapeHtmlAttr',
|
||||
self::HtmlAttribute . '/' . self::Css => 'escapeHtmlAttr',
|
||||
self::HtmlAttribute . '/' . self::Url => 'escapeHtmlAttr',
|
||||
self::HtmlComment => 'escapeHtmlComment',
|
||||
'xml' => 'escapeXml',
|
||||
'xml/attr' => 'escapeXml',
|
||||
],
|
||||
self::JavaScript => [
|
||||
self::HtmlText => 'escapeHtmlText',
|
||||
self::HtmlAttribute => 'escapeHtmlAttr',
|
||||
self::HtmlAttribute . '/' . self::JavaScript => 'escapeHtmlAttr',
|
||||
self::HtmlRawText . '/' . self::JavaScript => 'convertJSToHtmlRawText',
|
||||
self::HtmlComment => 'escapeHtmlComment',
|
||||
],
|
||||
self::Css => [
|
||||
self::HtmlText => 'escapeHtmlText',
|
||||
self::HtmlAttribute => 'escapeHtmlAttr',
|
||||
self::HtmlAttribute . '/' . self::Css => 'escapeHtmlAttr',
|
||||
self::HtmlRawText . '/' . self::Css => 'convertJSToHtmlRawText',
|
||||
self::HtmlComment => 'escapeHtmlComment',
|
||||
],
|
||||
self::HtmlText => [
|
||||
self::HtmlAttribute => 'convertHtmlToHtmlAttr',
|
||||
self::HtmlAttribute . '/' . self::JavaScript => 'convertHtmlToHtmlAttr',
|
||||
self::HtmlAttribute . '/' . self::Css => 'convertHtmlToHtmlAttr',
|
||||
self::HtmlAttribute . '/' . self::Url => 'convertHtmlToHtmlAttr',
|
||||
self::HtmlComment => 'escapeHtmlComment',
|
||||
self::HtmlRawText . '/' . self::HtmlText => 'convertHtmlToHtmlRawText',
|
||||
],
|
||||
self::HtmlAttribute => [
|
||||
self::HtmlText => 'convertHtmlToHtmlAttr',
|
||||
],
|
||||
self::HtmlAttribute . '/' . self::Url => [
|
||||
self::HtmlText => 'convertHtmlToHtmlAttr',
|
||||
self::HtmlAttribute => 'nop',
|
||||
],
|
||||
];
|
||||
|
||||
private string $state = '';
|
||||
private string $tag = '';
|
||||
private string $subType = '';
|
||||
|
||||
|
||||
public function __construct(
|
||||
private string $contentType,
|
||||
) {
|
||||
$this->state = in_array($contentType, [ContentType::Html, ContentType::Xml], true)
|
||||
? self::HtmlText
|
||||
: $contentType;
|
||||
}
|
||||
|
||||
|
||||
public function getContentType(): string
|
||||
{
|
||||
return $this->contentType;
|
||||
}
|
||||
|
||||
|
||||
public function getState(): string
|
||||
{
|
||||
return $this->state;
|
||||
}
|
||||
|
||||
|
||||
public function export(): string
|
||||
{
|
||||
return $this->state . ($this->subType ? '/' . $this->subType : '');
|
||||
}
|
||||
|
||||
|
||||
public function enterContentType(string $type): void
|
||||
{
|
||||
$this->contentType = $this->state = $type;
|
||||
}
|
||||
|
||||
|
||||
public function enterHtmlText(ElementNode $el): void
|
||||
{
|
||||
if ($el->isRawText()) {
|
||||
$this->state = self::HtmlRawText;
|
||||
$this->subType = self::Text;
|
||||
if ($el->is('script')) {
|
||||
$type = $el->getAttribute('type');
|
||||
if ($type === true || $type === null
|
||||
|| is_string($type) && preg_match('#((application|text)/(((x-)?java|ecma|j|live)script|json)|application/.+\+json|text/plain|module|importmap|)$#Ai', $type)
|
||||
) {
|
||||
$this->subType = self::JavaScript;
|
||||
|
||||
} elseif (is_string($type) && preg_match('#text/((x-)?template|html)$#Ai', $type)) {
|
||||
$this->subType = self::HtmlText;
|
||||
}
|
||||
|
||||
} elseif ($el->is('style')) {
|
||||
$this->subType = self::Css;
|
||||
}
|
||||
|
||||
} else {
|
||||
$this->state = self::HtmlText;
|
||||
$this->subType = '';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function enterHtmlTag(string $name): void
|
||||
{
|
||||
$this->state = self::HtmlTag;
|
||||
$this->tag = strtolower($name);
|
||||
}
|
||||
|
||||
|
||||
public function enterHtmlRaw(string $subType): void
|
||||
{
|
||||
$this->state = self::HtmlRawText;
|
||||
$this->subType = $subType;
|
||||
}
|
||||
|
||||
|
||||
public function enterHtmlAttribute(?string $name = null): void
|
||||
{
|
||||
$this->state = self::HtmlAttribute;
|
||||
$this->subType = '';
|
||||
|
||||
if ($this->contentType === ContentType::Html && is_string($name)) {
|
||||
$name = strtolower($name);
|
||||
if (str_starts_with($name, 'on')) {
|
||||
$this->subType = self::JavaScript;
|
||||
} elseif ($name === 'style') {
|
||||
$this->subType = self::Css;
|
||||
} elseif ((in_array($name, ['href', 'src', 'action', 'formaction'], true)
|
||||
|| ($name === 'data' && $this->tag === 'object'))
|
||||
) {
|
||||
$this->subType = self::Url;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function enterHtmlBogusTag(): void
|
||||
{
|
||||
$this->state = self::HtmlBogusTag;
|
||||
}
|
||||
|
||||
|
||||
public function enterHtmlComment(): void
|
||||
{
|
||||
$this->state = self::HtmlComment;
|
||||
}
|
||||
|
||||
|
||||
public function escape(string $str): string
|
||||
{
|
||||
return match ($this->contentType) {
|
||||
ContentType::Html => match ($this->state) {
|
||||
self::HtmlText => 'LR\Filters::escapeHtmlText(' . $str . ')',
|
||||
self::HtmlTag => 'LR\Filters::escapeHtmlTag(' . $str . ')',
|
||||
self::HtmlAttribute => match ($this->subType) {
|
||||
'',
|
||||
self::Url => 'LR\Filters::escapeHtmlAttr(' . $str . ')',
|
||||
self::JavaScript => 'LR\Filters::escapeHtmlAttr(LR\Filters::escapeJs(' . $str . '))',
|
||||
self::Css => 'LR\Filters::escapeHtmlAttr(LR\Filters::escapeCss(' . $str . '))',
|
||||
},
|
||||
self::HtmlComment => 'LR\Filters::escapeHtmlComment(' . $str . ')',
|
||||
self::HtmlBogusTag => 'LR\Filters::escapeHtml(' . $str . ')',
|
||||
self::HtmlRawText => match ($this->subType) {
|
||||
self::Text => 'LR\Filters::convertJSToHtmlRawText(' . $str . ')', // sanitization, escaping is not possible
|
||||
self::HtmlText => 'LR\Filters::escapeHtmlRawTextHtml(' . $str . ')',
|
||||
self::JavaScript => 'LR\Filters::escapeJs(' . $str . ')',
|
||||
self::Css => 'LR\Filters::escapeCss(' . $str . ')',
|
||||
},
|
||||
default => throw new \LogicException("Unknown context $this->contentType, $this->state."),
|
||||
},
|
||||
ContentType::Xml => match ($this->state) {
|
||||
self::HtmlText,
|
||||
self::HtmlBogusTag => 'LR\Filters::escapeXml(' . $str . ')',
|
||||
self::HtmlAttribute => 'LR\Filters::escapeXml(' . $str . ')',
|
||||
self::HtmlComment => 'LR\Filters::escapeHtmlComment(' . $str . ')',
|
||||
self::HtmlTag => 'LR\Filters::escapeXmlTag(' . $str . ')',
|
||||
default => throw new \LogicException("Unknown context $this->contentType, $this->state."),
|
||||
},
|
||||
ContentType::JavaScript => 'LR\Filters::escapeJs(' . $str . ')',
|
||||
ContentType::Css => 'LR\Filters::escapeCss(' . $str . ')',
|
||||
ContentType::ICal => 'LR\Filters::escapeIcal(' . $str . ')',
|
||||
ContentType::Text => '($this->filters->escape)(' . $str . ')',
|
||||
default => throw new \LogicException("Unknown content-type $this->contentType."),
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
public function escapeMandatory(string $str): string
|
||||
{
|
||||
return match ($this->contentType) {
|
||||
ContentType::Html => match ($this->state) {
|
||||
self::HtmlAttribute => "LR\\Filters::escapeHtmlQuotes($str)",
|
||||
self::HtmlRawText => match ($this->subType) {
|
||||
self::HtmlText => 'LR\Filters::convertHtmlToHtmlRawText(' . $str . ')',
|
||||
default => "LR\\Filters::convertJSToHtmlRawText($str)",
|
||||
},
|
||||
self::HtmlComment => 'LR\Filters::escapeHtmlComment(' . $str . ')',
|
||||
default => $str,
|
||||
},
|
||||
ContentType::Xml => match ($this->state) {
|
||||
self::HtmlAttribute => "LR\\Filters::escapeHtmlQuotes($str)",
|
||||
self::HtmlComment => 'LR\Filters::escapeHtmlComment(' . $str . ')',
|
||||
default => $str,
|
||||
},
|
||||
default => $str,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
public function check(string $str): string
|
||||
{
|
||||
if ($this->state === self::HtmlAttribute && $this->subType === self::Url) {
|
||||
$str = 'LR\Filters::safeUrl(' . $str . ')';
|
||||
}
|
||||
return $str;
|
||||
}
|
||||
|
||||
|
||||
public static function getConvertor(string $source, string $dest): ?callable
|
||||
{
|
||||
return match (true) {
|
||||
$source === $dest => [Filters::class, 'nop'],
|
||||
isset(self::Convertors[$source][$dest]) => [Filters::class, self::Convertors[$source][$dest]],
|
||||
default => null,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,129 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Compiler;
|
||||
|
||||
use Latte\Compiler\Nodes\Php\ArgumentNode;
|
||||
use Latte\Compiler\Nodes\Php\Expression;
|
||||
use Latte\Compiler\Nodes\Php\ExpressionNode;
|
||||
use Latte\Compiler\Nodes\Php\IdentifierNode;
|
||||
use Latte\Compiler\Nodes\Php\NameNode;
|
||||
use Latte\Compiler\Nodes\Php\Scalar;
|
||||
|
||||
|
||||
/** @deprecated */
|
||||
final class ExpressionBuilder
|
||||
{
|
||||
public function __construct(
|
||||
private /*readonly*/ ExpressionNode|NameNode $expr,
|
||||
) {
|
||||
}
|
||||
|
||||
|
||||
public static function variable(string $name): self
|
||||
{
|
||||
return new self(new Expression\VariableNode(ltrim($name, '$')));
|
||||
}
|
||||
|
||||
|
||||
public static function class(string $name): self
|
||||
{
|
||||
return new self(new NameNode($name));
|
||||
}
|
||||
|
||||
|
||||
public static function function(ExpressionNode|self|string $name, array $args = []): self
|
||||
{
|
||||
$name = is_string($name)
|
||||
? new NameNode($name)
|
||||
: ($name instanceof self ? $name->expr : $name);
|
||||
return new self(new Expression\FunctionCallNode($name, self::arrayToArgs($args)));
|
||||
}
|
||||
|
||||
|
||||
public function property(ExpressionNode|self|string $name): self
|
||||
{
|
||||
$name = is_string($name)
|
||||
? new IdentifierNode($name)
|
||||
: ($name instanceof self ? $name->expr : $name);
|
||||
return new self(new Expression\PropertyFetchNode($this->expr, $name));
|
||||
}
|
||||
|
||||
|
||||
public function method(ExpressionNode|self|string $name, array $args = []): self
|
||||
{
|
||||
$name = is_string($name)
|
||||
? new IdentifierNode($name)
|
||||
: ($name instanceof self ? $name->expr : $name);
|
||||
return new self(new Expression\MethodCallNode($this->expr, $name, self::arrayToArgs($args)));
|
||||
}
|
||||
|
||||
|
||||
public function staticMethod(ExpressionNode|self|string $name, array $args = []): self
|
||||
{
|
||||
$name = is_string($name)
|
||||
? new IdentifierNode($name)
|
||||
: ($name instanceof self ? $name->expr : $name);
|
||||
return new self(new Expression\StaticMethodCallNode($this->expr, $name, self::arrayToArgs($args)));
|
||||
}
|
||||
|
||||
|
||||
public function build(): ExpressionNode|NameNode
|
||||
{
|
||||
return $this->expr;
|
||||
}
|
||||
|
||||
|
||||
public static function valueToNode(bool|int|float|string|array|null|ExpressionNode $value): ExpressionNode
|
||||
{
|
||||
return match (true) {
|
||||
$value === null => new Scalar\NullNode,
|
||||
is_bool($value) => new Scalar\BooleanNode($value),
|
||||
is_int($value) => new Scalar\IntegerNode($value),
|
||||
is_float($value) => new Scalar\FloatNode($value),
|
||||
is_string($value) => new Scalar\StringNode($value),
|
||||
is_array($value) => self::arrayToNode($value),
|
||||
default => $value, // ExpressionNode
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
private static function arrayToNode(array $arr): Expression\ArrayNode
|
||||
{
|
||||
$node = new Expression\ArrayNode;
|
||||
$lastKey = -1;
|
||||
foreach ($arr as $key => $val) {
|
||||
if ($lastKey !== null && ++$lastKey === $key) {
|
||||
$node->items[] = new Nodes\Php\ArrayItemNode(self::valueToNode($val));
|
||||
} else {
|
||||
$lastKey = null;
|
||||
$node->items[] = new Nodes\Php\ArrayItemNode(self::valueToNode($val), self::valueToNode($key));
|
||||
}
|
||||
}
|
||||
|
||||
return $node;
|
||||
}
|
||||
|
||||
|
||||
/** @return ArgumentNode[] */
|
||||
private static function arrayToArgs(array $arr): array
|
||||
{
|
||||
$args = [];
|
||||
foreach ($arr as $key => $arg) {
|
||||
$args[] = $arg instanceof ArgumentNode
|
||||
? $arg
|
||||
: new ArgumentNode(
|
||||
self::valueToNode($arg),
|
||||
name: is_string($key) ? new IdentifierNode($key) : null,
|
||||
);
|
||||
}
|
||||
|
||||
return $args;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Compiler;
|
||||
|
||||
|
||||
/**
|
||||
* @implements \IteratorAggregate<Node>
|
||||
*/
|
||||
abstract class Node implements \IteratorAggregate
|
||||
{
|
||||
public ?Position $position = null;
|
||||
|
||||
|
||||
abstract public function print(PrintContext $context): string;
|
||||
|
||||
|
||||
/** @return \Generator<self> */
|
||||
abstract public function &getIterator(): \Generator;
|
||||
}
|
||||
|
|
@ -0,0 +1,128 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Compiler;
|
||||
|
||||
use Latte\Compiler\Nodes\Php;
|
||||
use Latte\Compiler\Nodes\Php\Expression;
|
||||
use Latte\Compiler\Nodes\Php\ExpressionNode;
|
||||
use Latte\Compiler\Nodes\Php\Scalar;
|
||||
|
||||
|
||||
final class NodeHelpers
|
||||
{
|
||||
/** @return Node[] */
|
||||
public static function find(Node $node, callable $filter): array
|
||||
{
|
||||
$found = [];
|
||||
(new NodeTraverser)
|
||||
->traverse($node, enter: function (Node $node) use ($filter, &$found) {
|
||||
if ($filter($node)) {
|
||||
$found[] = $node;
|
||||
}
|
||||
});
|
||||
return $found;
|
||||
}
|
||||
|
||||
|
||||
public static function findFirst(Node $node, callable $filter): ?Node
|
||||
{
|
||||
$found = null;
|
||||
(new NodeTraverser)
|
||||
->traverse($node, enter: function (Node $node) use ($filter, &$found) {
|
||||
if ($filter($node)) {
|
||||
$found = $node;
|
||||
return NodeTraverser::StopTraversal;
|
||||
}
|
||||
});
|
||||
return $found;
|
||||
}
|
||||
|
||||
|
||||
public static function clone(Node $node): Node
|
||||
{
|
||||
return (new NodeTraverser)
|
||||
->traverse($node, enter: fn(Node $node) => clone $node);
|
||||
}
|
||||
|
||||
|
||||
public static function toValue(ExpressionNode $node, bool $constants = false): mixed
|
||||
{
|
||||
if ($node instanceof Scalar\BooleanNode
|
||||
|| $node instanceof Scalar\FloatNode
|
||||
|| $node instanceof Scalar\IntegerNode
|
||||
|| $node instanceof Scalar\StringNode
|
||||
) {
|
||||
return $node->value;
|
||||
|
||||
} elseif ($node instanceof Scalar\NullNode) {
|
||||
return null;
|
||||
|
||||
} elseif ($node instanceof Expression\ArrayNode) {
|
||||
$res = [];
|
||||
foreach ($node->items as $item) {
|
||||
$value = self::toValue($item->value, $constants);
|
||||
if ($item->key) {
|
||||
$key = $item->key instanceof Php\IdentifierNode
|
||||
? $item->key->name
|
||||
: self::toValue($item->key, $constants);
|
||||
$res[$key] = $value;
|
||||
|
||||
} elseif ($item->unpack) {
|
||||
$res = array_merge($res, $value);
|
||||
|
||||
} else {
|
||||
$res[] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
return $res;
|
||||
|
||||
} elseif ($node instanceof Expression\ConstantFetchNode && $constants) {
|
||||
$name = $node->name->toCodeString();
|
||||
return defined($name)
|
||||
? constant($name)
|
||||
: throw new \InvalidArgumentException("The constant '$name' is not defined.");
|
||||
|
||||
} elseif ($node instanceof Expression\ClassConstantFetchNode && $constants) {
|
||||
$class = $node->class instanceof Php\NameNode
|
||||
? $node->class->toCodeString()
|
||||
: self::toValue($node->class, $constants);
|
||||
$name = $class . '::' . $node->name->name;
|
||||
return defined($name)
|
||||
? constant($name)
|
||||
: throw new \InvalidArgumentException("The constant '$name' is not defined.");
|
||||
|
||||
} else {
|
||||
throw new \InvalidArgumentException('The expression cannot be converted to PHP value.');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static function toText(?Node $node): ?string
|
||||
{
|
||||
if ($node instanceof Nodes\FragmentNode) {
|
||||
$res = '';
|
||||
foreach ($node->children as $child) {
|
||||
if (($s = self::toText($child)) === null) {
|
||||
return null;
|
||||
}
|
||||
$res .= $s;
|
||||
}
|
||||
|
||||
return $res;
|
||||
}
|
||||
|
||||
return match (true) {
|
||||
$node instanceof Nodes\TextNode => $node->content,
|
||||
$node instanceof Nodes\NopNode => '',
|
||||
default => null,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,73 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Compiler;
|
||||
|
||||
|
||||
final class NodeTraverser
|
||||
{
|
||||
public const DontTraverseChildren = 1;
|
||||
public const StopTraversal = 2;
|
||||
|
||||
/** @var ?callable(Node): (Node|int|null) */
|
||||
private $enter;
|
||||
|
||||
/** @var ?callable(Node): (Node|int|null) */
|
||||
private $leave;
|
||||
|
||||
private bool $stop;
|
||||
|
||||
|
||||
public function traverse(Node $node, ?callable $enter = null, ?callable $leave = null): Node
|
||||
{
|
||||
$this->enter = $enter;
|
||||
$this->leave = $leave;
|
||||
$this->stop = false;
|
||||
return $this->traverseNode($node);
|
||||
}
|
||||
|
||||
|
||||
private function traverseNode(Node $node): Node
|
||||
{
|
||||
$children = true;
|
||||
if ($this->enter) {
|
||||
$res = ($this->enter)($node);
|
||||
if ($res instanceof Node) {
|
||||
$node = $res;
|
||||
|
||||
} elseif ($res === self::DontTraverseChildren) {
|
||||
$children = false;
|
||||
|
||||
} elseif ($res === self::StopTraversal) {
|
||||
$this->stop = true;
|
||||
$children = false;
|
||||
}
|
||||
}
|
||||
|
||||
if ($children) {
|
||||
foreach ($node as &$subnode) {
|
||||
$subnode = $this->traverseNode($subnode);
|
||||
if ($this->stop) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!$this->stop && $this->leave) {
|
||||
$res = ($this->leave)($node);
|
||||
if ($res instanceof Node) {
|
||||
$node = $res;
|
||||
} elseif ($res === self::StopTraversal) {
|
||||
$this->stop = true;
|
||||
}
|
||||
}
|
||||
|
||||
return $node;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Compiler\Nodes;
|
||||
|
||||
use Latte\Compiler\Node;
|
||||
|
||||
|
||||
abstract class AreaNode extends Node
|
||||
{
|
||||
}
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Compiler\Nodes;
|
||||
|
||||
use Latte\Compiler\Node;
|
||||
use Latte\Compiler\PrintContext;
|
||||
|
||||
|
||||
class AuxiliaryNode extends AreaNode
|
||||
{
|
||||
public function __construct(
|
||||
public /*readonly*/ \Closure $print,
|
||||
/** @var (?Node)[] */
|
||||
public array $nodes = [],
|
||||
) {
|
||||
(function (?Node ...$nodes) {})(...$nodes);
|
||||
}
|
||||
|
||||
|
||||
public function print(PrintContext $context): string
|
||||
{
|
||||
return ($this->print)($context, ...$this->nodes);
|
||||
}
|
||||
|
||||
|
||||
public function &getIterator(): \Generator
|
||||
{
|
||||
foreach ($this->nodes as &$node) {
|
||||
if ($node) {
|
||||
yield $node;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,69 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Compiler\Nodes;
|
||||
|
||||
use Latte\Compiler\PrintContext;
|
||||
|
||||
|
||||
final class FragmentNode extends AreaNode
|
||||
{
|
||||
/** @var AreaNode[] */
|
||||
public array $children = [];
|
||||
|
||||
|
||||
/** @param AreaNode[] $children */
|
||||
public function __construct(array $children = [])
|
||||
{
|
||||
foreach ($children as $child) {
|
||||
$this->append($child);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function append(AreaNode $node): static
|
||||
{
|
||||
if ($node instanceof self) {
|
||||
$this->children = array_merge($this->children, $node->children);
|
||||
} elseif (!$node instanceof NopNode) {
|
||||
$this->children[] = $node;
|
||||
}
|
||||
$this->position ??= $node->position;
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
public function simplify(bool $allowsNull = true): ?AreaNode
|
||||
{
|
||||
return match (true) {
|
||||
!$this->children => $allowsNull ? null : $this,
|
||||
count($this->children) === 1 => $this->children[0],
|
||||
default => $this,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
public function print(PrintContext $context): string
|
||||
{
|
||||
$res = '';
|
||||
foreach ($this->children as $child) {
|
||||
$res .= $child->print($context);
|
||||
}
|
||||
|
||||
return $res;
|
||||
}
|
||||
|
||||
|
||||
public function &getIterator(): \Generator
|
||||
{
|
||||
foreach ($this->children as &$item) {
|
||||
yield $item;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,66 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Compiler\Nodes\Html;
|
||||
|
||||
use Latte\Compiler\NodeHelpers;
|
||||
use Latte\Compiler\Nodes\AreaNode;
|
||||
use Latte\Compiler\Nodes\FragmentNode;
|
||||
use Latte\Compiler\Nodes\TextNode;
|
||||
use Latte\Compiler\Position;
|
||||
use Latte\Compiler\PrintContext;
|
||||
|
||||
|
||||
class AttributeNode extends AreaNode
|
||||
{
|
||||
public function __construct(
|
||||
public AreaNode $name,
|
||||
public ?AreaNode $value = null,
|
||||
public ?string $quote = null,
|
||||
public ?Position $position = null,
|
||||
) {
|
||||
}
|
||||
|
||||
|
||||
public function print(PrintContext $context): string
|
||||
{
|
||||
$res = $this->name->print($context);
|
||||
if (!$this->value) {
|
||||
return $res;
|
||||
}
|
||||
|
||||
$res .= "echo '=';";
|
||||
$quote = $this->quote ?? ($this->value instanceof TextNode ? null : '"');
|
||||
$res .= $quote ? 'echo ' . var_export($quote, true) . ';' : '';
|
||||
|
||||
$escaper = $context->beginEscape();
|
||||
$escaper->enterHtmlAttribute(NodeHelpers::toText($this->name));
|
||||
if ($this->value instanceof FragmentNode && $escaper->export() === 'html/attr/url') {
|
||||
foreach ($this->value->children as $child) {
|
||||
$res .= $child->print($context);
|
||||
$escaper->enterHtmlAttribute(null);
|
||||
}
|
||||
} else {
|
||||
$res .= $this->value->print($context);
|
||||
}
|
||||
|
||||
$context->restoreEscape();
|
||||
$res .= $quote ? 'echo ' . var_export($quote, true) . ';' : '';
|
||||
return $res;
|
||||
}
|
||||
|
||||
|
||||
public function &getIterator(): \Generator
|
||||
{
|
||||
yield $this->name;
|
||||
if ($this->value) {
|
||||
yield $this->value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Compiler\Nodes\Html;
|
||||
|
||||
use Latte\Compiler\Nodes\AreaNode;
|
||||
use Latte\Compiler\Position;
|
||||
use Latte\Compiler\PrintContext;
|
||||
|
||||
|
||||
/**
|
||||
* HTML bogus tag.
|
||||
*/
|
||||
class BogusTagNode extends AreaNode
|
||||
{
|
||||
public function __construct(
|
||||
public string $openDelimiter,
|
||||
public AreaNode $content,
|
||||
public string $endDelimiter,
|
||||
public ?Position $position = null,
|
||||
) {
|
||||
}
|
||||
|
||||
|
||||
public function print(PrintContext $context): string
|
||||
{
|
||||
$res = 'echo ' . var_export($this->openDelimiter, true) . ';';
|
||||
$context->beginEscape()->enterHtmlBogusTag();
|
||||
$res .= $this->content->print($context);
|
||||
$context->restoreEscape();
|
||||
$res .= 'echo ' . var_export($this->endDelimiter, true) . ';';
|
||||
return $res;
|
||||
}
|
||||
|
||||
|
||||
public function &getIterator(): \Generator
|
||||
{
|
||||
yield $this->content;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Compiler\Nodes\Html;
|
||||
|
||||
use Latte\Compiler\Nodes\AreaNode;
|
||||
use Latte\Compiler\Position;
|
||||
use Latte\Compiler\PrintContext;
|
||||
|
||||
|
||||
class CommentNode extends AreaNode
|
||||
{
|
||||
public function __construct(
|
||||
public AreaNode $content,
|
||||
public ?Position $position = null,
|
||||
) {
|
||||
}
|
||||
|
||||
|
||||
public function print(PrintContext $context): string
|
||||
{
|
||||
$context->beginEscape()->enterHtmlComment();
|
||||
$content = $this->content->print($context);
|
||||
$context->restoreEscape();
|
||||
return "echo '<!--'; $content echo '-->';";
|
||||
}
|
||||
|
||||
|
||||
public function &getIterator(): \Generator
|
||||
{
|
||||
yield $this->content;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,152 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Compiler\Nodes\Html;
|
||||
|
||||
use Latte\Compiler\Node;
|
||||
use Latte\Compiler\NodeHelpers;
|
||||
use Latte\Compiler\Nodes;
|
||||
use Latte\Compiler\Nodes\AreaNode;
|
||||
use Latte\Compiler\Nodes\AuxiliaryNode;
|
||||
use Latte\Compiler\Nodes\FragmentNode;
|
||||
use Latte\Compiler\Position;
|
||||
use Latte\Compiler\PrintContext;
|
||||
use Latte\Compiler\Tag;
|
||||
use Latte\ContentType;
|
||||
|
||||
|
||||
/**
|
||||
* HTML element node.
|
||||
*/
|
||||
class ElementNode extends AreaNode
|
||||
{
|
||||
public ?Nodes\Php\ExpressionNode $variableName = null;
|
||||
public ?FragmentNode $attributes = null;
|
||||
public bool $selfClosing = false;
|
||||
public ?AreaNode $content = null;
|
||||
|
||||
/** @var Tag[] */
|
||||
public array $nAttributes = [];
|
||||
|
||||
/** n:tag & n:tag- support */
|
||||
public AreaNode $tagNode;
|
||||
public bool $captureTagName = false;
|
||||
public bool $breakable = false;
|
||||
private ?string $endTagVar;
|
||||
|
||||
|
||||
public function __construct(
|
||||
public /*readonly*/ string $name,
|
||||
public ?Position $position = null,
|
||||
public /*readonly*/ ?self $parent = null,
|
||||
public ?\stdClass $data = null,
|
||||
public string $contentType = ContentType::Html,
|
||||
) {
|
||||
$this->data ??= new \stdClass;
|
||||
$this->tagNode = new AuxiliaryNode(\Closure::fromCallable([$this, 'printStartTag']));
|
||||
}
|
||||
|
||||
|
||||
public function getAttribute(string $name): string|Node|bool|null
|
||||
{
|
||||
foreach ($this->attributes?->children as $child) {
|
||||
if ($child instanceof AttributeNode
|
||||
&& $child->name instanceof Nodes\TextNode
|
||||
&& strcasecmp($name, $child->name->content) === 0
|
||||
) {
|
||||
return NodeHelpers::toText($child->value) ?? $child->value ?? true;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
public function is(string $name): bool
|
||||
{
|
||||
return $this->contentType === ContentType::Html
|
||||
? strcasecmp($this->name, $name) === 0
|
||||
: $this->name === $name;
|
||||
}
|
||||
|
||||
|
||||
public function isRawText(): bool
|
||||
{
|
||||
return $this->contentType === ContentType::Html
|
||||
&& ($this->is('script') || $this->is('style'));
|
||||
}
|
||||
|
||||
|
||||
public function print(PrintContext $context): string
|
||||
{
|
||||
$res = $this->endTagVar = null;
|
||||
if ($this->captureTagName || $this->variableName) {
|
||||
$endTag = $this->endTagVar = '$ʟ_tag[' . $context->generateId() . ']';
|
||||
$res = "$this->endTagVar = '';";
|
||||
} else {
|
||||
$endTag = var_export('</' . $this->name . '>', true);
|
||||
}
|
||||
|
||||
$res .= $this->tagNode->print($context); // calls $this->printStartTag()
|
||||
|
||||
if ($this->content) {
|
||||
$context->beginEscape()->enterHtmlText($this);
|
||||
$content = $this->content->print($context);
|
||||
$context->restoreEscape();
|
||||
$res .= $this->breakable
|
||||
? 'try { ' . $content . ' } finally { echo ' . $endTag . '; } '
|
||||
: $content . 'echo ' . $endTag . ';';
|
||||
}
|
||||
|
||||
return $res;
|
||||
}
|
||||
|
||||
|
||||
private function printStartTag(PrintContext $context): string
|
||||
{
|
||||
$context->beginEscape()->enterHtmlTag($this->name);
|
||||
$res = "echo '<';";
|
||||
|
||||
if ($this->endTagVar) {
|
||||
$expr = $this->variableName
|
||||
? 'LR\Filters::safeTag('
|
||||
. $this->variableName->print($context)
|
||||
. ($this->contentType === ContentType::Xml ? ', true' : '')
|
||||
. ')'
|
||||
: var_export($this->name, true);
|
||||
$res .= "echo \$ʟ_tmp = $expr /* line {$this->position->line} */;"
|
||||
. "{$this->endTagVar} = '</' . \$ʟ_tmp . '>' . {$this->endTagVar};";
|
||||
} else {
|
||||
$res .= 'echo ' . var_export($this->name, true) . ';';
|
||||
}
|
||||
|
||||
foreach ($this->attributes?->children ?? [] as $attr) {
|
||||
$res .= $attr->print($context);
|
||||
}
|
||||
|
||||
$res .= "echo '" . ($this->selfClosing ? '/>' : '>') . "';";
|
||||
$context->restoreEscape();
|
||||
return $res;
|
||||
}
|
||||
|
||||
|
||||
public function &getIterator(): \Generator
|
||||
{
|
||||
yield $this->tagNode;
|
||||
if ($this->variableName) {
|
||||
yield $this->variableName;
|
||||
}
|
||||
if ($this->attributes) {
|
||||
yield $this->attributes;
|
||||
}
|
||||
if ($this->content) {
|
||||
yield $this->content;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Compiler\Nodes;
|
||||
|
||||
use Latte\Compiler\PrintContext;
|
||||
|
||||
|
||||
class NopNode extends AreaNode
|
||||
{
|
||||
public function print(PrintContext $context): string
|
||||
{
|
||||
return '';
|
||||
}
|
||||
|
||||
|
||||
public function &getIterator(): \Generator
|
||||
{
|
||||
false && yield;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Compiler\Nodes\Php;
|
||||
|
||||
use Latte\Compiler\Node;
|
||||
use Latte\Compiler\Position;
|
||||
use Latte\Compiler\PrintContext;
|
||||
|
||||
|
||||
class ArgumentNode extends Node
|
||||
{
|
||||
public function __construct(
|
||||
public ExpressionNode $value,
|
||||
public bool $byRef = false,
|
||||
public bool $unpack = false,
|
||||
public ?IdentifierNode $name = null,
|
||||
public ?Position $position = null,
|
||||
) {
|
||||
}
|
||||
|
||||
|
||||
public function print(PrintContext $context): string
|
||||
{
|
||||
return ($this->name ? $this->name . ': ' : '')
|
||||
. ($this->byRef ? '&' : '')
|
||||
. ($this->unpack ? '...' : '')
|
||||
. $this->value->print($context);
|
||||
}
|
||||
|
||||
|
||||
public function toArrayItem(): ArrayItemNode
|
||||
{
|
||||
return new ArrayItemNode($this->value, $this->name, $this->byRef, $this->unpack, $this->position);
|
||||
}
|
||||
|
||||
|
||||
public function &getIterator(): \Generator
|
||||
{
|
||||
if ($this->name) {
|
||||
yield $this->name;
|
||||
}
|
||||
yield $this->value;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,74 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Compiler\Nodes\Php;
|
||||
|
||||
use Latte\Compiler\Node;
|
||||
use Latte\Compiler\Position;
|
||||
use Latte\Compiler\PrintContext;
|
||||
|
||||
|
||||
class ArrayItemNode extends Node
|
||||
{
|
||||
public function __construct(
|
||||
public ExpressionNode $value,
|
||||
public ExpressionNode|IdentifierNode|null $key = null,
|
||||
public bool $byRef = false,
|
||||
public bool $unpack = false,
|
||||
public ?Position $position = null,
|
||||
) {
|
||||
}
|
||||
|
||||
|
||||
public function print(PrintContext $context): string
|
||||
{
|
||||
$key = match (true) {
|
||||
$this->key instanceof ExpressionNode => $this->key->print($context) . ' => ',
|
||||
$this->key instanceof IdentifierNode => $context->encodeString($this->key->name) . ' => ',
|
||||
$this->key === null => '',
|
||||
};
|
||||
return $key
|
||||
. ($this->byRef ? '&' : '')
|
||||
. ($this->unpack ? '...' : '')
|
||||
. $this->value->print($context);
|
||||
}
|
||||
|
||||
|
||||
public function toArgument(): ArgumentNode
|
||||
{
|
||||
$key = match (true) {
|
||||
$this->key instanceof Scalar\StringNode => new IdentifierNode($this->key->value),
|
||||
$this->key instanceof IdentifierNode => $this->key,
|
||||
$this->key === null => null,
|
||||
default => throw new \InvalidArgumentException('The expression used in the key cannot be converted to an argument.'),
|
||||
};
|
||||
return new ArgumentNode($this->value, $this->byRef, $this->unpack, $key, $this->position);
|
||||
}
|
||||
|
||||
|
||||
public function &getIterator(): \Generator
|
||||
{
|
||||
if ($this->key) {
|
||||
yield $this->key;
|
||||
}
|
||||
yield $this->value;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class_alias(ArrayItemNode::class, Expression\ArrayItemNode::class);
|
||||
|
||||
namespace Latte\Compiler\Nodes\Php\Expression;
|
||||
|
||||
if (false) {
|
||||
/** @deprecated use Latte\Compiler\Nodes\Php\ArrayItemNode */
|
||||
class ArrayItemNode
|
||||
{
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Compiler\Nodes\Php;
|
||||
|
||||
use Latte\Compiler\Node;
|
||||
use Latte\Compiler\Nodes\Php\Expression\VariableNode;
|
||||
use Latte\Compiler\Position;
|
||||
use Latte\Compiler\PrintContext;
|
||||
|
||||
|
||||
class ClosureUseNode extends Node
|
||||
{
|
||||
public function __construct(
|
||||
public VariableNode $var,
|
||||
public bool $byRef = false,
|
||||
public ?Position $position = null,
|
||||
) {
|
||||
}
|
||||
|
||||
|
||||
public function print(PrintContext $context): string
|
||||
{
|
||||
return ($this->byRef ? '&' : '') . $this->var->print($context);
|
||||
}
|
||||
|
||||
|
||||
public function &getIterator(): \Generator
|
||||
{
|
||||
yield $this->var;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Compiler\Nodes\Php;
|
||||
|
||||
use Latte\Compiler\Node;
|
||||
|
||||
|
||||
abstract class ComplexTypeNode extends Node
|
||||
{
|
||||
}
|
||||
41
vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/ArrayAccessNode.php
vendored
Normal file
41
vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/ArrayAccessNode.php
vendored
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Compiler\Nodes\Php\Expression;
|
||||
|
||||
use Latte\Compiler\Nodes\Php\ExpressionNode;
|
||||
use Latte\Compiler\Position;
|
||||
use Latte\Compiler\PrintContext;
|
||||
|
||||
|
||||
class ArrayAccessNode extends ExpressionNode
|
||||
{
|
||||
public function __construct(
|
||||
public ExpressionNode $expr,
|
||||
public ?ExpressionNode $index = null,
|
||||
public ?Position $position = null,
|
||||
) {
|
||||
}
|
||||
|
||||
|
||||
public function print(PrintContext $context): string
|
||||
{
|
||||
return $context->dereferenceExpr($this->expr)
|
||||
. '[' . ($this->index !== null ? $this->index->print($context) : '') . ']';
|
||||
}
|
||||
|
||||
|
||||
public function &getIterator(): \Generator
|
||||
{
|
||||
yield $this->expr;
|
||||
if ($this->index) {
|
||||
yield $this->index;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,68 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Compiler\Nodes\Php\Expression;
|
||||
|
||||
use Latte\Compiler\Nodes\Php\ArgumentNode;
|
||||
use Latte\Compiler\Nodes\Php\ArrayItemNode;
|
||||
use Latte\Compiler\Nodes\Php\ExpressionNode;
|
||||
use Latte\Compiler\Position;
|
||||
use Latte\Compiler\PrintContext;
|
||||
|
||||
|
||||
class ArrayNode extends ExpressionNode
|
||||
{
|
||||
public function __construct(
|
||||
/** @var array<ArrayItemNode> */
|
||||
public array $items = [],
|
||||
public ?Position $position = null,
|
||||
) {
|
||||
(function (ArrayItemNode ...$args) {})(...$items);
|
||||
}
|
||||
|
||||
|
||||
/** @return ArgumentNode[] */
|
||||
public function toArguments(): array
|
||||
{
|
||||
return array_map(fn(ArrayItemNode $item) => $item->toArgument(), $this->items);
|
||||
}
|
||||
|
||||
|
||||
public function print(PrintContext $context): string
|
||||
{
|
||||
// Converts [...$var] -> $var, because PHP 8.0 doesn't support unpacking with string keys
|
||||
if (PHP_VERSION_ID < 80100) {
|
||||
$res = '[';
|
||||
$merge = false;
|
||||
foreach ($this->items as $item) {
|
||||
if ($item === null) {
|
||||
$res .= ', ';
|
||||
} elseif ($item->unpack) {
|
||||
$res .= '], ' . $item->value->print($context) . ', [';
|
||||
$merge = true;
|
||||
} else {
|
||||
$res .= $item->print($context) . ', ';
|
||||
}
|
||||
}
|
||||
|
||||
$res = str_ends_with($res, ', ') ? substr($res, 0, -2) : $res;
|
||||
return $merge ? "array_merge($res])" : $res . ']';
|
||||
}
|
||||
|
||||
return '[' . $context->implode($this->items) . ']';
|
||||
}
|
||||
|
||||
|
||||
public function &getIterator(): \Generator
|
||||
{
|
||||
foreach ($this->items as &$item) {
|
||||
yield $item;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,53 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Compiler\Nodes\Php\Expression;
|
||||
|
||||
use Latte\CompileException;
|
||||
use Latte\Compiler\Nodes\Php\ExpressionNode;
|
||||
use Latte\Compiler\Nodes\Php\ListNode;
|
||||
use Latte\Compiler\Position;
|
||||
use Latte\Compiler\PrintContext;
|
||||
|
||||
|
||||
class AssignNode extends ExpressionNode
|
||||
{
|
||||
public function __construct(
|
||||
public ExpressionNode|ListNode $var,
|
||||
public ExpressionNode $expr,
|
||||
public bool $byRef = false,
|
||||
public ?Position $position = null,
|
||||
) {
|
||||
$this->validate();
|
||||
}
|
||||
|
||||
|
||||
public function print(PrintContext $context): string
|
||||
{
|
||||
$this->validate();
|
||||
return $context->infixOp($this, $this->var, $this->byRef ? ' = &' : ' = ', $this->expr);
|
||||
}
|
||||
|
||||
|
||||
public function validate(): void
|
||||
{
|
||||
if ($this->var instanceof ExpressionNode && !$this->var->isWritable()) {
|
||||
throw new CompileException('Cannot write to the expression: ' . $this->var->print(new PrintContext), $this->var->position);
|
||||
} elseif ($this->byRef && !$this->expr->isWritable()) {
|
||||
throw new CompileException('Cannot take reference to the expression: ' . $this->expr->print(new PrintContext), $this->expr->position);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function &getIterator(): \Generator
|
||||
{
|
||||
yield $this->var;
|
||||
yield $this->expr;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Compiler\Nodes\Php\Expression;
|
||||
|
||||
use Latte\CompileException;
|
||||
use Latte\Compiler\Nodes\Php\ExpressionNode;
|
||||
use Latte\Compiler\Position;
|
||||
use Latte\Compiler\PrintContext;
|
||||
|
||||
|
||||
class AssignOpNode extends ExpressionNode
|
||||
{
|
||||
private const Ops = ['+', '-', '*', '/', '.', '%', '&', '|', '^', '<<', '>>', '**', '??'];
|
||||
|
||||
|
||||
public function __construct(
|
||||
public ExpressionNode $var,
|
||||
public /*readonly*/ string $operator,
|
||||
public ExpressionNode $expr,
|
||||
public ?Position $position = null,
|
||||
) {
|
||||
if (!in_array($this->operator, self::Ops, true)) {
|
||||
throw new \InvalidArgumentException("Unexpected operator '$this->operator'");
|
||||
}
|
||||
$this->validate();
|
||||
}
|
||||
|
||||
|
||||
public function print(PrintContext $context): string
|
||||
{
|
||||
$this->validate();
|
||||
return $context->infixOp($this, $this->var, ' ' . $this->operator . '= ', $this->expr);
|
||||
}
|
||||
|
||||
|
||||
public function validate(): void
|
||||
{
|
||||
if (!$this->var->isWritable()) {
|
||||
throw new CompileException('Cannot write to the expression: ' . $this->var->print(new PrintContext), $this->var->position);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function &getIterator(): \Generator
|
||||
{
|
||||
yield $this->var;
|
||||
yield $this->expr;
|
||||
}
|
||||
}
|
||||
42
vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/AuxiliaryNode.php
vendored
Normal file
42
vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/AuxiliaryNode.php
vendored
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Compiler\Nodes\Php\Expression;
|
||||
|
||||
use Latte\Compiler\Node;
|
||||
use Latte\Compiler\Nodes\Php\ExpressionNode;
|
||||
use Latte\Compiler\PrintContext;
|
||||
|
||||
|
||||
class AuxiliaryNode extends ExpressionNode
|
||||
{
|
||||
public function __construct(
|
||||
public /*readonly*/ \Closure $print,
|
||||
/** @var (?Node)[] */
|
||||
public array $nodes = [],
|
||||
) {
|
||||
(function (?Node ...$nodes) {})(...$nodes);
|
||||
}
|
||||
|
||||
|
||||
public function print(PrintContext $context): string
|
||||
{
|
||||
return ($this->print)($context, ...$this->nodes);
|
||||
}
|
||||
|
||||
|
||||
public function &getIterator(): \Generator
|
||||
{
|
||||
foreach ($this->nodes as &$node) {
|
||||
if ($node) {
|
||||
yield $node;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,65 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Compiler\Nodes\Php\Expression;
|
||||
|
||||
use Latte\Compiler\Nodes\Php\ExpressionNode;
|
||||
use Latte\Compiler\Position;
|
||||
use Latte\Compiler\PrintContext;
|
||||
|
||||
|
||||
class BinaryOpNode extends ExpressionNode
|
||||
{
|
||||
private const Ops = ['||', '&&', 'or', 'and', 'xor', '&', '^', '.', '+', '-', '*', '/', '%', '<<', '>>', '**',
|
||||
'==', '!=', '===', '!==', '<=>', '<', '<=', '>', '>=', '??', ];
|
||||
|
||||
|
||||
public function __construct(
|
||||
public ExpressionNode $left,
|
||||
public /*readonly*/ string $operator,
|
||||
public ExpressionNode $right,
|
||||
public ?Position $position = null,
|
||||
) {
|
||||
if (!in_array(strtolower($this->operator), self::Ops, true)) {
|
||||
throw new \InvalidArgumentException("Unexpected operator '$this->operator'");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Creates nested BinaryOp nodes from a list of expressions.
|
||||
*/
|
||||
public static function nest(string $operator, ExpressionNode ...$exprs): ExpressionNode
|
||||
{
|
||||
$count = count($exprs);
|
||||
if ($count < 2) {
|
||||
return $exprs[0];
|
||||
}
|
||||
|
||||
$last = $exprs[0];
|
||||
for ($i = 1; $i < $count; $i++) {
|
||||
$last = new static($last, $operator, $exprs[$i]);
|
||||
}
|
||||
|
||||
return $last;
|
||||
}
|
||||
|
||||
|
||||
public function print(PrintContext $context): string
|
||||
{
|
||||
return $context->infixOp($this, $this->left, ' ' . $this->operator . ' ', $this->right);
|
||||
}
|
||||
|
||||
|
||||
public function &getIterator(): \Generator
|
||||
{
|
||||
yield $this->left;
|
||||
yield $this->right;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Compiler\Nodes\Php\Expression;
|
||||
|
||||
use Latte\Compiler\Nodes\Php\ExpressionNode;
|
||||
use Latte\Compiler\Position;
|
||||
use Latte\Compiler\PrintContext;
|
||||
|
||||
|
||||
class CastNode extends ExpressionNode
|
||||
{
|
||||
private const Types = ['int' => 1, 'float' => 1, 'string' => 1, 'array' => 1, 'object' => 1, 'bool' => 1];
|
||||
|
||||
|
||||
public function __construct(
|
||||
public /*readonly*/ string $type,
|
||||
public ExpressionNode $expr,
|
||||
public ?Position $position = null,
|
||||
) {
|
||||
if (!isset(self::Types[strtolower($this->type)])) {
|
||||
throw new \InvalidArgumentException("Unexpected type '$this->type'");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function print(PrintContext $context): string
|
||||
{
|
||||
return $context->prefixOp($this, '(' . $this->type . ') ', $this->expr);
|
||||
}
|
||||
|
||||
|
||||
public function &getIterator(): \Generator
|
||||
{
|
||||
yield $this->expr;
|
||||
}
|
||||
}
|
||||
42
vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/ClassConstantFetchNode.php
vendored
Normal file
42
vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/ClassConstantFetchNode.php
vendored
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Compiler\Nodes\Php\Expression;
|
||||
|
||||
use Latte\Compiler\Nodes\Php\ExpressionNode;
|
||||
use Latte\Compiler\Nodes\Php\IdentifierNode;
|
||||
use Latte\Compiler\Nodes\Php\NameNode;
|
||||
use Latte\Compiler\Position;
|
||||
use Latte\Compiler\PrintContext;
|
||||
|
||||
|
||||
class ClassConstantFetchNode extends ExpressionNode
|
||||
{
|
||||
public function __construct(
|
||||
public NameNode|ExpressionNode $class,
|
||||
public IdentifierNode|ExpressionNode $name,
|
||||
public ?Position $position = null,
|
||||
) {
|
||||
}
|
||||
|
||||
|
||||
public function print(PrintContext $context): string
|
||||
{
|
||||
return $context->dereferenceExpr($this->class)
|
||||
. '::'
|
||||
. $context->objectProperty($this->name);
|
||||
}
|
||||
|
||||
|
||||
public function &getIterator(): \Generator
|
||||
{
|
||||
yield $this->class;
|
||||
yield $this->name;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Compiler\Nodes\Php\Expression;
|
||||
|
||||
use Latte\Compiler\Nodes\Php\ExpressionNode;
|
||||
use Latte\Compiler\Position;
|
||||
use Latte\Compiler\PrintContext;
|
||||
|
||||
|
||||
class CloneNode extends ExpressionNode
|
||||
{
|
||||
public function __construct(
|
||||
public ExpressionNode $expr,
|
||||
public ?Position $position = null,
|
||||
) {
|
||||
}
|
||||
|
||||
|
||||
public function print(PrintContext $context): string
|
||||
{
|
||||
return 'clone ' . $this->expr->print($context);
|
||||
}
|
||||
|
||||
|
||||
public function &getIterator(): \Generator
|
||||
{
|
||||
yield $this->expr;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,74 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Compiler\Nodes\Php\Expression;
|
||||
|
||||
use Latte\Compiler\Nodes\Php;
|
||||
use Latte\Compiler\Nodes\Php\ClosureUseNode;
|
||||
use Latte\Compiler\Nodes\Php\ExpressionNode;
|
||||
use Latte\Compiler\Position;
|
||||
use Latte\Compiler\PrintContext;
|
||||
|
||||
|
||||
class ClosureNode extends ExpressionNode
|
||||
{
|
||||
public function __construct(
|
||||
public bool $byRef,
|
||||
/** @var Php\ParameterNode[] */
|
||||
public array $params,
|
||||
/** @var ClosureUseNode[] */
|
||||
public array $uses,
|
||||
public Php\IdentifierNode|Php\NameNode|Php\ComplexTypeNode|null $returnType = null,
|
||||
public ?ExpressionNode $expr = null,
|
||||
public ?Position $position = null,
|
||||
) {
|
||||
(function (Php\ParameterNode ...$args) {})(...$params);
|
||||
(function (ClosureUseNode ...$args) {})(...$uses);
|
||||
}
|
||||
|
||||
|
||||
public function print(PrintContext $context): string
|
||||
{
|
||||
$arrow = (bool) $this->expr;
|
||||
foreach ($this->uses as $use) {
|
||||
$arrow = $arrow && !$use->byRef;
|
||||
}
|
||||
|
||||
return $arrow
|
||||
? 'fn' . ($this->byRef ? '&' : '')
|
||||
. '(' . $context->implode($this->params) . ')'
|
||||
. ($this->returnType !== null ? ': ' . $this->returnType->print($context) : '')
|
||||
. ' => '
|
||||
. $this->expr->print($context)
|
||||
: 'function ' . ($this->byRef ? '&' : '')
|
||||
. '(' . $context->implode($this->params) . ')'
|
||||
. (!empty($this->uses) ? ' use (' . $context->implode($this->uses) . ')' : '')
|
||||
. ($this->returnType !== null ? ' : ' . $this->returnType->print($context) : '')
|
||||
. ($this->expr ? ' { return ' . $this->expr->print($context) . '; }' : ' {}');
|
||||
}
|
||||
|
||||
|
||||
public function &getIterator(): \Generator
|
||||
{
|
||||
foreach ($this->params as &$item) {
|
||||
yield $item;
|
||||
}
|
||||
|
||||
foreach ($this->uses as &$item) {
|
||||
yield $item;
|
||||
}
|
||||
|
||||
if ($this->returnType) {
|
||||
yield $this->returnType;
|
||||
}
|
||||
if ($this->expr) {
|
||||
yield $this->expr;
|
||||
}
|
||||
}
|
||||
}
|
||||
45
vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/ConstantFetchNode.php
vendored
Normal file
45
vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/ConstantFetchNode.php
vendored
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Compiler\Nodes\Php\Expression;
|
||||
|
||||
use Latte\Compiler\Nodes\Php\ExpressionNode;
|
||||
use Latte\Compiler\Nodes\Php\NameNode;
|
||||
use Latte\Compiler\Position;
|
||||
use Latte\Compiler\PrintContext;
|
||||
|
||||
|
||||
class ConstantFetchNode extends ExpressionNode
|
||||
{
|
||||
public function __construct(
|
||||
public NameNode $name,
|
||||
public ?Position $position = null,
|
||||
) {
|
||||
}
|
||||
|
||||
|
||||
public function print(PrintContext $context): string
|
||||
{
|
||||
if ($this->name->kind === NameNode::KindNormal) {
|
||||
return match ((string) $this->name) {
|
||||
'__LINE__' => (string) $this->position->line,
|
||||
'__FILE__' => '(is_file(self::Source) ? self::Source : null)',
|
||||
'__DIR__' => '(is_file(self::Source) ? dirname(self::Source) : null)',
|
||||
default => $this->name->print($context),
|
||||
};
|
||||
}
|
||||
return $this->name->print($context);
|
||||
}
|
||||
|
||||
|
||||
public function &getIterator(): \Generator
|
||||
{
|
||||
yield $this->name;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Compiler\Nodes\Php\Expression;
|
||||
|
||||
use Latte\Compiler\Nodes\Php\ExpressionNode;
|
||||
use Latte\Compiler\Position;
|
||||
use Latte\Compiler\PrintContext;
|
||||
|
||||
|
||||
class EmptyNode extends ExpressionNode
|
||||
{
|
||||
public function __construct(
|
||||
public ExpressionNode $expr,
|
||||
public ?Position $position = null,
|
||||
) {
|
||||
}
|
||||
|
||||
|
||||
public function print(PrintContext $context): string
|
||||
{
|
||||
return 'empty(' . $this->expr->print($context) . ')';
|
||||
}
|
||||
|
||||
|
||||
public function &getIterator(): \Generator
|
||||
{
|
||||
yield $this->expr;
|
||||
}
|
||||
}
|
||||
36
vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/ErrorSuppressNode.php
vendored
Normal file
36
vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/ErrorSuppressNode.php
vendored
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Compiler\Nodes\Php\Expression;
|
||||
|
||||
use Latte\Compiler\Nodes\Php\ExpressionNode;
|
||||
use Latte\Compiler\Position;
|
||||
use Latte\Compiler\PrintContext;
|
||||
|
||||
|
||||
class ErrorSuppressNode extends ExpressionNode
|
||||
{
|
||||
public function __construct(
|
||||
public ExpressionNode $expr,
|
||||
public ?Position $position = null,
|
||||
) {
|
||||
}
|
||||
|
||||
|
||||
public function print(PrintContext $context): string
|
||||
{
|
||||
return $context->prefixOp($this, '@', $this->expr);
|
||||
}
|
||||
|
||||
|
||||
public function &getIterator(): \Generator
|
||||
{
|
||||
yield $this->expr;
|
||||
}
|
||||
}
|
||||
39
vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/FilterCallNode.php
vendored
Normal file
39
vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/FilterCallNode.php
vendored
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Compiler\Nodes\Php\Expression;
|
||||
|
||||
use Latte\Compiler\Nodes\Php;
|
||||
use Latte\Compiler\Nodes\Php\ExpressionNode;
|
||||
use Latte\Compiler\Position;
|
||||
use Latte\Compiler\PrintContext;
|
||||
|
||||
|
||||
class FilterCallNode extends ExpressionNode
|
||||
{
|
||||
public function __construct(
|
||||
public ExpressionNode $expr,
|
||||
public Php\FilterNode $filter,
|
||||
public ?Position $position = null,
|
||||
) {
|
||||
}
|
||||
|
||||
|
||||
public function print(PrintContext $context): string
|
||||
{
|
||||
return $this->filter->printSimple($context, $this->expr->print($context));
|
||||
}
|
||||
|
||||
|
||||
public function &getIterator(): \Generator
|
||||
{
|
||||
yield $this->expr;
|
||||
yield $this->filter;
|
||||
}
|
||||
}
|
||||
45
vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/FunctionCallNode.php
vendored
Normal file
45
vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/FunctionCallNode.php
vendored
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Compiler\Nodes\Php\Expression;
|
||||
|
||||
use Latte\Compiler\Nodes\Php;
|
||||
use Latte\Compiler\Nodes\Php\ExpressionNode;
|
||||
use Latte\Compiler\Nodes\Php\NameNode;
|
||||
use Latte\Compiler\Position;
|
||||
use Latte\Compiler\PrintContext;
|
||||
|
||||
|
||||
class FunctionCallNode extends ExpressionNode
|
||||
{
|
||||
public function __construct(
|
||||
public NameNode|ExpressionNode $name,
|
||||
/** @var array<Php\ArgumentNode> */
|
||||
public array $args = [],
|
||||
public ?Position $position = null,
|
||||
) {
|
||||
(function (Php\ArgumentNode ...$args) {})(...$args);
|
||||
}
|
||||
|
||||
|
||||
public function print(PrintContext $context): string
|
||||
{
|
||||
return $context->callExpr($this->name)
|
||||
. '(' . $context->implode($this->args) . ')';
|
||||
}
|
||||
|
||||
|
||||
public function &getIterator(): \Generator
|
||||
{
|
||||
yield $this->name;
|
||||
foreach ($this->args as &$item) {
|
||||
yield $item;
|
||||
}
|
||||
}
|
||||
}
|
||||
39
vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/FunctionCallableNode.php
vendored
Normal file
39
vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/FunctionCallableNode.php
vendored
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Compiler\Nodes\Php\Expression;
|
||||
|
||||
use Latte\Compiler\Nodes\Php\ExpressionNode;
|
||||
use Latte\Compiler\Nodes\Php\NameNode;
|
||||
use Latte\Compiler\Position;
|
||||
use Latte\Compiler\PrintContext;
|
||||
|
||||
|
||||
class FunctionCallableNode extends ExpressionNode
|
||||
{
|
||||
public function __construct(
|
||||
public NameNode|ExpressionNode $name,
|
||||
public ?Position $position = null,
|
||||
) {
|
||||
}
|
||||
|
||||
|
||||
public function print(PrintContext $context): string
|
||||
{
|
||||
return PHP_VERSION_ID < 80100
|
||||
? $context->memberAsString($this->name)
|
||||
: $context->callExpr($this->name) . '(...)';
|
||||
}
|
||||
|
||||
|
||||
public function &getIterator(): \Generator
|
||||
{
|
||||
yield $this->name;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Compiler\Nodes\Php\Expression;
|
||||
|
||||
use Latte\Compiler\Nodes\Php\ExpressionNode;
|
||||
use Latte\Compiler\Position;
|
||||
use Latte\Compiler\PrintContext;
|
||||
|
||||
|
||||
class InNode extends ExpressionNode
|
||||
{
|
||||
public function __construct(
|
||||
public ExpressionNode $needle,
|
||||
public ExpressionNode $haystack,
|
||||
public ?Position $position = null,
|
||||
) {
|
||||
}
|
||||
|
||||
|
||||
public function print(PrintContext $context): string
|
||||
{
|
||||
return 'in_array('
|
||||
. $this->needle->print($context)
|
||||
. ', '
|
||||
. $this->haystack->print($context)
|
||||
. ', true)';
|
||||
}
|
||||
|
||||
|
||||
public function &getIterator(): \Generator
|
||||
{
|
||||
yield $this->needle;
|
||||
yield $this->haystack;
|
||||
}
|
||||
}
|
||||
40
vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/InstanceofNode.php
vendored
Normal file
40
vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/InstanceofNode.php
vendored
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Compiler\Nodes\Php\Expression;
|
||||
|
||||
use Latte\Compiler\Nodes\Php\ExpressionNode;
|
||||
use Latte\Compiler\Nodes\Php\NameNode;
|
||||
use Latte\Compiler\Position;
|
||||
use Latte\Compiler\PrintContext;
|
||||
|
||||
|
||||
class InstanceofNode extends ExpressionNode
|
||||
{
|
||||
public function __construct(
|
||||
public ExpressionNode $expr,
|
||||
public NameNode|ExpressionNode $class,
|
||||
public ?Position $position = null,
|
||||
) {
|
||||
}
|
||||
|
||||
|
||||
public function print(PrintContext $context): string
|
||||
{
|
||||
return $context->postfixOp($this, $this->expr, ' instanceof ')
|
||||
. $context->dereferenceExpr($this->class);
|
||||
}
|
||||
|
||||
|
||||
public function &getIterator(): \Generator
|
||||
{
|
||||
yield $this->expr;
|
||||
yield $this->class;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,54 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Compiler\Nodes\Php\Expression;
|
||||
|
||||
use Latte\CompileException;
|
||||
use Latte\Compiler\Nodes\Php\ExpressionNode;
|
||||
use Latte\Compiler\Position;
|
||||
use Latte\Compiler\PrintContext;
|
||||
|
||||
|
||||
class IssetNode extends ExpressionNode
|
||||
{
|
||||
public function __construct(
|
||||
/** @var ExpressionNode[] */
|
||||
public array $vars,
|
||||
public ?Position $position = null,
|
||||
) {
|
||||
$this->validate();
|
||||
}
|
||||
|
||||
|
||||
public function print(PrintContext $context): string
|
||||
{
|
||||
$this->validate();
|
||||
return 'isset(' . $context->implode($this->vars) . ')';
|
||||
}
|
||||
|
||||
|
||||
public function validate(): void
|
||||
{
|
||||
foreach ($this->vars as $var) {
|
||||
if (!$var instanceof ExpressionNode) {
|
||||
throw new \TypeError('Variable must be ExpressionNode, ' . get_debug_type($var) . ' given.');
|
||||
} elseif (!$var->isVariable()) {
|
||||
throw new CompileException('Cannot use isset() on expression: ' . $var->print(new PrintContext), $var->position);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function &getIterator(): \Generator
|
||||
{
|
||||
foreach ($this->vars as &$item) {
|
||||
yield $item;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Compiler\Nodes\Php\Expression;
|
||||
|
||||
use Latte\Compiler\Nodes\Php;
|
||||
use Latte\Compiler\Nodes\Php\MatchArmNode;
|
||||
use Latte\Compiler\Position;
|
||||
use Latte\Compiler\PrintContext;
|
||||
|
||||
|
||||
class MatchNode extends Php\ExpressionNode
|
||||
{
|
||||
public function __construct(
|
||||
public Php\ExpressionNode $cond,
|
||||
/** @var MatchArmNode[] */
|
||||
public array $arms = [],
|
||||
public ?Position $position = null,
|
||||
) {
|
||||
(function (MatchArmNode ...$args) {})(...$arms);
|
||||
}
|
||||
|
||||
|
||||
public function print(PrintContext $context): string
|
||||
{
|
||||
$res = 'match (' . $this->cond->print($context) . ') {';
|
||||
foreach ($this->arms as $node) {
|
||||
$res .= "\n" . $node->print($context) . ',';
|
||||
}
|
||||
|
||||
$res .= "\n}";
|
||||
return $res;
|
||||
}
|
||||
|
||||
|
||||
public function &getIterator(): \Generator
|
||||
{
|
||||
yield $this->cond;
|
||||
foreach ($this->arms as &$item) {
|
||||
yield $item;
|
||||
}
|
||||
}
|
||||
}
|
||||
50
vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/MethodCallNode.php
vendored
Normal file
50
vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/MethodCallNode.php
vendored
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Compiler\Nodes\Php\Expression;
|
||||
|
||||
use Latte\Compiler\Nodes\Php;
|
||||
use Latte\Compiler\Nodes\Php\ExpressionNode;
|
||||
use Latte\Compiler\Nodes\Php\IdentifierNode;
|
||||
use Latte\Compiler\Position;
|
||||
use Latte\Compiler\PrintContext;
|
||||
|
||||
|
||||
class MethodCallNode extends ExpressionNode
|
||||
{
|
||||
public function __construct(
|
||||
public ExpressionNode $object,
|
||||
public IdentifierNode|ExpressionNode $name,
|
||||
/** @var array<Php\ArgumentNode> */
|
||||
public array $args = [],
|
||||
public bool $nullsafe = false,
|
||||
public ?Position $position = null,
|
||||
) {
|
||||
(function (Php\ArgumentNode ...$args) {})(...$args);
|
||||
}
|
||||
|
||||
|
||||
public function print(PrintContext $context): string
|
||||
{
|
||||
return $context->dereferenceExpr($this->object)
|
||||
. ($this->nullsafe ? '?->' : '->')
|
||||
. $context->objectProperty($this->name)
|
||||
. '(' . $context->implode($this->args) . ')';
|
||||
}
|
||||
|
||||
|
||||
public function &getIterator(): \Generator
|
||||
{
|
||||
yield $this->object;
|
||||
yield $this->name;
|
||||
foreach ($this->args as &$item) {
|
||||
yield $item;
|
||||
}
|
||||
}
|
||||
}
|
||||
42
vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/MethodCallableNode.php
vendored
Normal file
42
vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/MethodCallableNode.php
vendored
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Compiler\Nodes\Php\Expression;
|
||||
|
||||
use Latte\Compiler\Nodes\Php\ExpressionNode;
|
||||
use Latte\Compiler\Nodes\Php\IdentifierNode;
|
||||
use Latte\Compiler\Position;
|
||||
use Latte\Compiler\PrintContext;
|
||||
|
||||
|
||||
class MethodCallableNode extends ExpressionNode
|
||||
{
|
||||
public function __construct(
|
||||
public ExpressionNode $object,
|
||||
public IdentifierNode|ExpressionNode $name,
|
||||
public ?Position $position = null,
|
||||
) {
|
||||
}
|
||||
|
||||
|
||||
public function print(PrintContext $context): string
|
||||
{
|
||||
return PHP_VERSION_ID < 80100
|
||||
? '[' . $this->object->print($context) . ', ' . $context->memberAsString($this->name) . ']'
|
||||
: $context->dereferenceExpr($this->object)
|
||||
. '->' . $context->objectProperty($this->name) . '(...)';
|
||||
}
|
||||
|
||||
|
||||
public function &getIterator(): \Generator
|
||||
{
|
||||
yield $this->object;
|
||||
yield $this->name;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Compiler\Nodes\Php\Expression;
|
||||
|
||||
use Latte\Compiler\Nodes\Php;
|
||||
use Latte\Compiler\Nodes\Php\ExpressionNode;
|
||||
use Latte\Compiler\Nodes\Php\NameNode;
|
||||
use Latte\Compiler\Position;
|
||||
use Latte\Compiler\PrintContext;
|
||||
|
||||
|
||||
class NewNode extends ExpressionNode
|
||||
{
|
||||
public function __construct(
|
||||
public NameNode|ExpressionNode $class,
|
||||
/** @var Php\ArgumentNode[] */
|
||||
public array $args = [],
|
||||
public ?Position $position = null,
|
||||
) {
|
||||
(function (Php\ArgumentNode ...$args) {})(...$args);
|
||||
}
|
||||
|
||||
|
||||
public function print(PrintContext $context): string
|
||||
{
|
||||
return 'new ' . $context->dereferenceExpr($this->class)
|
||||
. ($this->args ? '(' . $context->implode($this->args) . ')' : '');
|
||||
}
|
||||
|
||||
|
||||
public function &getIterator(): \Generator
|
||||
{
|
||||
yield $this->class;
|
||||
foreach ($this->args as &$item) {
|
||||
yield $item;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Compiler\Nodes\Php\Expression;
|
||||
|
||||
use Latte\Compiler\Nodes\Php\ExpressionNode;
|
||||
use Latte\Compiler\Position;
|
||||
use Latte\Compiler\PrintContext;
|
||||
|
||||
|
||||
class NotNode extends ExpressionNode
|
||||
{
|
||||
public function __construct(
|
||||
public ExpressionNode $expr,
|
||||
public ?Position $position = null,
|
||||
) {
|
||||
}
|
||||
|
||||
|
||||
public function print(PrintContext $context): string
|
||||
{
|
||||
return $context->prefixOp($this, '!', $this->expr);
|
||||
}
|
||||
|
||||
|
||||
public function &getIterator(): \Generator
|
||||
{
|
||||
yield $this->expr;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,54 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Compiler\Nodes\Php\Expression;
|
||||
|
||||
use Latte\CompileException;
|
||||
use Latte\Compiler\Nodes\Php\ExpressionNode;
|
||||
use Latte\Compiler\Position;
|
||||
use Latte\Compiler\PrintContext;
|
||||
|
||||
|
||||
class PostOpNode extends ExpressionNode
|
||||
{
|
||||
private const Ops = ['++' => 1, '--' => 1];
|
||||
|
||||
|
||||
public function __construct(
|
||||
public ExpressionNode $var,
|
||||
public /*readonly*/ string $operator,
|
||||
public ?Position $position = null,
|
||||
) {
|
||||
if (!isset(self::Ops[$this->operator])) {
|
||||
throw new \InvalidArgumentException("Unexpected operator '$this->operator'");
|
||||
}
|
||||
$this->validate();
|
||||
}
|
||||
|
||||
|
||||
public function print(PrintContext $context): string
|
||||
{
|
||||
$this->validate();
|
||||
return $context->postfixOp($this, $this->var, $this->operator);
|
||||
}
|
||||
|
||||
|
||||
public function validate(): void
|
||||
{
|
||||
if (!$this->var->isWritable()) {
|
||||
throw new CompileException('Cannot write to the expression: ' . $this->var->print(new PrintContext), $this->var->position);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function &getIterator(): \Generator
|
||||
{
|
||||
yield $this->var;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,54 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Compiler\Nodes\Php\Expression;
|
||||
|
||||
use Latte\CompileException;
|
||||
use Latte\Compiler\Nodes\Php\ExpressionNode;
|
||||
use Latte\Compiler\Position;
|
||||
use Latte\Compiler\PrintContext;
|
||||
|
||||
|
||||
class PreOpNode extends ExpressionNode
|
||||
{
|
||||
private const Ops = ['++' => 1, '--' => 1];
|
||||
|
||||
|
||||
public function __construct(
|
||||
public ExpressionNode $var,
|
||||
public /*readonly*/ string $operator,
|
||||
public ?Position $position = null,
|
||||
) {
|
||||
if (!isset(self::Ops[$this->operator])) {
|
||||
throw new \InvalidArgumentException("Unexpected operator '$this->operator'");
|
||||
}
|
||||
$this->validate();
|
||||
}
|
||||
|
||||
|
||||
public function print(PrintContext $context): string
|
||||
{
|
||||
$this->validate();
|
||||
return $context->prefixOp($this, $this->operator, $this->var);
|
||||
}
|
||||
|
||||
|
||||
public function validate(): void
|
||||
{
|
||||
if (!$this->var->isWritable()) {
|
||||
throw new CompileException('Cannot write to the expression: ' . $this->var->print(new PrintContext), $this->var->position);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function &getIterator(): \Generator
|
||||
{
|
||||
yield $this->var;
|
||||
}
|
||||
}
|
||||
42
vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/PropertyFetchNode.php
vendored
Normal file
42
vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/PropertyFetchNode.php
vendored
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Compiler\Nodes\Php\Expression;
|
||||
|
||||
use Latte\Compiler\Nodes\Php\ExpressionNode;
|
||||
use Latte\Compiler\Nodes\Php\IdentifierNode;
|
||||
use Latte\Compiler\Position;
|
||||
use Latte\Compiler\PrintContext;
|
||||
|
||||
|
||||
class PropertyFetchNode extends ExpressionNode
|
||||
{
|
||||
public function __construct(
|
||||
public ExpressionNode $object,
|
||||
public IdentifierNode|ExpressionNode $name,
|
||||
public bool $nullsafe = false,
|
||||
public ?Position $position = null,
|
||||
) {
|
||||
}
|
||||
|
||||
|
||||
public function print(PrintContext $context): string
|
||||
{
|
||||
return $context->dereferenceExpr($this->object)
|
||||
. ($this->nullsafe ? '?->' : '->')
|
||||
. $context->objectProperty($this->name);
|
||||
}
|
||||
|
||||
|
||||
public function &getIterator(): \Generator
|
||||
{
|
||||
yield $this->object;
|
||||
yield $this->name;
|
||||
}
|
||||
}
|
||||
65
vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/StaticMethodCallNode.php
vendored
Normal file
65
vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/StaticMethodCallNode.php
vendored
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Compiler\Nodes\Php\Expression;
|
||||
|
||||
use Latte\Compiler\Nodes\Php;
|
||||
use Latte\Compiler\Nodes\Php\ExpressionNode;
|
||||
use Latte\Compiler\Nodes\Php\IdentifierNode;
|
||||
use Latte\Compiler\Nodes\Php\NameNode;
|
||||
use Latte\Compiler\Position;
|
||||
use Latte\Compiler\PrintContext;
|
||||
|
||||
|
||||
class StaticMethodCallNode extends ExpressionNode
|
||||
{
|
||||
public function __construct(
|
||||
public NameNode|ExpressionNode $class,
|
||||
public IdentifierNode|ExpressionNode $name,
|
||||
/** @var array<Php\ArgumentNode> */
|
||||
public array $args = [],
|
||||
public ?Position $position = null,
|
||||
) {
|
||||
(function (Php\ArgumentNode ...$args) {})(...$args);
|
||||
}
|
||||
|
||||
|
||||
public function print(PrintContext $context): string
|
||||
{
|
||||
$name = match (true) {
|
||||
$this->name instanceof VariableNode => $this->name->print($context),
|
||||
$this->name instanceof ExpressionNode => '{' . $this->name->print($context) . '}',
|
||||
default => $this->name,
|
||||
};
|
||||
return $context->dereferenceExpr($this->class)
|
||||
. '::'
|
||||
. $name
|
||||
. '(' . $context->implode($this->args) . ')';
|
||||
}
|
||||
|
||||
|
||||
public function &getIterator(): \Generator
|
||||
{
|
||||
yield $this->class;
|
||||
yield $this->name;
|
||||
foreach ($this->args as &$item) {
|
||||
yield $item;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class_alias(StaticMethodCallNode::class, StaticCallNode::class);
|
||||
|
||||
if (false) {
|
||||
/** @deprecated use Latte\Compiler\Nodes\Php\Expression\StaticMethodCallNode */
|
||||
class StaticCallNode
|
||||
{
|
||||
}
|
||||
}
|
||||
57
vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/StaticMethodCallableNode.php
vendored
Normal file
57
vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/StaticMethodCallableNode.php
vendored
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Compiler\Nodes\Php\Expression;
|
||||
|
||||
use Latte\Compiler\Nodes\Php\ExpressionNode;
|
||||
use Latte\Compiler\Nodes\Php\IdentifierNode;
|
||||
use Latte\Compiler\Nodes\Php\NameNode;
|
||||
use Latte\Compiler\Position;
|
||||
use Latte\Compiler\PrintContext;
|
||||
|
||||
|
||||
class StaticMethodCallableNode extends ExpressionNode
|
||||
{
|
||||
public function __construct(
|
||||
public NameNode|ExpressionNode $class,
|
||||
public IdentifierNode|ExpressionNode $name,
|
||||
public ?Position $position = null,
|
||||
) {
|
||||
}
|
||||
|
||||
|
||||
public function print(PrintContext $context): string
|
||||
{
|
||||
$name = match (true) {
|
||||
$this->name instanceof VariableNode => $this->name->print($context),
|
||||
$this->name instanceof ExpressionNode => '{' . $this->name->print($context) . '}',
|
||||
default => $this->name,
|
||||
};
|
||||
return PHP_VERSION_ID < 80100
|
||||
? '[' . $this->class->print($context) . ', ' . $context->memberAsString($this->name) . ']'
|
||||
: $context->dereferenceExpr($this->class) . '::' . $name . '(...)';
|
||||
}
|
||||
|
||||
|
||||
public function &getIterator(): \Generator
|
||||
{
|
||||
yield $this->class;
|
||||
yield $this->name;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class_alias(StaticMethodCallableNode::class, StaticCallableNode::class);
|
||||
|
||||
if (false) {
|
||||
/** @deprecated use Latte\Compiler\Nodes\Php\Expression\StaticMethodCallableNode */
|
||||
class StaticCallableNode
|
||||
{
|
||||
}
|
||||
}
|
||||
42
vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/StaticPropertyFetchNode.php
vendored
Normal file
42
vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/StaticPropertyFetchNode.php
vendored
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Compiler\Nodes\Php\Expression;
|
||||
|
||||
use Latte\Compiler\Nodes\Php\ExpressionNode;
|
||||
use Latte\Compiler\Nodes\Php\NameNode;
|
||||
use Latte\Compiler\Nodes\Php\VarLikeIdentifierNode;
|
||||
use Latte\Compiler\Position;
|
||||
use Latte\Compiler\PrintContext;
|
||||
|
||||
|
||||
class StaticPropertyFetchNode extends ExpressionNode
|
||||
{
|
||||
public function __construct(
|
||||
public NameNode|ExpressionNode $class,
|
||||
public VarLikeIdentifierNode|ExpressionNode $name,
|
||||
public ?Position $position = null,
|
||||
) {
|
||||
}
|
||||
|
||||
|
||||
public function print(PrintContext $context): string
|
||||
{
|
||||
return $context->dereferenceExpr($this->class)
|
||||
. '::$'
|
||||
. $context->objectProperty($this->name);
|
||||
}
|
||||
|
||||
|
||||
public function &getIterator(): \Generator
|
||||
{
|
||||
yield $this->class;
|
||||
yield $this->name;
|
||||
}
|
||||
}
|
||||
38
vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/TemporaryNode.php
vendored
Normal file
38
vendor/latte/latte/src/Latte/Compiler/Nodes/Php/Expression/TemporaryNode.php
vendored
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Compiler\Nodes\Php\Expression;
|
||||
|
||||
use Latte\Compiler\Nodes\Php\ExpressionNode;
|
||||
use Latte\Compiler\Nodes\Php\ListNode;
|
||||
use Latte\Compiler\PrintContext;
|
||||
|
||||
|
||||
/**
|
||||
* Only for parser needs.
|
||||
* @internal
|
||||
*/
|
||||
class TemporaryNode extends ExpressionNode
|
||||
{
|
||||
public function __construct(
|
||||
public ListNode|null $value,
|
||||
) {
|
||||
}
|
||||
|
||||
|
||||
public function print(PrintContext $context): string
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
public function &getIterator(): \Generator
|
||||
{
|
||||
yield;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Compiler\Nodes\Php\Expression;
|
||||
|
||||
use Latte\Compiler\Nodes\Php\ExpressionNode;
|
||||
use Latte\Compiler\Nodes\Php\NameNode;
|
||||
use Latte\Compiler\Position;
|
||||
use Latte\Compiler\PrintContext;
|
||||
|
||||
|
||||
class TernaryNode extends ExpressionNode
|
||||
{
|
||||
public function __construct(
|
||||
public ExpressionNode $cond,
|
||||
public ?ExpressionNode $if,
|
||||
public ?ExpressionNode $else,
|
||||
public ?Position $position = null,
|
||||
) {
|
||||
}
|
||||
|
||||
|
||||
public function print(PrintContext $context): string
|
||||
{
|
||||
return $context->infixOp(
|
||||
$this,
|
||||
$this->cond,
|
||||
' ?' . ($this->if !== null ? ' ' . $this->if->print($context) . ' ' : '') . ': ',
|
||||
$this->else ?? new NameNode('null'),
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
public function &getIterator(): \Generator
|
||||
{
|
||||
yield $this->cond;
|
||||
if ($this->if) {
|
||||
yield $this->if;
|
||||
}
|
||||
if ($this->else) {
|
||||
yield $this->else;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Latte (https://latte.nette.org)
|
||||
* Copyright (c) 2008 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Latte\Compiler\Nodes\Php\Expression;
|
||||
|
||||
use Latte\Compiler\Nodes\Php\ExpressionNode;
|
||||
use Latte\Compiler\Position;
|
||||
use Latte\Compiler\PrintContext;
|
||||
|
||||
|
||||
class UnaryOpNode extends ExpressionNode
|
||||
{
|
||||
private const Ops = ['+' => 1, '-' => 1, '~' => 1];
|
||||
|
||||
|
||||
public function __construct(
|
||||
public ExpressionNode $expr,
|
||||
public /*readonly*/ string $operator,
|
||||
public ?Position $position = null,
|
||||
) {
|
||||
if (!isset(self::Ops[$this->operator])) {
|
||||
throw new \InvalidArgumentException("Unexpected operator '$this->operator'");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function print(PrintContext $context): string
|
||||
{
|
||||
return $this->expr instanceof self || $this->expr instanceof PreOpNode
|
||||
? $this->operator . '(' . $this->expr->print($context) . ')' // Enforce -(-$expr) instead of --$expr
|
||||
: $context->prefixOp($this, $this->operator, $this->expr);
|
||||
}
|
||||
|
||||
|
||||
public function &getIterator(): \Generator
|
||||
{
|
||||
yield $this->expr;
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue