Browse Source

Initial 2.0 commit

master
Tom Lingham 9 years ago
parent
commit
6678381a58
  1. 0
      .gitignore
  2. 0
      .travis.yml
  3. 0
      LICENCE
  4. 18
      README.md
  5. 44
      composer.json
  6. 0
      phpunit.xml
  7. 4
      src/TomLingham/Searchy/Facades/Searchy.php
  8. 0
      src/TomLingham/Searchy/Interfaces/MatcherInterface.php
  9. 0
      src/TomLingham/Searchy/Interfaces/SearchDriverInterface.php
  10. 0
      src/TomLingham/Searchy/Matchers/AcronymMatcher.php
  11. 0
      src/TomLingham/Searchy/Matchers/BaseMatcher.php
  12. 0
      src/TomLingham/Searchy/Matchers/ConsecutiveCharactersMatcher.php
  13. 0
      src/TomLingham/Searchy/Matchers/ExactMatcher.php
  14. 0
      src/TomLingham/Searchy/Matchers/InStringMatcher.php
  15. 0
      src/TomLingham/Searchy/Matchers/LevenshteinMatcher.php
  16. 0
      src/TomLingham/Searchy/Matchers/StartOfStringMatcher.php
  17. 0
      src/TomLingham/Searchy/Matchers/StartOfWordsMatcher.php
  18. 0
      src/TomLingham/Searchy/Matchers/StudlyCaseMatcher.php
  19. 0
      src/TomLingham/Searchy/Matchers/TimesInStringMatcher.php
  20. 6
      src/TomLingham/Searchy/SearchBuilder.php
  21. 0
      src/TomLingham/Searchy/SearchDrivers/BaseSearchDriver.php
  22. 0
      src/TomLingham/Searchy/SearchDrivers/FuzzySearchDriver.php
  23. 0
      src/TomLingham/Searchy/SearchDrivers/LevenshteinSearchDriver.php
  24. 0
      src/TomLingham/Searchy/SearchDrivers/SimpleSearchDriver.php
  25. 0
      src/TomLingham/Searchy/SearchyServiceProvider.php
  26. 0
      src/config/config.php
  27. 0
      src/res/levenshtein.sql
  28. 0
      tests/.gitkeep

0
.gitignore

0
.travis.yml

0
LICENCE

18
README.md

@ -1,28 +1,28 @@
Laravel 4+ Searchy
Laravel Searchy 2
========================================
### Database Searching Made Easy
Searchy is an easy-to-use Laravel 4+ package that makes running user driven searches on data in your models simple and effective.
Searchy is an easy-to-use Laravel Optimized package that makes running user driven searches on data in your models simple and effective.
It uses pseudo fuzzy searching and other weighted mechanics depending on the search driver that you have enabled.
It requires no other software installed on your server (so a bit slower than dedicated search programs) but can be set up and ready to go in minutes.
It requires no other software installed on your server (so can be a little slower than dedicated search programs) but can be set up and ready to go in minutes.
Installation
----------------------------------------
Add `"tom-lingham/searchy" : "dev-master"` to your composer.json file under `require`:
Add `"tom-lingham/searchy" : "2.0~"` to your composer.json file under `require`:
```
"require": {
"laravel/framework": "4.*",
"tom-lingham/searchy" : "dev-master"
}
```
Run `composer update` in your terminal to pull the package down into your vendors folder.
Run `composer update` in your terminal to pull down the package into your vendors folder.
Add the service provider to the `providers` array in Laravel's app/config/app.php file:
```php
'TomLingham\Searchy\SearchyServiceProvider'
```
Add the Alias to the `aliases` array in Laravel's app/config/app.php file:
Add the Alias to the `aliases` array in Laravel's app/config/app.php file if you want to have quick access to it in your application:
```php
'Searchy' => 'TomLingham\Searchy\Facades\Searchy'
```
@ -43,7 +43,7 @@ $users = Searchy::search('users')->fields('name', 'email')->query('John Smith');
```
In this case, pass the columns you want to search through to the `fields()` method.
These examples both return a Laravel DB Query Builder Object, so you will need to chain `get()` to actually return the results in a usable object:
These examples both return a Laravel DB Query Builder Object, so you will need to chain `get()` to actually return the results:
```php
$users = Searchy::search('users')->fields('name', 'email')->query('John Smith')->get();
@ -113,7 +113,7 @@ protected $matchers = [
'TomLingham\Searchy\Matchers\InStringMatcher' => 30,
'TomLingham\Searchy\Matchers\TimesInStringMatcher' => 8,
];
```
#### Levenshtein Search Driver (Experimental)
@ -124,7 +124,7 @@ The Levenshtein Search Driver uses the Levenshetein Distance to calculate the 'd
protected $matchers = [
'TomLingham\Searchy\Matchers\LevenshteinMatcher' => 100
];
```
Matchers

