/var/www/flurhymez/vendor/psy/psysh/src/CodeCleaner
NameSizeModeActions
AbstractClassPass.php22020644editdlrm
AssignThisVariablePass.php10350644editdlrm
CalledClassPass.php23870644editdlrm
CallTimePassByReferencePass.php13920644editdlrm
CodeCleanerPass.php4150644editdlrm
EmptyArrayDimFetchPass.php12830644editdlrm
ExitPass.php7730644editdlrm
FinalClassPass.php16670644editdlrm
FunctionContextPass.php13400644editdlrm
FunctionReturnInWriteContextPass.php25010644editdlrm
ImplicitReturnPass.php42400644editdlrm
InstanceOfPass.php18780644editdlrm
IssetPass.php13220644editdlrm
LabelContextPass.php23570644editdlrm
LeavePsyshAlonePass.php9130644editdlrm
ListPass.php32830644editdlrm
LoopContextPass.php34800644editdlrm
MagicConstantsPass.php10680644editdlrm
NamespaceAwarePass.php18530644editdlrm
NamespacePass.php24160644editdlrm
NoReturnValue.php8700644editdlrm
PassableByReferencePass.php41170644editdlrm
RequirePass.php45650644editdlrm
ReturnTypePass.php34650644editdlrm
StrictTypesPass.php27060644editdlrm
UseStatementPass.php43360644editdlrm
ValidClassNamePass.php124330644editdlrm
ValidConstantPass.php32030644editdlrm
ValidConstructorPass.php38860644editdlrm
ValidFunctionNamePass.php32380644editdlrm
Edit: /var/www/flurhymez/vendor/psy/psysh/src/CodeCleaner/RequirePass.php (4565B)
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) { $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) { return $node instanceof Include_ && \in_array($node->type, self::$requireTypes); } private static function getIncludePath() { if (\PATH_SEPARATOR === ':') { return \preg_split('#:(?!//)#', \get_include_path()); } return \explode(\PATH_SEPARATOR, \get_include_path()); } }