imprint
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->in, 1024))){
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
Recent comments
49 weeks 6 days ago
1 year 6 weeks ago
1 year 10 weeks ago
1 year 33 weeks ago
1 year 37 weeks ago
1 year 37 weeks ago
1 year 44 weeks ago
1 year 44 weeks ago
1 year 44 weeks ago
1 year 44 weeks ago