1: <?php
2: /**
3: * This file is part of GameQ.
4: *
5: * GameQ is free software; you can redistribute it and/or modify
6: * it under the terms of the GNU Lesser General Public License as published by
7: * the Free Software Foundation; either version 3 of the License, or
8: * (at your option) any later version.
9: *
10: * GameQ is distributed in the hope that it will be useful,
11: * but WITHOUT ANY WARRANTY; without even the implied warranty of
12: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13: * GNU Lesser General Public License for more details.
14: *
15: * You should have received a copy of the GNU Lesser General Public License
16: * along with this program. If not, see <http://www.gnu.org/licenses/>.
17: */
18:
19: namespace GameQ\Filters;
20:
21: use GameQ\Server;
22:
23: /**
24: * Abstract base class which all filters must inherit
25: *
26: * @author Austin Bischoff <austin@codebeard.com>
27: */
28: abstract class Base
29: {
30: /**
31: * Holds the options for this instance of the filter
32: *
33: * @var array
34: */
35: protected $options = [];
36:
37: /**
38: * Construct
39: *
40: * @param array $options
41: */
42: public function __construct(array $options = [])
43: {
44: $this->options = $options;
45: }
46:
47: public function getOptions()
48: {
49: return $this->options;
50: }
51:
52: /**
53: * Apply the filter to the data
54: *
55: * @param array $result
56: * @param \GameQ\Server $server
57: *
58: * @return mixed
59: */
60: abstract public function apply(array $result, Server $server);
61: }
62: