-
Notifications
You must be signed in to change notification settings - Fork 0
/
AppInput.php
69 lines (61 loc) · 1.43 KB
/
AppInput.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
<?php
/**
* Class AppInput
*
* Covers the input from the operating system - console and file.
*/
class AppInput
{
/**
* Get content of the file.
*
* @param $fileName
* @return string
*
* @throws InvalidQueryException
*/
public function getFileContent($fileName)
{
$data = null;
if (is_file($fileName)) {
$data = file_get_contents($fileName);
} else {
if (is_file(__DIR__.'/'.$fileName)) {
$data = file_get_contents(__DIR__.'/'.$fileName);
} else {
//todo: test absolute and relative urls: /file, file, .file, ./file
//throw new InputFileException('N')
}
}
// if (!$data) {
// throw new InvalidQueryException('Could not read a query from the file: '.$fileName);
// }
return $data;
}
/**
* Check whether the file exists or not.
*
* @param string $fileName
*
* @return bool
*/
public function fileExists($fileName)
{
//todo: refactor to a php method?
if (is_file($fileName)) {
return true;
} else {
if (is_file(__DIR__.'/'.$fileName)) {
return true;
}
}
return false;
}
/**
* @return string
*/
public function readFromStdin()
{
return file_get_contents('php://stdin');
}
}