for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
/**
* CLI interface
*
* @package SqlParser
* @subpackage Utils
*/
namespace SqlParser\Utils;
* @category Exceptions
* @author Michal Čihař <[email protected]>
* @license http://opensource.org/licenses/GPL-2.0 GNU Public License
class CLI
{
public function usage()
echo "Usage: highlight-query --query SQL [--format html|cli|text]\n";
}
public function parse()
$longopts = array('help', 'query:', 'format:');
$params = getopt(
'hq:f:', $longopts
);
foreach ($longopts as $value) {
$value = rtrim($value, ':');
if (isset($params[$value])) {
$params[$value[0]] = $params[$value];
if (! isset($params['f'])) {
$params['f'] = 'cli';
if (! in_array($params['f'], array('html', 'cli', 'text'))) {
return false;
return $params;
public function run()
$params = $this->parse();
if ($params === false) {
return 1;
if (isset($params['h'])) {
$this->usage();
return 0;
if (isset($params['q'])) {
echo Formatter::format(
$params['q'], array('type' => $params['f'])
echo "\n";
echo "ERROR: Missing parameters!\n";