-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathIO.php
76 lines (66 loc) · 1.24 KB
/
IO.php
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<?php
/**
* Intput Output class
*
* @package Framework
*/
define('SUCCESSFUL', 0);
define('COMMAND_FAILED', 1);
define('TOO_FEW_OPTIONS', 2);
define('NO_MODE_SPECIFIED', 3);
define('INSUFICENT_PRIVILEDGES', 4);
define('INVALID_SELECTION', 5);
// Write states
define('GENERAL', 0);
define('DEBUG', 1);
/**
* Manage data going out, and coming in.
*
* @author Marco Ceppi <marco.ceppi@seacrow.org>
* @since November 8, 2010
* @package Framework
* @subpackage System
*/
class IO
{
public static function error($code, $msg = NULL)
{
if( !is_null($msg) )
{
fwrite(STDERR, "ERROR: $msg" . PHP_EOL);
}
exit($code);
}
public static function write($msg, $state = GENERAL)
{
if( $state <= OUTPUT_LEVEL )
{
if( is_array($msg) )
{
print_r($msg);
echo PHP_EOL;
}
else
{
echo $msg . PHP_EOL;
}
}
}
public static function json($data)
{
if( !is_array($data) )
{
$data = array($data);
}
self::write(json_encode($data));
}
public static function debug($msg)
{
self::write("DEBUG: $msg", DEBUG);
}
public static function input($msg)
{
echo "$msg: ";
return trim(fgets(STDIN));
}
}