44
composer.json

@ -1,25 +1,25 @@
{
"name": "tom-lingham/searchy",
"description": "Laravel 4 Searchy makes user driven searching easy with fuzzy search, basic string matching and more to come!",
"keywords": ["laravel","search"],
"name": "tom-lingham/searchy",
"description": "Laravel Searchy makes user driven searching easy with fuzzy search, basic string matching, Levenshtein Distance and more.",
"keywords": ["laravel","search","fuzzy"],
"license": "MIT",
"authors": [
{
"name": "Tom Lingham",
"email": "tjlingham@gmail.com"
}
],
"require": {
"php": ">=5.4.0",
"illuminate/support": "4.2.*"
},
"require-dev" :{
"phpspec/phpspec": "~2.0"
},
"autoload": {
"psr-0": {
"TomLingham\\Searchy": "src/"
}
},
"minimum-stability": "stable"
"authors": [
{
"name": "Tom Lingham",
"email": "tjlingham@gmail.com"
}
],
"require": {
"php": ">=5.4.0",
"illuminate/support": "5.*"
},
"require-dev" :{
"phpspec/phpspec": "~2.0"
},
"autoload": {
"psr-0": {
"TomLingham": "src/"
}
},
"minimum-stability": "stable"
}

0
phpunit.xml

4
src/TomLingham/Searchy/Facades/Searchy.php

@ -1,6 +1,5 @@
<?php namespace TomLingham\Searchy\Facades;
use TomLingham\Searchy\SearchyServiceProvider;
use Illuminate\Support\Facades\Facade;
/**
@ -15,9 +14,6 @@ class Searchy extends Facade
*/
protected static function getFacadeAccessor()
{
if (!static::$app)
static::$app = SearchyServiceProvider::make();
return 'searchy';
}
}

0
src/TomLingham/Searchy/Interfaces/MatcherInterface.php

0
src/TomLingham/Searchy/Interfaces/SearchDriverInterface.php

0
src/TomLingham/Searchy/Matchers/AcronymMatcher.php

0
src/TomLingham/Searchy/Matchers/BaseMatcher.php

0
src/TomLingham/Searchy/Matchers/ConsecutiveCharactersMatcher.php

0
src/TomLingham/Searchy/Matchers/ExactMatcher.php

0
src/TomLingham/Searchy/Matchers/InStringMatcher.php

0
src/TomLingham/Searchy/Matchers/LevenshteinMatcher.php

0
src/TomLingham/Searchy/Matchers/StartOfStringMatcher.php

0
src/TomLingham/Searchy/Matchers/StartOfWordsMatcher.php

0
src/TomLingham/Searchy/Matchers/StudlyCaseMatcher.php

0
src/TomLingham/Searchy/Matchers/TimesInStringMatcher.php

6
src/TomLingham/Searchy/SearchBuilder.php

@ -1,9 +1,9 @@
<?php namespace TomLingham\Searchy;
use Illuminate\Support\Facades\Config;
use TomLingham\Searchy\SearchDrivers\FuzzySearchDriver;
/**
* @property mixed driverName
*/
@ -84,12 +84,12 @@ class SearchBuilder {
if ( $this->driverName ){
$driverName = $this->driverName;
} else {
$driverName = \Config::get('searchy::default');
$driverName = Config::get('searchy::default');
}
// Gets the details for the selected driver from the configuration file
$driverMap = \Config::get("searchy::drivers.$driverName");
$driverMap = Config::get("searchy::drivers.$driverName");
// Create a new instance of the selected drivers 'class' and pass

0
src/TomLingham/Searchy/SearchDrivers/BaseSearchDriver.php

0
src/TomLingham/Searchy/SearchDrivers/FuzzySearchDriver.php

0
src/TomLingham/Searchy/SearchDrivers/LevenshteinSearchDriver.php

0
src/TomLingham/Searchy/SearchDrivers/SimpleSearchDriver.php

0
src/TomLingham/Searchy/SearchyServiceProvider.php

0
src/config/config.php

0
src/res/levenshtein.sql

0
tests/.gitkeep

Loading…
Cancel
Save