PHP Command Line rocks

Recently I wrote a PHP Command line app, I was amazed, how easy it was, to write command line app in PHP, and it really rocks.

Here is very simple Command Line handler class, it may be usefull for your apps.

<?php
class CliHandler{
    private 
$in;
    private 
$out;
    private 
$handler;
    public function 
CliHandler($handler){
        
$this->in fopen("php://stdin","r");
        
$this->out fopen("php://stdout""w");
        if(
is_object($handler)){
            
$this->handler $handler;
        }
    }    
    public function 
run(){
        
$str "Try these commands:\n"
        
.implode("\n",get_class_methods($this->handler));
        
$this->out($str);
        while(
$line rtrim(fgets($this->in1024))){
            if(
method_exists($this->handler,$line)){
                
$out $this->handler->$line();
                if(
$out){
                    
$this->out($out);
                }
            }
        }
    }
    public function 
out($str){
        
fwrite($this->out,$str."\n");
    }
}
class 
AnyClass{
    public function 
start(){
        return 
"started";
    }
    public function 
stop(){
        return 
"stoppded";
    }
}
$cli = new CliHandler(new AnyClass());
$cli->run();
?>

CliHandler accepts any class als argument.
Try this.

/usr/local/php/PHP5 CliHandler.class.php
output: Try these command:
start
stop
enter "start"
output: started

1 comment

Reply

The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.
  • You may post code using <code>...</code> (generic) or <?php ... ?> (highlighted PHP) tags.

Datenschutz | Impressum