Browse Source

Allow custom filters

Nathaniel van Diepen 6 years ago
parent
commit
11124dd5d8
1 changed files with 15 additions and 5 deletions
  1. 15 5
      PDO/filter.class.php

+ 15 - 5
PDO/filter.class.php

@@ -3,11 +3,15 @@
 
 	class Filter {
 		private static $filters = [];
-		private $name;
+		public $name;
 		private $filter;
-		private function __construct(string $name, string $filter){
-			$this->name = $name;
-			self::$filters[$name] = $this;
+		private $sprintf;
+		private function __construct(string $name = null, string $filter){
+			$this->filter = $filter;
+			if(!is_null($name)){
+				$this->name = $name;
+				self::$filters[$name] = $this;
+			}
 		}
 		public function name(){
 			return $this->name;
@@ -22,12 +26,18 @@
 			return self::$filters[$name];
 		}
 		public static function add(string $name, string $filter){
+			if(is_null($name)){
+				throw new Exception("Named filters cannot have a null name");
+			}
 			if(isset(self::$filters[$name])){
 				throw new \Exception("Filter {$name} is already defined");
 			}
 			return new  Filter($name, $filter);
 		}
+		public static function create(string $filter){
+			return new Filter(null, $filter);
+		}
 	}
 	Filter::add('not null', 'is not null');
 	Filter::add('null', 'is null');
-?>
+?>