/var/www/vhosts/ihelp.ro/httpdocs/vendor/psy/psysh/src/CodeCleaner
NameSizeModeActions
AbstractClassPass.php23670644editdlrm
AssignThisVariablePass.php11140644editdlrm
CalledClassPass.php27360644editdlrm
CallTimePassByReferencePass.php16070644editdlrm
CodeCleanerPass.php4150644editdlrm
EmptyArrayDimFetchPass.php20250644editdlrm
ExitPass.php8590644editdlrm
FinalClassPass.php17810644editdlrm
FunctionContextPass.php15630644editdlrm
FunctionReturnInWriteContextPass.php27350644editdlrm
ImplicitReturnPass.php42370644editdlrm
InstanceOfPass.php19570644editdlrm
IssetPass.php14010644editdlrm
LabelContextPass.php26380644editdlrm
LeavePsyshAlonePass.php9920644editdlrm
ListPass.php33410644editdlrm
LoopContextPass.php36940644editdlrm
MagicConstantsPass.php10680644editdlrm
NamespaceAwarePass.php19600644editdlrm
NamespacePass.php24850644editdlrm
NoReturnValue.php8280644editdlrm
PassableByReferencePass.php42020644editdlrm
RequirePass.php46650644editdlrm
ReturnTypePass.php38080644editdlrm
StrictTypesPass.php27340644editdlrm
UseStatementPass.php45130644editdlrm
ValidClassNamePass.php100900644editdlrm
ValidConstructorPass.php40230644editdlrm
ValidFunctionNamePass.php24190644editdlrm
Edit: /var/www/vhosts/ihelp.ro/httpdocs/vendor/psy/psysh/src/CodeCleaner/RequirePass.php (4665B)
isRequireNode($origNode)) { return; } $node = clone $origNode; /* * rewrite * * $foo = require $bar * * to * * $foo = require \Psy\CodeCleaner\RequirePass::resolve($bar) */ $node->expr = new StaticCall( new FullyQualifiedName(self::class), 'resolve', [new Arg($origNode->expr), new Arg(new LNumber($origNode->getLine()))], $origNode->getAttributes() ); return $node; } /** * Runtime validation that $file can be resolved as an include path. * * If $file can be resolved, return $file. Otherwise throw a fatal error exception. * * If $file collides with a path in the currently running PsySH phar, it will be resolved * relative to the include path, to prevent PHP from grabbing the phar version of the file. * * @throws FatalErrorException when unable to resolve include path for $file * @throws ErrorException if $file is empty and E_WARNING is included in error_reporting level * * @param string $file * @param int $lineNumber Line number of the original require expression * * @return string Exactly the same as $file, unless $file collides with a path in the currently running phar */ public static function resolve($file, $lineNumber = null): string { $file = (string) $file; if ($file === '') { // @todo Shell::handleError would be better here, because we could // fake the file and line number, but we can't call it statically. // So we're duplicating some of the logics here. if (\E_WARNING & \error_reporting()) { ErrorException::throwException(\E_WARNING, 'Filename cannot be empty', null, $lineNumber); } // @todo trigger an error as fallback? this is pretty ugly… // trigger_error('Filename cannot be empty', E_USER_WARNING); } $resolvedPath = \stream_resolve_include_path($file); if ($file === '' || !$resolvedPath) { $msg = \sprintf("Failed opening required '%s'", $file); throw new FatalErrorException($msg, 0, \E_ERROR, null, $lineNumber); } // Special case: if the path is not already relative or absolute, and it would resolve to // something inside the currently running phar (e.g. `vendor/autoload.php`), we'll resolve // it relative to the include path so PHP won't grab the phar version. // // Note that this only works if the phar has `psysh` in the path. We might want to lift this // restriction and special case paths that would collide with any running phar? if ($resolvedPath !== $file && $file[0] !== '.') { $runningPhar = \Phar::running(); if (\strpos($runningPhar, 'psysh') !== false && \is_file($runningPhar.\DIRECTORY_SEPARATOR.$file)) { foreach (self::getIncludePath() as $prefix) { $resolvedPath = $prefix.\DIRECTORY_SEPARATOR.$file; if (\is_file($resolvedPath)) { return $resolvedPath; } } } } return $file; } private function isRequireNode(Node $node): bool { return $node instanceof Include_ && \in_array($node->type, self::$requireTypes); } private static function getIncludePath(): array { if (\PATH_SEPARATOR === ':') { return \preg_split('#:(?!//)#', \get_include_path()); } return \explode(\PATH_SEPARATOR, \get_include_path()); } }