ÿØÿà JFIF ÿá Exif MM * ÿÛ C
Server IP : 199.250.214.225 / Your IP : 18.188.176.7 Web Server : Apache System : Linux vps64074.inmotionhosting.com 3.10.0-1160.105.1.vz7.214.3 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : nicngo5 ( 1001) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /home/nicngo5/laravelvue/vendor/psy/psysh/src/CodeCleaner/ |
Upload File : |
<?php /* * This file is part of Psy Shell. * * (c) 2012-2018 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Psy\CodeCleaner; use PhpParser\Node; use PhpParser\Node\Stmt\Class_; use Psy\Exception\FatalErrorException; /** * The final class pass handles final classes. */ class FinalClassPass extends CodeCleanerPass { private $finalClasses; /** * @param array $nodes */ public function beforeTraverse(array $nodes) { $this->finalClasses = []; } /** * @throws RuntimeException if the node is a class that extends a final class * * @param Node $node */ public function enterNode(Node $node) { if ($node instanceof Class_) { if ($node->extends) { $extends = (string) $node->extends; if ($this->isFinalClass($extends)) { $msg = \sprintf('Class %s may not inherit from final class (%s)', $node->name, $extends); throw new FatalErrorException($msg, 0, E_ERROR, null, $node->getLine()); } } if ($node->isFinal()) { $this->finalClasses[\strtolower($node->name)] = true; } } } /** * @param string $name Class name * * @return bool */ private function isFinalClass($name) { if (!\class_exists($name)) { return isset($this->finalClasses[\strtolower($name)]); } $refl = new \ReflectionClass($name); return $refl->isFinal(); } }