Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php namespace Livewire\Features\SupportAutoInjectedAssets; use Illuminate\Foundation\H..
Decoded Output download
<?php
namespace Livewire\Features\SupportAutoInjectedAssets;
use Illuminate\Foundation\Http\Events\RequestHandled;
use Livewire\ComponentHook;
use Livewire\Features\SupportScriptsAndAssets\SupportScriptsAndAssets;
use Livewire\Mechanisms\FrontendAssets\FrontendAssets;
use function Livewire\on;
class SupportAutoInjectedAssets extends ComponentHook
{
static $hasRenderedAComponentThisRequest = false;
static $forceAssetInjection = false;
static function provide()
{
on('flush-state', function () {
static::$hasRenderedAComponentThisRequest = false;
static::$forceAssetInjection = false;
});
app('events')->listen(RequestHandled::class, function ($handled) {
// If this is a successful HTML response...
if (! str($handled->response->headers->get('content-type'))->contains('text/html')) return;
if (! method_exists($handled->response, 'status') || $handled->response->status() !== 200) return;
$assetsHead = '';
$assetsBody = '';
$assets = array_values(SupportScriptsAndAssets::getAssets());
// If there are additional head assets, inject those...
if (count($assets) > 0) {
foreach ($assets as $asset) {
$assetsHead .= $asset."
";
}
}
// If we're injecting Livewire assets...
if (static::shouldInjectLivewireAssets()) {
$assetsHead .= FrontendAssets::styles()."
";
$assetsBody .= FrontendAssets::scripts()."
";
}
if ($assetsHead === '' && $assetsBody === '') return;
$html = $handled->response->getContent();
if (str($html)->contains('</html>')) {
$originalContent = $handled->response->original;
$handled->response->setContent(static::injectAssets($html, $assetsHead, $assetsBody));
$handled->response->original = $originalContent;
}
});
}
protected static function shouldInjectLivewireAssets()
{
if (! static::$forceAssetInjection && config('livewire.inject_assets', true) === false) return false;
if ((! static::$hasRenderedAComponentThisRequest) && (! static::$forceAssetInjection)) return false;
if (app(FrontendAssets::class)->hasRenderedScripts) return false;
return true;
}
protected static function getLivewireAssets()
{
$livewireStyles = FrontendAssets::styles();
$livewireScripts = FrontendAssets::scripts();
}
public function dehydrate()
{
static::$hasRenderedAComponentThisRequest = true;
}
static function injectAssets($html, $assetsHead, $assetsBody)
{
$html = str($html);
if ($html->test('/<\s*\/\s*head\s*>/i') && $html->test('/<\s*\/\s*body\s*>/i')) {
return $html
->replaceMatches('/(<\s*\/\s*head\s*>)/i', $assetsHead.'$1')
->replaceMatches('/(<\s*\/\s*body\s*>)/i', $assetsBody.'$1')
->toString();
}
return $html
->replaceMatches('/(<\s*html(?:\s[^>])*>)/i', '$1'.$assetsHead)
->replaceMatches('/(<\s*\/\s*html\s*>)/i', $assetsBody.'$1')
->toString();
}
}
?>
Did this file decode correctly?
Original Code
<?php
namespace Livewire\Features\SupportAutoInjectedAssets;
use Illuminate\Foundation\Http\Events\RequestHandled;
use Livewire\ComponentHook;
use Livewire\Features\SupportScriptsAndAssets\SupportScriptsAndAssets;
use Livewire\Mechanisms\FrontendAssets\FrontendAssets;
use function Livewire\on;
class SupportAutoInjectedAssets extends ComponentHook
{
static $hasRenderedAComponentThisRequest = false;
static $forceAssetInjection = false;
static function provide()
{
on('flush-state', function () {
static::$hasRenderedAComponentThisRequest = false;
static::$forceAssetInjection = false;
});
app('events')->listen(RequestHandled::class, function ($handled) {
// If this is a successful HTML response...
if (! str($handled->response->headers->get('content-type'))->contains('text/html')) return;
if (! method_exists($handled->response, 'status') || $handled->response->status() !== 200) return;
$assetsHead = '';
$assetsBody = '';
$assets = array_values(SupportScriptsAndAssets::getAssets());
// If there are additional head assets, inject those...
if (count($assets) > 0) {
foreach ($assets as $asset) {
$assetsHead .= $asset."\n";
}
}
// If we're injecting Livewire assets...
if (static::shouldInjectLivewireAssets()) {
$assetsHead .= FrontendAssets::styles()."\n";
$assetsBody .= FrontendAssets::scripts()."\n";
}
if ($assetsHead === '' && $assetsBody === '') return;
$html = $handled->response->getContent();
if (str($html)->contains('</html>')) {
$originalContent = $handled->response->original;
$handled->response->setContent(static::injectAssets($html, $assetsHead, $assetsBody));
$handled->response->original = $originalContent;
}
});
}
protected static function shouldInjectLivewireAssets()
{
if (! static::$forceAssetInjection && config('livewire.inject_assets', true) === false) return false;
if ((! static::$hasRenderedAComponentThisRequest) && (! static::$forceAssetInjection)) return false;
if (app(FrontendAssets::class)->hasRenderedScripts) return false;
return true;
}
protected static function getLivewireAssets()
{
$livewireStyles = FrontendAssets::styles();
$livewireScripts = FrontendAssets::scripts();
}
public function dehydrate()
{
static::$hasRenderedAComponentThisRequest = true;
}
static function injectAssets($html, $assetsHead, $assetsBody)
{
$html = str($html);
if ($html->test('/<\s*\/\s*head\s*>/i') && $html->test('/<\s*\/\s*body\s*>/i')) {
return $html
->replaceMatches('/(<\s*\/\s*head\s*>)/i', $assetsHead.'$1')
->replaceMatches('/(<\s*\/\s*body\s*>)/i', $assetsBody.'$1')
->toString();
}
return $html
->replaceMatches('/(<\s*html(?:\s[^>])*>)/i', '$1'.$assetsHead)
->replaceMatches('/(<\s*\/\s*html\s*>)/i', $assetsBody.'$1')
->toString();
}
}
Function Calls
None |
Stats
MD5 | 52f4d2f9807dd4ee67d51e9b31d6da6c |
Eval Count | 0 |
Decode Time | 89 ms |