소스 검색

Refactor the code to make less unnecessaty calls

There were multiple calls made to the cleaning method that were unnecessary since it is useful only on the last call.
It allows to simplify code by returning values ealier.
Alexis Degrugillier 11 년 전
부모
커밋
9f83aa5fe7
1개의 변경된 파일과 25개의 추가작업 그리고 17개의 파일을 삭제
  1. 25 17
      app/Models/Search.php

+ 25 - 17
app/Models/Search.php

@@ -32,7 +32,7 @@ class FreshRSS_Search {
 		$input = $this->parsePubdateSearch($input);
 		$input = $this->parsePubdateSearch($input);
 		$input = $this->parseDateSearch($input);
 		$input = $this->parseDateSearch($input);
 		$input = $this->parseTagsSeach($input);
 		$input = $this->parseTagsSeach($input);
-		$this->search = $input;
+		$this->search = $this->cleanSearch($input);
 	}
 	}
 
 
 	public function getRawInput() {
 	public function getRawInput() {
@@ -86,12 +86,13 @@ class FreshRSS_Search {
 	private function parseIntitleSearch($input) {
 	private function parseIntitleSearch($input) {
 		if (preg_match('/intitle:(?P<delim>[\'"])(?P<search>.*)(?P=delim)/U', $input, $matches)) {
 		if (preg_match('/intitle:(?P<delim>[\'"])(?P<search>.*)(?P=delim)/U', $input, $matches)) {
 			$this->intitle = $matches['search'];
 			$this->intitle = $matches['search'];
-			$input = str_replace($matches[0], '', $input);
-		} else if (preg_match('/intitle:(?P<search>\w*)/', $input, $matches)) {
+			return str_replace($matches[0], '', $input);
+		}
+		if (preg_match('/intitle:(?P<search>\w*)/', $input, $matches)) {
 			$this->intitle = $matches['search'];
 			$this->intitle = $matches['search'];
-			$input = str_replace($matches[0], '', $input);
+			return str_replace($matches[0], '', $input);
 		}
 		}
-		return $this->cleanSearch($input);
+		return $input;
 	}
 	}
 
 
 	/**
 	/**
@@ -107,12 +108,13 @@ class FreshRSS_Search {
 	private function parseAuthorSearch($input) {
 	private function parseAuthorSearch($input) {
 		if (preg_match('/author:(?P<delim>[\'"])(?P<search>.*)(?P=delim)/U', $input, $matches)) {
 		if (preg_match('/author:(?P<delim>[\'"])(?P<search>.*)(?P=delim)/U', $input, $matches)) {
 			$this->author = $matches['search'];
 			$this->author = $matches['search'];
-			$input = str_replace($matches[0], '', $input);
-		} else if (preg_match('/author:(?P<search>\w*)/', $input, $matches)) {
+			return str_replace($matches[0], '', $input);
+		}
+		if (preg_match('/author:(?P<search>\w*)/', $input, $matches)) {
 			$this->author = $matches['search'];
 			$this->author = $matches['search'];
-			$input = str_replace($matches[0], '', $input);
+			return str_replace($matches[0], '', $input);
 		}
 		}
-		return $this->cleanSearch($input);
+		return $input;
 	}
 	}
 
 
 	/**
 	/**
@@ -126,9 +128,9 @@ class FreshRSS_Search {
 	private function parseInurlSearch($input) {
 	private function parseInurlSearch($input) {
 		if (preg_match('/inurl:(?P<search>[^\s]*)/', $input, $matches)) {
 		if (preg_match('/inurl:(?P<search>[^\s]*)/', $input, $matches)) {
 			$this->inurl = $matches['search'];
 			$this->inurl = $matches['search'];
-			$input = str_replace($matches[0], '', $input);
+			return str_replace($matches[0], '', $input);
 		}
 		}
-		return $this->cleanSearch($input);
+		return $input;
 	}
 	}
 
 
 	/**
 	/**
@@ -142,9 +144,9 @@ class FreshRSS_Search {
 	private function parseDateSearch($input) {
 	private function parseDateSearch($input) {
 		if (preg_match('/date:(?P<search>[^\s]*)/', $input, $matches)) {
 		if (preg_match('/date:(?P<search>[^\s]*)/', $input, $matches)) {
 			list($this->min_date, $this->max_date) = parseDateInterval($matches['search']);
 			list($this->min_date, $this->max_date) = parseDateInterval($matches['search']);
-			$input = str_replace($matches[0], '', $input);
+			return str_replace($matches[0], '', $input);
 		}
 		}
-		return $this->cleanSearch($input);
+		return $input;
 	}
 	}
 
 
 	/**
 	/**
@@ -158,9 +160,9 @@ class FreshRSS_Search {
 	private function parsePubdateSearch($input) {
 	private function parsePubdateSearch($input) {
 		if (preg_match('/pubdate:(?P<search>[^\s]*)/', $input, $matches)) {
 		if (preg_match('/pubdate:(?P<search>[^\s]*)/', $input, $matches)) {
 			list($this->min_pubdate, $this->max_pubdate) = parseDateInterval($matches['search']);
 			list($this->min_pubdate, $this->max_pubdate) = parseDateInterval($matches['search']);
-			$input = str_replace($matches[0], '', $input);
+			return str_replace($matches[0], '', $input);
 		}
 		}
-		return $this->cleanSearch($input);
+		return $input;
 	}
 	}
 
 
 	/**
 	/**
@@ -174,11 +176,17 @@ class FreshRSS_Search {
 	private function parseTagsSeach($input) {
 	private function parseTagsSeach($input) {
 		if (preg_match_all('/#(?P<search>[^\s]+)/', $input, $matches)) {
 		if (preg_match_all('/#(?P<search>[^\s]+)/', $input, $matches)) {
 			$this->tags = $matches['search'];
 			$this->tags = $matches['search'];
-			$input = str_replace($matches[0], '', $input);
+			return str_replace($matches[0], '', $input);
 		}
 		}
-		return $this->cleanSearch($input);
+		return $input;
 	}
 	}
 
 
+	/**
+	 * Remove all unnecessary spaces in the search
+	 *
+	 * @param string $input
+	 * @return string
+	 */
 	private function cleanSearch($input) {
 	private function cleanSearch($input) {
 		$input = preg_replace('/\s+/', ' ', $input);
 		$input = preg_replace('/\s+/', ' ', $input);
 		return trim($input);
 		return trim($input);