Overview

Namespaces

  • Net
    • Bazzline
      • Component
        • Command

Classes

  • Net\Bazzline\Component\Command\AbstractCommand
  • Net\Bazzline\Component\Command\Command

Exceptions

  • Net\Bazzline\Component\Command\InvalidSystemEnvironmentException
  • Net\Bazzline\Component\Command\RuntimeException
  • Overview
  • Namespace
  • Class
 1:  2:  3:  4:  5:  6:  7:  8:  9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 
<?php
/**
 * @author stev leibelt <artodeto@bazzline.net>
 * @since 2015-09-18
 */

namespace Net\Bazzline\Component\Command;

/**
 * Class AbstractCommand
 *
 * @package Net\Bazzline\Component\Command
 */
abstract class AbstractCommand
{
    /**
     * @param string $command
     * @param boolean $validateReturnValue
     * @return array
     * @throws RuntimeException
     * @todo add callback as parameter
     */
    public function execute($command, $validateReturnValue = true)
    {
        $lines  = [];
        $return = null;

        exec($command, $lines, $return);

        if ($validateReturnValue) {
            $this->validateExecuteReturn($return, $command, $lines);
        }
        return $lines;
    }
    /**
     * @throws InvalidSystemEnvironmentException
     */
    public function validateSystemEnvironment() {}
    /**
     * @param int $return
     * @param string $command
     * @param mixed|array $lines
     * @throws RuntimeException
     */
    private function validateExecuteReturn($return, $command, $lines)
    {
        if ($return > 0) {
            throw new RuntimeException(
                'following command created an error: "' . $command . '"' . PHP_EOL .
                'exit code: "' . $return . '"' . PHP_EOL .
                'return: ' . var_export($lines, true)
            );
        }
    }
}
PHP Command Component by bazzline.net API documentation generated by ApiGen