Kernel : Linux vmi616275.contaboserver.net 5.4.0-84-generic #94-Ubuntu SMP Thu Aug 26 20:27:37 UTC 2021 x86_64
Disable function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Safe mode : OFF
Host : diestoffstrasse.com | Server ip : 127.0.0.1 | Your ip : 127.0.0.1 | Time @ Server : 24 Aug 2025 08:04:43
MySQL : OFF | MSSQL : OFF | cURL : ON | Oracle : OFF | wget : ON | Perl : ON

/home/dev2.destoffenstraat.com/vendor-1/magento/framework/Setup/Patch/

HOME about upload exec mass file domain root vuln newfile newfolder kill me

File Path : /home/dev2.destoffenstraat.com/vendor-1/magento/framework/Setup/Patch/PatchReader.php

<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Framework\Setup\Patch; use Magento\Framework\Component\ComponentRegistrar; use Magento\Framework\Config\ReaderInterface; use Magento\Framework\Filesystem\Glob; use Magento\Framework\Module\Dir; /** * Allows to read all patches through the whole system */ class PatchReader { /** * Folder name, where patches are */ const SETUP_PATCH_FOLDER = 'Patch'; /** * @var ComponentRegistrar */ private $componentRegistrar; /** * @var string */ private $type; /** * @param ComponentRegistrar $componentRegistrar * @param string $type */ public function __construct( ComponentRegistrar $componentRegistrar, $type ) { $this->componentRegistrar = $componentRegistrar; $this->type = $type; } /** * Retrieve absolute path to modules patch folder * * @param string $modulePath * @return string */ private function getPatchFolder($modulePath) { return $modulePath . DIRECTORY_SEPARATOR . Dir::MODULE_SETUP_DIR . DIRECTORY_SEPARATOR . self::SETUP_PATCH_FOLDER; } /** * Retrieve module name prepared to usage in namespaces * * @param string $moduleName * @return string */ private function getModuleNameForNamespace($moduleName) { return str_replace('_', '\\', $moduleName); } /** * Depends on type we want to handle schema and data patches in different folders * * @return string */ private function getTypeFolder() { return ucfirst($this->type); } /** * Create array of class patch names from module name * * @param string $moduleName * @param string $modulePath * @return array */ private function getPatchClassesPerModule($moduleName, $modulePath) { $patchClasses = []; $patchesPath = $this->getPatchFolder($modulePath); $specificPatchPath = $patchesPath . DIRECTORY_SEPARATOR . $this->getTypeFolder(); $patchesMask = $specificPatchPath . DIRECTORY_SEPARATOR . '*.php'; foreach (Glob::glob($patchesMask) as $patchPath) { $moduleName = $this->getModuleNameForNamespace($moduleName); $patchClasses[] = $moduleName . '\\Setup\\' . self::SETUP_PATCH_FOLDER . '\\' . $this->getTypeFolder() . '\\' . basename($patchPath, '.php'); } return $patchClasses; } /** * @param string $moduleName * @return array */ public function read($moduleName) { $modulePath = $this->componentRegistrar->getPath(ComponentRegistrar::MODULE, $moduleName); $patches = $this->getPatchClassesPerModule($moduleName, $modulePath); return $patches; } }