PHP static variables and methods and phar use PHP to generate configuration files based on command line parameters

This section uses classes and static variables to transform the previous example: php generates configuration files based on command line parameters

ghostinit.php:

<?php
    
    class ghostinit{
        static $version = 'ghost version is 1.1';
        static $projName = '';
        static $author = 'ghostwu';
        static function init(){
            echo "pls input project name?" . PHP_EOL;
            self::$projName = fgets( STDIN );

            echo "pls input author?" . PHP_EOL;
            self::$author = fgets( STDIN );
            
            echo "The project information you entered is as follows:" . PHP_EOL ;
             echo self:: $projName . PHP_EOL ;
             echo self:: $author . PHP_EOL ;
        }    

        static function make(){
            $pchar=new Phar("ghost.phar");
            $pchar->buildFromDirectory(dirname(__FILE__));
            $pchar->setStub($pchar->createDefaultStub('ghost'));
            $pchar->compressFiles(Phar::GZ);        
        }
    }

?>

ghost:

#!/usr/bin/php
<?php
require "ghostinit.php";

$result = '';

if( $argc >= 2 ) {
    $argv[1] == '-v' && $result = ghostinit::$version;
    $argv[1] == 'make' && ghostinit::make();
    $argv[1] == 'init' && ghostinit::init();
}

echo $result . PHP_EOL;

Results of the:

ghostwu@dev:~/php/php1/3$ ls
done  ghost  ghostinit.php
ghostwu@dev:~/php/php1/3$ ./ghost init
pls input project name?
test
pls input author?
ghostwu
The project information you entered is as follows :
test

ghostwu


ghostwu@dev:~/php/php1/3$ ls
done  ghost  ghostinit.php
ghostwu@dev:~/php/php1/3$ ./ghost make

ghostwu @ dev : ~ / php / php1 / 3 $ ls
 done   ghost ghostinit.php ghost. phar
ghostwu @ dev : ~ / php / php1 / 3 $ ./ghost - v
ghost version is 1.1
ghostwu@dev:~/php/php1/3$ 

 

callstatic continues to transform:

ghostinit.php:

<?php
    
    class ghostinit{
        static $v = 'ghost version is 1.1';
        static $projName = '';
        static $author = 'ghostwu';
        static function init(){
            echo "pls input project name?" . PHP_EOL;
            self::$projName = fgets( STDIN );

            echo "pls input author?" . PHP_EOL;
            self::$author = fgets( STDIN );
            
            echo "The project information you entered is as follows:" . PHP_EOL ;
             echo self:: $projName . PHP_EOL ;
             echo self:: $author . PHP_EOL ;
        }    

        static function make(){
            $pchar=new Phar("ghost.phar");
            $pchar->buildFromDirectory(dirname(__FILE__));
            $pchar->setStub($pchar->createDefaultStub('ghost'));
            $pchar->compressFiles(Phar::GZ);        
        }

        static function __callstatic( $m, $args ){
            echo 'error function';
        }

    }

?>

ghost:

#!/usr/bin/php
<?php
require "ghostinit.php";

$result = '';

if( $argc >= 2 ) {
    $p = $argv[1]; 
    if( substr( $p, 0, 1 ) == '-' ) {
        $p = substr( $p, 1 );
        $result = isset( ghostinit::$$p ) ? ghostinit::$$p : 'error';
    }else {
        $result = ghostinit::$p();
    }
}

echo $result . PHP_EOL;

 

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324738568&siteId=291194637