* Initializes a new instance of the SmartLine Command
*
* @param SmartLine $SmartLine the SmartLine the command belongs
*/
- public function __construct ($SmartLine) {
- $this->SmartLine = $SmartLine;
- }
+ public function __construct ($SmartLine) {
+ $this->SmartLine = $SmartLine;
+ }
/**
* Gets the command help text or indicates help should be fetched from $lang array
*
* @return string|bool a string containing the command help or the bool value false, to enable the default behavior (ie prints $lang['help']['nameOfTheCommand'])
*/
- public function help () {
+ public function help () {
return false;
- }
+ }
/**
* Runs the command
*
* @param array $argv an array of string, each item a command argument
* @param int $argc the number of arguments
*/
- public function run ($argv, $argc) {
+ public function run ($argv, $argc) {
- }
+ }
- /**
+ /**
* The SmartLine where this instance of the command is registered
*
* @var SmartLine
*/
- public $SmartLine;
+ public $SmartLine;
}
/**
* This class represents a SmartLine instance
*
* If you use only register_object, you can use it directly.
* If you use register_method, extends this class in your SmartLine.
*/
class SmartLine {
/**
* Initializes a new instance of the SmartLine object.
*/
- public function __construct () {
- //Assumes we've an empty array where store registered commands.
- $this->commands = array();
+ public function __construct () {
+ //Assumes we've an empty array where store registered commands.
* @param string $command The name of the command to register
* @param string $method The method to register [OPTIONAL]. If omitted, the method regisered will be the method having the same name as the command.
* @param bool $useArgvArgc If true, indicates the method uses $argv, $argc as parameters. If false, indicates the method uses its parameters (default behavior). [OPTIONAL]
*
* @return bool true if the command have successfully been registered ; otherwise, false.
*/
- public function register_method ($command, $method = null, $useArgvArgc = false) {
* Registers an object extending SmartLineCommand as command.
*
* @param string $command The name of the command to register
* @param SmartLineCommand|string $object The object extending SmartLineCommand. This can be the name of the class (string) or an instance already initialized of the object (SmartLineCommand).
* @return bool true if the command have successfully been registered ; otherwise, false.
*/
- public function register_object ($command, $object) {
- if (is_object($object)) {
- //Sets SmartLine property
- $object->SmartLine = $this;
- } elseif (is_string($object)) {
- //Creates a new instance of $object
- $object = new $object($this);
- } else {
- $this->lastError = "Registration failed. register_object second parameter must be a class name (string) or an already initialized instance of such class (object) and not a " . gettype($object);
- return false;
- }
- if (!$this->caseSensitive) $command = strtolower($command);
- $this->commands[$command] = $object;
- return true;
- }
+ public function register_object ($command, $object) {
+ if (is_object($object)) {
+ //Sets SmartLine property
+ $object->SmartLine = $this;
+ } elseif (is_string($object)) {
+ //Creates a new instance of $object
+ $object = new $object($this);
+ } else {
+ $this->lastError = "Registration failed. register_object second parameter must be a class name (string) or an already initialized instance of such class (object) and not a " . gettype($object);
+ return false;
+ }
+ if (!$this->caseSensitive) {
+ $command = strtolower($command);
+ }
+ $this->commands[$command] = $object;
+ return true;
+ }
/**
* Determines wheter the specified command have been registered.
*
* @param string $command The name of the command to check
* @return true if the specified command have been registered ; otherwise, false.
*/
- public function isRegistered ($command) {
- if (!$this->caseSensitive) $command = strtolower($command);
* @param int $output The output queue (common values are STDERR and STDOUT constants). It's an optionnal parameter ; if ommited, the default value will be STDOUT.
*/
- public function puts ($message, $output = STDOUT) {
* @param int $output The output queue (common values are STDERR and STDOUT constants). It's an optionnal parameter ; if ommited, the default value will be STDOUT.
*/
- public function truncate ($output = STDOUT) {
- unset($_SESSION['SmartLineOutput'][$output]);
- }
+ public function truncate ($output = STDOUT) {
+ unset($_SESSION['SmartLineOutput'][$output]);
+ }
/**
* Pops (gets and clears) the first message from the specified output queue.
*
* @param int $output The output queue (common values are STDERR and STDOUT constants). It's an optionnal parameter ; if ommited, the default value will be STDOUT.
* @return string the message
*/
- public function gets ($output = STDOUT) {
- if (count($_SESSION['SmartLineOutput'][$output] > 0))
* Gets the number of messages in the specified output queue.
*
* @param int $output The output queue (common values are STDERR and STDOUT constants). It's an optionnal parameter ; if ommited, the default value will be STDOUT.
* Gets all the message from the specified output queue.
*
* @param int $output The output queue (common values are STDERR and STDOUT constants). It's an optionnal parameter ; if ommited, the default value will be STDOUT.
* @param string $prefix The string to prepend each message with. It's an optionnal parameter ; if ommited, '<p>'.
* @param string $suffix The string to append each message with. It's an optionnal parameter ; if ommited, '</p>'.
* @return Array an array of string, each item a message from the specified output queue
*/
- public function gets_all ($output = STDOUT, $prefix = '<p>', $suffix = '</p>') {
* Prints all the message from the specified output queue.
*
* @param int $output The output queue (common values are STDERR and STDOUT constants). It's an optionnal parameter ; if ommited, the default value will be STDOUT.
* @param string $prefix The string to prepend each message with. It's an optionnal parameter ; if ommited, '<p>'.
* @param string $suffix The string to append each message with. It's an optionnal parameter ; if ommited, '</p>'.
*/
- public function prints_all ($output = STDOUT, $prefix = '<p>', $suffix = '</p>') {
if (substr($current_url, 0, $len) != $Config['SiteURL']) {
dieprint_r(GENERAL_ERROR, "Edit includes/config.php and specify the correct site URL<br /><strong>Current value:</strong> $Config[SiteURL]<br /><strong>Expected value:</strong> a string starting by " . get_server_url(), "Setup");
}
if (array_key_exists('REDIRECT_URL', $_SERVER)) {
//With mod_rewrite, we can use REDIRECT_URL
//We takes the end of the URL, ie *FROM* $len position
* @todo delete old_message_die method and write alternative HTML textual output
* in the message_die method
*/
///
/// Error constants
///
/**
* SQL_ERROR is the constant meaning the error is a SQL error.
*
* As a message_die function parameter, it allows to add SQL specific debug information.
*/
define ("SQL_ERROR", 65);
/**
* HACK_ERROR is the constant meaning access is non authorized to the resource.
*
* It encompasses two problematics:
* the URL points to a resource belonging to another user or for the current user have no access right (for malformed URL, pick instead GENERAL_ERROR) ;
* the user is anonymous, instead to be logged in.
*
* A suggested way to handle the second problematic is to store in hidden input
* fields or better in the session the previous form data, and to print a login
* form.
*
* If you implement this, you don't even need to distinguishes between the two
* cases, as once logged in, the regular HACK_ERROR could also be printed.
*/
define ("HACK_ERROR", 99);
/**
* GENERAL_ERROR is the constant meaning the error is general, ie not covered by
* another more specific error constant.
*/
define ("GENERAL_ERROR", 117);
///
/// Error helper functions
///
/**
* Output a general error, with human-readable information about the specified
* expression as error message ; terminates the current script.
*
* @see message_die
*
* @param mixed $expression the expression to be printed
* @param string $title the message title (optionnal, default will be 'Debug')
*/
function dieprint_r ($expression, $title = '') {
if (!$title) {
- $title = 'Debug'; //if title is omitted or false/null, default title
+ $title = 'Debug'; //if title is omitted or false/null, default title