1 : <?php
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 : class Config {
34 : protected $project_name;
35 : protected $project_code;
36 : protected $license_text;
37 : protected $transformers = array();
38 : protected $outputters = array();
39 : protected $base_directory;
40 : protected $exclude_directories = array();
41 : protected $docs_directory;
42 :
43 :
44 :
45 :
46 :
47 :
48 :
49 :
50 : public function load($filename) {
51 0 : $dpgOutputters = array();
52 0 : $dpgTransformers = array();
53 :
54 0 : require $filename;
55 :
56 0 : if (!isset($dpgProjectName)) {
57 0 : echo "ERROR:\nRequired config option '\$dpgProjectName' not set.\n";
58 0 : return false;
59 : }
60 :
61 0 : if (!isset($dpgProjectCode)) {
62 0 : echo "ERROR:\nRequired config option '\$dpgProjectCode' not set.\n";
63 0 : return false;
64 : }
65 :
66 :
67 0 : if (preg_match('/[^-_A-Za-z0-9]/', $dpgProjectCode)) {
68 0 : echo "ERROR:\nInvalid characters for '\$dpgProjectCode' specified.\n";
69 0 : echo "Valid characters are A-Z, a-z, 0-9, dash and underscore.\n";
70 0 : return false;
71 : }
72 :
73 0 : if (@count($dpgOutputters) == 0) {
74 0 : echo "ERROR:\nRequired config option '\$dpgOutputters' not set.\n";
75 0 : return false;
76 : }
77 :
78 0 : if (!$dpgBaseDirectory or !file_exists($dpgBaseDirectory)) {
79 0 : echo "ERROR:\nRequired config option '\$dpgBaseDirectory' not set or directory does not exist.\n";
80 0 : return false;
81 : }
82 :
83 0 : $this->project_name = $dpgProjectName;
84 0 : $this->project_code = $dpgProjectCode;
85 0 : $this->license_text = $dpgLicenseText;
86 0 : $this->transformers = $dpgTransformers;
87 0 : $this->outputters = $dpgOutputters;
88 0 : $this->base_directory = $dpgBaseDirectory;
89 0 : $this->exclude_directories = $dpgExcludeDirectories;
90 0 : $this->docs_directory = $dpgDocsDirectory;
91 :
92 0 : return true;
93 : }
94 :
95 :
96 :
97 :
98 :
99 : public function getProjectName() {
100 1 : return $this->project_name;
101 : }
102 :
103 :
104 :
105 :
106 :
107 : public function getProjectCode() {
108 0 : return $this->project_code;
109 : }
110 :
111 :
112 :
113 :
114 :
115 : public function getLicenseText() {
116 0 : return $this->license_text;
117 : }
118 :
119 :
120 :
121 :
122 :
123 : public function getTransformers() {
124 0 : return $this->transformers;
125 : }
126 :
127 :
128 :
129 :
130 :
131 : public function getOutputters() {
132 0 : return $this->outputters;
133 : }
134 :
135 :
136 :
137 :
138 :
139 : public function getBaseDirectory() {
140 0 : return $this->base_directory;
141 : }
142 :
143 :
144 :
145 :
146 :
147 : public function getExcludeDirectories() {
148 0 : return $this->exclude_directories;
149 : }
150 :
151 :
152 :
153 :
154 :
155 : public function getDocsDirectory() {
156 0 : return $this->docs_directory;
157 : }
158 :
159 : }
|