Updating some terminology and variable names. Also updated readme to include more information about extending the package and fixed some spelling errors

This commit is contained in:
Tom Lingham
2014-07-14 23:28:43 +10:00
parent 4f402d2718
commit 5b9c8a29cb
14 changed files with 138 additions and 90 deletions

View File

@ -17,16 +17,11 @@ class AcronymMatcher extends BaseMatcher
protected $operator = 'LIKE';
/**
* @var int
*/
protected $multiplier = 42;
/**
* @param $searchString
* @return mixed|string
*/
public function formatSearchString( $searchString ) {
public function formatSearchString( $searchString )
{
return implode( '% ', str_split(strtoupper( $searchString ))) . '%';
}
}

View File

@ -11,7 +11,8 @@ abstract class BaseMatcher implements MatcherInterface
protected $multiplier;
public function __construct( $multiplier ){
public function __construct( $multiplier )
{
$this->multiplier = $multiplier;
}
@ -22,8 +23,8 @@ abstract class BaseMatcher implements MatcherInterface
* @param $searchString
* @return mixed|string
*/
public function buildQueryString( $column, $searchString ){
public function buildQueryString( $column, $searchString )
{
if ( method_exists($this, 'formatSearchString') )
$searchString = $this->formatSearchString( $searchString );

View File

@ -17,15 +17,11 @@ class ConsecutiveCharactersMatcher extends BaseMatcher
protected $operator = 'LIKE';
/**
* @var int
*/
protected $multiplier = 40;
/**
* @param $searchString
* @return string
*/
public function formatSearchString( $searchString ) {
public function formatSearchString( $searchString )
{
return '%'.implode('%', str_split( $searchString )).'%';
}
@ -34,8 +30,8 @@ class ConsecutiveCharactersMatcher extends BaseMatcher
* @param $rawString
* @return mixed|string
*/
public function buildQueryString( $column, $rawString ){
public function buildQueryString( $column, $rawString )
{
$searchString = $this->formatSearchString( $rawString );
$query = "IF($column {$this->operator} '$searchString', ROUND({$this->multiplier} * (CHAR_LENGTH( '$rawString' ) / CHAR_LENGTH( REPLACE($column, ' ', '') ))), 0)";

View File

@ -11,14 +11,10 @@
class ExactMatcher extends BaseMatcher
{
/**
* @var string
*/
protected $operator = '=';
/**
* @var int
*/
protected $multiplier = 100;
}

View File

@ -18,15 +18,11 @@ class InStringMatcher extends BaseMatcher
protected $operator = 'LIKE';
/**
* @var int
*/
protected $multiplier = 30;
/**
* @param $searchString
* @return string
*/
public function formatSearchString( $searchString ){
public function formatSearchString( $searchString )
{
return "%$searchString%";
}
}

View File

@ -24,10 +24,9 @@ class LevenshteinMatcher extends BaseMatcher
* @param $searchString
* @return mixed|string
*/
public function buildQueryString( $column, $searchString ){
public function buildQueryString( $column, $searchString )
{
return "levenshtein($column, '$searchString', {$this->sensitivity})";
}
}

View File

@ -18,15 +18,11 @@ class StartOfStringMatcher extends BaseMatcher
protected $operator = 'LIKE';
/**
* @var int
*/
protected $multiplier = 50;
/**
* @param $searchString
* @return string
*/
public function formatSearchString( $searchString ) {
public function formatSearchString( $searchString )
{
return "$searchString%";
}
}

View File

@ -18,15 +18,11 @@ class StartOfWordsMatcher extends BaseMatcher
protected $operator = 'LIKE';
/**
* @var int
*/
protected $multiplier = 35;
/**
* @param $searchString
* @return string
*/
public function formatSearchString( $searchString ) {
public function formatSearchString( $searchString )
{
return implode('% ', explode(' ', $searchString)) . '%';
}
}

View File

@ -17,21 +17,17 @@ class StudlyCaseMatcher extends BaseMatcher
protected $operator = 'LIKE BINARY';
/**
* @var int
*/
protected $multiplier = 32;
/**
* @param $searchString
* @return string
*/
public function formatSearchString( $searchString ) {
public function formatSearchString( $searchString )
{
return implode( '%', str_split(strtoupper( $searchString ))) . '%';
}
public function buildQueryString( $column, $searchString ){
public function buildQueryString( $column, $searchString )
{
$query = "IF( CHAR_LENGTH( TRIM($column)) = CHAR_LENGTH( REPLACE( TRIM($column), ' ', '')) AND $column {$this->operator} '{$this->formatSearchString($searchString)}', {$this->multiplier}, 0)";
return $query;

View File

@ -14,17 +14,12 @@ class TimesInStringMatcher extends BaseMatcher
{
/**
* @var int
*/
protected $multiplier = 8;
/**
* @param $column
* @param $searchString
* @return mixed|string
*/
public function buildQueryString( $column, $searchString ){
public function buildQueryString( $column, $searchString )
{
$query = "{$this->multiplier} * ROUND ((
CHAR_LENGTH($column) - CHAR_LENGTH( REPLACE ( LOWER($column), lower('$searchString'), ''))
) / LENGTH('$searchString'))";