diff --git a/.env.local.example b/.env.local.example index 5832a85..024059a 100644 --- a/.env.local.example +++ b/.env.local.example @@ -20,6 +20,12 @@ DB_PASSWORD=kcal REDIS_HOST=redis REDIS_PORT=6379 +#SCOUT_DRIVER=null + +#SCOUT_DRIVER=algolia +#ALGOLIA_APP_ID= +#ALGOLIA_SECRET= + SCOUT_DRIVER=elastic ELASTIC_HOST=elasticsearch:9200 ELASTIC_PORT=9200 diff --git a/.env.prod.example b/.env.prod.example index 84c260f..1b25ce2 100644 --- a/.env.prod.example +++ b/.env.prod.example @@ -18,8 +18,14 @@ DB_PASSWORD= REDIS_HOST= REDIS_PORT=6379 -SCOUT_DRIVER=elastic -ELASTIC_HOST= +SCOUT_DRIVER=null + +#SCOUT_DRIVER=algolia +#ALGOLIA_APP_ID= +#ALGOLIA_SECRET= + +#SCOUT_DRIVER=elastic +#ELASTIC_HOST= MAIL_HOST= MAIL_PORT= diff --git a/.phpstorm.meta.php b/.phpstorm.meta.php index 0332c54..328a783 100644 --- a/.phpstorm.meta.php +++ b/.phpstorm.meta.php @@ -11,6 +11,14 @@ namespace PHPSTORM_META { */ override(new \Illuminate\Contracts\Container\Container, map([ '' => '@', + 'Algolia\AlgoliaSearch\AnalyticsClient' => \Algolia\AlgoliaSearch\AnalyticsClient::class, + 'Algolia\AlgoliaSearch\SearchClient' => \Algolia\AlgoliaSearch\SearchClient::class, + 'Algolia\ScoutExtended\Algolia' => \Algolia\ScoutExtended\Algolia::class, + 'Algolia\ScoutExtended\Contracts\LocalSettingsRepositoryContract' => \Algolia\ScoutExtended\Repositories\LocalSettingsRepository::class, + 'Algolia\ScoutExtended\Engines\AlgoliaEngine' => \Algolia\ScoutExtended\Engines\AlgoliaEngine::class, + 'Algolia\ScoutExtended\Helpers\SearchableFinder' => \Algolia\ScoutExtended\Helpers\SearchableFinder::class, + 'Algolia\ScoutExtended\Managers\EngineManager' => \Algolia\ScoutExtended\Managers\EngineManager::class, + 'Algolia\ScoutExtended\Searchable\AggregatorObserver' => \Algolia\ScoutExtended\Searchable\AggregatorObserver::class, 'Asm89\Stack\CorsService' => \Asm89\Stack\CorsService::class, 'CloudCreativity\LaravelJsonApi\Api\Repository' => \CloudCreativity\LaravelJsonApi\Api\Repository::class, 'CloudCreativity\LaravelJsonApi\Contracts\ContainerInterface' => \CloudCreativity\LaravelJsonApi\Container::class, @@ -63,7 +71,7 @@ namespace PHPSTORM_META { 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, 'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class, 'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class, - 'Laravel\Scout\EngineManager' => \Laravel\Scout\EngineManager::class, + 'Laravel\Scout\EngineManager' => \Algolia\ScoutExtended\Managers\EngineManager::class, 'Neomerx\JsonApi\Contracts\Encoder\Parameters\EncodingParametersInterface' => \CloudCreativity\LaravelJsonApi\Encoder\Parameters\EncodingParameters::class, 'Neomerx\JsonApi\Contracts\Http\Headers\HeaderParametersInterface' => \Neomerx\JsonApi\Http\Headers\HeaderParameters::class, 'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class, @@ -211,6 +219,14 @@ namespace PHPSTORM_META { ])); override(\Illuminate\Container\Container::makeWith(0), map([ '' => '@', + 'Algolia\AlgoliaSearch\AnalyticsClient' => \Algolia\AlgoliaSearch\AnalyticsClient::class, + 'Algolia\AlgoliaSearch\SearchClient' => \Algolia\AlgoliaSearch\SearchClient::class, + 'Algolia\ScoutExtended\Algolia' => \Algolia\ScoutExtended\Algolia::class, + 'Algolia\ScoutExtended\Contracts\LocalSettingsRepositoryContract' => \Algolia\ScoutExtended\Repositories\LocalSettingsRepository::class, + 'Algolia\ScoutExtended\Engines\AlgoliaEngine' => \Algolia\ScoutExtended\Engines\AlgoliaEngine::class, + 'Algolia\ScoutExtended\Helpers\SearchableFinder' => \Algolia\ScoutExtended\Helpers\SearchableFinder::class, + 'Algolia\ScoutExtended\Managers\EngineManager' => \Algolia\ScoutExtended\Managers\EngineManager::class, + 'Algolia\ScoutExtended\Searchable\AggregatorObserver' => \Algolia\ScoutExtended\Searchable\AggregatorObserver::class, 'Asm89\Stack\CorsService' => \Asm89\Stack\CorsService::class, 'CloudCreativity\LaravelJsonApi\Api\Repository' => \CloudCreativity\LaravelJsonApi\Api\Repository::class, 'CloudCreativity\LaravelJsonApi\Contracts\ContainerInterface' => \CloudCreativity\LaravelJsonApi\Container::class, @@ -263,7 +279,7 @@ namespace PHPSTORM_META { 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, 'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class, 'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class, - 'Laravel\Scout\EngineManager' => \Laravel\Scout\EngineManager::class, + 'Laravel\Scout\EngineManager' => \Algolia\ScoutExtended\Managers\EngineManager::class, 'Neomerx\JsonApi\Contracts\Encoder\Parameters\EncodingParametersInterface' => \CloudCreativity\LaravelJsonApi\Encoder\Parameters\EncodingParameters::class, 'Neomerx\JsonApi\Contracts\Http\Headers\HeaderParametersInterface' => \Neomerx\JsonApi\Http\Headers\HeaderParameters::class, 'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class, @@ -411,6 +427,14 @@ namespace PHPSTORM_META { ])); override(\Illuminate\Contracts\Container\Container::get(0), map([ '' => '@', + 'Algolia\AlgoliaSearch\AnalyticsClient' => \Algolia\AlgoliaSearch\AnalyticsClient::class, + 'Algolia\AlgoliaSearch\SearchClient' => \Algolia\AlgoliaSearch\SearchClient::class, + 'Algolia\ScoutExtended\Algolia' => \Algolia\ScoutExtended\Algolia::class, + 'Algolia\ScoutExtended\Contracts\LocalSettingsRepositoryContract' => \Algolia\ScoutExtended\Repositories\LocalSettingsRepository::class, + 'Algolia\ScoutExtended\Engines\AlgoliaEngine' => \Algolia\ScoutExtended\Engines\AlgoliaEngine::class, + 'Algolia\ScoutExtended\Helpers\SearchableFinder' => \Algolia\ScoutExtended\Helpers\SearchableFinder::class, + 'Algolia\ScoutExtended\Managers\EngineManager' => \Algolia\ScoutExtended\Managers\EngineManager::class, + 'Algolia\ScoutExtended\Searchable\AggregatorObserver' => \Algolia\ScoutExtended\Searchable\AggregatorObserver::class, 'Asm89\Stack\CorsService' => \Asm89\Stack\CorsService::class, 'CloudCreativity\LaravelJsonApi\Api\Repository' => \CloudCreativity\LaravelJsonApi\Api\Repository::class, 'CloudCreativity\LaravelJsonApi\Contracts\ContainerInterface' => \CloudCreativity\LaravelJsonApi\Container::class, @@ -463,7 +487,7 @@ namespace PHPSTORM_META { 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, 'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class, 'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class, - 'Laravel\Scout\EngineManager' => \Laravel\Scout\EngineManager::class, + 'Laravel\Scout\EngineManager' => \Algolia\ScoutExtended\Managers\EngineManager::class, 'Neomerx\JsonApi\Contracts\Encoder\Parameters\EncodingParametersInterface' => \CloudCreativity\LaravelJsonApi\Encoder\Parameters\EncodingParameters::class, 'Neomerx\JsonApi\Contracts\Http\Headers\HeaderParametersInterface' => \Neomerx\JsonApi\Http\Headers\HeaderParameters::class, 'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class, @@ -611,6 +635,14 @@ namespace PHPSTORM_META { ])); override(\Illuminate\Contracts\Container\Container::make(0), map([ '' => '@', + 'Algolia\AlgoliaSearch\AnalyticsClient' => \Algolia\AlgoliaSearch\AnalyticsClient::class, + 'Algolia\AlgoliaSearch\SearchClient' => \Algolia\AlgoliaSearch\SearchClient::class, + 'Algolia\ScoutExtended\Algolia' => \Algolia\ScoutExtended\Algolia::class, + 'Algolia\ScoutExtended\Contracts\LocalSettingsRepositoryContract' => \Algolia\ScoutExtended\Repositories\LocalSettingsRepository::class, + 'Algolia\ScoutExtended\Engines\AlgoliaEngine' => \Algolia\ScoutExtended\Engines\AlgoliaEngine::class, + 'Algolia\ScoutExtended\Helpers\SearchableFinder' => \Algolia\ScoutExtended\Helpers\SearchableFinder::class, + 'Algolia\ScoutExtended\Managers\EngineManager' => \Algolia\ScoutExtended\Managers\EngineManager::class, + 'Algolia\ScoutExtended\Searchable\AggregatorObserver' => \Algolia\ScoutExtended\Searchable\AggregatorObserver::class, 'Asm89\Stack\CorsService' => \Asm89\Stack\CorsService::class, 'CloudCreativity\LaravelJsonApi\Api\Repository' => \CloudCreativity\LaravelJsonApi\Api\Repository::class, 'CloudCreativity\LaravelJsonApi\Contracts\ContainerInterface' => \CloudCreativity\LaravelJsonApi\Container::class, @@ -663,7 +695,7 @@ namespace PHPSTORM_META { 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, 'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class, 'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class, - 'Laravel\Scout\EngineManager' => \Laravel\Scout\EngineManager::class, + 'Laravel\Scout\EngineManager' => \Algolia\ScoutExtended\Managers\EngineManager::class, 'Neomerx\JsonApi\Contracts\Encoder\Parameters\EncodingParametersInterface' => \CloudCreativity\LaravelJsonApi\Encoder\Parameters\EncodingParameters::class, 'Neomerx\JsonApi\Contracts\Http\Headers\HeaderParametersInterface' => \Neomerx\JsonApi\Http\Headers\HeaderParameters::class, 'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class, @@ -811,6 +843,14 @@ namespace PHPSTORM_META { ])); override(\Illuminate\Contracts\Container\Container::makeWith(0), map([ '' => '@', + 'Algolia\AlgoliaSearch\AnalyticsClient' => \Algolia\AlgoliaSearch\AnalyticsClient::class, + 'Algolia\AlgoliaSearch\SearchClient' => \Algolia\AlgoliaSearch\SearchClient::class, + 'Algolia\ScoutExtended\Algolia' => \Algolia\ScoutExtended\Algolia::class, + 'Algolia\ScoutExtended\Contracts\LocalSettingsRepositoryContract' => \Algolia\ScoutExtended\Repositories\LocalSettingsRepository::class, + 'Algolia\ScoutExtended\Engines\AlgoliaEngine' => \Algolia\ScoutExtended\Engines\AlgoliaEngine::class, + 'Algolia\ScoutExtended\Helpers\SearchableFinder' => \Algolia\ScoutExtended\Helpers\SearchableFinder::class, + 'Algolia\ScoutExtended\Managers\EngineManager' => \Algolia\ScoutExtended\Managers\EngineManager::class, + 'Algolia\ScoutExtended\Searchable\AggregatorObserver' => \Algolia\ScoutExtended\Searchable\AggregatorObserver::class, 'Asm89\Stack\CorsService' => \Asm89\Stack\CorsService::class, 'CloudCreativity\LaravelJsonApi\Api\Repository' => \CloudCreativity\LaravelJsonApi\Api\Repository::class, 'CloudCreativity\LaravelJsonApi\Contracts\ContainerInterface' => \CloudCreativity\LaravelJsonApi\Container::class, @@ -863,7 +903,7 @@ namespace PHPSTORM_META { 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, 'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class, 'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class, - 'Laravel\Scout\EngineManager' => \Laravel\Scout\EngineManager::class, + 'Laravel\Scout\EngineManager' => \Algolia\ScoutExtended\Managers\EngineManager::class, 'Neomerx\JsonApi\Contracts\Encoder\Parameters\EncodingParametersInterface' => \CloudCreativity\LaravelJsonApi\Encoder\Parameters\EncodingParameters::class, 'Neomerx\JsonApi\Contracts\Http\Headers\HeaderParametersInterface' => \Neomerx\JsonApi\Http\Headers\HeaderParameters::class, 'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class, @@ -1011,6 +1051,14 @@ namespace PHPSTORM_META { ])); override(\App::get(0), map([ '' => '@', + 'Algolia\AlgoliaSearch\AnalyticsClient' => \Algolia\AlgoliaSearch\AnalyticsClient::class, + 'Algolia\AlgoliaSearch\SearchClient' => \Algolia\AlgoliaSearch\SearchClient::class, + 'Algolia\ScoutExtended\Algolia' => \Algolia\ScoutExtended\Algolia::class, + 'Algolia\ScoutExtended\Contracts\LocalSettingsRepositoryContract' => \Algolia\ScoutExtended\Repositories\LocalSettingsRepository::class, + 'Algolia\ScoutExtended\Engines\AlgoliaEngine' => \Algolia\ScoutExtended\Engines\AlgoliaEngine::class, + 'Algolia\ScoutExtended\Helpers\SearchableFinder' => \Algolia\ScoutExtended\Helpers\SearchableFinder::class, + 'Algolia\ScoutExtended\Managers\EngineManager' => \Algolia\ScoutExtended\Managers\EngineManager::class, + 'Algolia\ScoutExtended\Searchable\AggregatorObserver' => \Algolia\ScoutExtended\Searchable\AggregatorObserver::class, 'Asm89\Stack\CorsService' => \Asm89\Stack\CorsService::class, 'CloudCreativity\LaravelJsonApi\Api\Repository' => \CloudCreativity\LaravelJsonApi\Api\Repository::class, 'CloudCreativity\LaravelJsonApi\Contracts\ContainerInterface' => \CloudCreativity\LaravelJsonApi\Container::class, @@ -1063,7 +1111,7 @@ namespace PHPSTORM_META { 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, 'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class, 'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class, - 'Laravel\Scout\EngineManager' => \Laravel\Scout\EngineManager::class, + 'Laravel\Scout\EngineManager' => \Algolia\ScoutExtended\Managers\EngineManager::class, 'Neomerx\JsonApi\Contracts\Encoder\Parameters\EncodingParametersInterface' => \CloudCreativity\LaravelJsonApi\Encoder\Parameters\EncodingParameters::class, 'Neomerx\JsonApi\Contracts\Http\Headers\HeaderParametersInterface' => \Neomerx\JsonApi\Http\Headers\HeaderParameters::class, 'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class, @@ -1211,6 +1259,14 @@ namespace PHPSTORM_META { ])); override(\App::make(0), map([ '' => '@', + 'Algolia\AlgoliaSearch\AnalyticsClient' => \Algolia\AlgoliaSearch\AnalyticsClient::class, + 'Algolia\AlgoliaSearch\SearchClient' => \Algolia\AlgoliaSearch\SearchClient::class, + 'Algolia\ScoutExtended\Algolia' => \Algolia\ScoutExtended\Algolia::class, + 'Algolia\ScoutExtended\Contracts\LocalSettingsRepositoryContract' => \Algolia\ScoutExtended\Repositories\LocalSettingsRepository::class, + 'Algolia\ScoutExtended\Engines\AlgoliaEngine' => \Algolia\ScoutExtended\Engines\AlgoliaEngine::class, + 'Algolia\ScoutExtended\Helpers\SearchableFinder' => \Algolia\ScoutExtended\Helpers\SearchableFinder::class, + 'Algolia\ScoutExtended\Managers\EngineManager' => \Algolia\ScoutExtended\Managers\EngineManager::class, + 'Algolia\ScoutExtended\Searchable\AggregatorObserver' => \Algolia\ScoutExtended\Searchable\AggregatorObserver::class, 'Asm89\Stack\CorsService' => \Asm89\Stack\CorsService::class, 'CloudCreativity\LaravelJsonApi\Api\Repository' => \CloudCreativity\LaravelJsonApi\Api\Repository::class, 'CloudCreativity\LaravelJsonApi\Contracts\ContainerInterface' => \CloudCreativity\LaravelJsonApi\Container::class, @@ -1263,7 +1319,7 @@ namespace PHPSTORM_META { 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, 'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class, 'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class, - 'Laravel\Scout\EngineManager' => \Laravel\Scout\EngineManager::class, + 'Laravel\Scout\EngineManager' => \Algolia\ScoutExtended\Managers\EngineManager::class, 'Neomerx\JsonApi\Contracts\Encoder\Parameters\EncodingParametersInterface' => \CloudCreativity\LaravelJsonApi\Encoder\Parameters\EncodingParameters::class, 'Neomerx\JsonApi\Contracts\Http\Headers\HeaderParametersInterface' => \Neomerx\JsonApi\Http\Headers\HeaderParameters::class, 'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class, @@ -1411,6 +1467,14 @@ namespace PHPSTORM_META { ])); override(\App::makeWith(0), map([ '' => '@', + 'Algolia\AlgoliaSearch\AnalyticsClient' => \Algolia\AlgoliaSearch\AnalyticsClient::class, + 'Algolia\AlgoliaSearch\SearchClient' => \Algolia\AlgoliaSearch\SearchClient::class, + 'Algolia\ScoutExtended\Algolia' => \Algolia\ScoutExtended\Algolia::class, + 'Algolia\ScoutExtended\Contracts\LocalSettingsRepositoryContract' => \Algolia\ScoutExtended\Repositories\LocalSettingsRepository::class, + 'Algolia\ScoutExtended\Engines\AlgoliaEngine' => \Algolia\ScoutExtended\Engines\AlgoliaEngine::class, + 'Algolia\ScoutExtended\Helpers\SearchableFinder' => \Algolia\ScoutExtended\Helpers\SearchableFinder::class, + 'Algolia\ScoutExtended\Managers\EngineManager' => \Algolia\ScoutExtended\Managers\EngineManager::class, + 'Algolia\ScoutExtended\Searchable\AggregatorObserver' => \Algolia\ScoutExtended\Searchable\AggregatorObserver::class, 'Asm89\Stack\CorsService' => \Asm89\Stack\CorsService::class, 'CloudCreativity\LaravelJsonApi\Api\Repository' => \CloudCreativity\LaravelJsonApi\Api\Repository::class, 'CloudCreativity\LaravelJsonApi\Contracts\ContainerInterface' => \CloudCreativity\LaravelJsonApi\Container::class, @@ -1463,7 +1527,7 @@ namespace PHPSTORM_META { 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, 'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class, 'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class, - 'Laravel\Scout\EngineManager' => \Laravel\Scout\EngineManager::class, + 'Laravel\Scout\EngineManager' => \Algolia\ScoutExtended\Managers\EngineManager::class, 'Neomerx\JsonApi\Contracts\Encoder\Parameters\EncodingParametersInterface' => \CloudCreativity\LaravelJsonApi\Encoder\Parameters\EncodingParameters::class, 'Neomerx\JsonApi\Contracts\Http\Headers\HeaderParametersInterface' => \Neomerx\JsonApi\Http\Headers\HeaderParameters::class, 'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class, @@ -1611,6 +1675,14 @@ namespace PHPSTORM_META { ])); override(\app(0), map([ '' => '@', + 'Algolia\AlgoliaSearch\AnalyticsClient' => \Algolia\AlgoliaSearch\AnalyticsClient::class, + 'Algolia\AlgoliaSearch\SearchClient' => \Algolia\AlgoliaSearch\SearchClient::class, + 'Algolia\ScoutExtended\Algolia' => \Algolia\ScoutExtended\Algolia::class, + 'Algolia\ScoutExtended\Contracts\LocalSettingsRepositoryContract' => \Algolia\ScoutExtended\Repositories\LocalSettingsRepository::class, + 'Algolia\ScoutExtended\Engines\AlgoliaEngine' => \Algolia\ScoutExtended\Engines\AlgoliaEngine::class, + 'Algolia\ScoutExtended\Helpers\SearchableFinder' => \Algolia\ScoutExtended\Helpers\SearchableFinder::class, + 'Algolia\ScoutExtended\Managers\EngineManager' => \Algolia\ScoutExtended\Managers\EngineManager::class, + 'Algolia\ScoutExtended\Searchable\AggregatorObserver' => \Algolia\ScoutExtended\Searchable\AggregatorObserver::class, 'Asm89\Stack\CorsService' => \Asm89\Stack\CorsService::class, 'CloudCreativity\LaravelJsonApi\Api\Repository' => \CloudCreativity\LaravelJsonApi\Api\Repository::class, 'CloudCreativity\LaravelJsonApi\Contracts\ContainerInterface' => \CloudCreativity\LaravelJsonApi\Container::class, @@ -1663,7 +1735,7 @@ namespace PHPSTORM_META { 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, 'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class, 'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class, - 'Laravel\Scout\EngineManager' => \Laravel\Scout\EngineManager::class, + 'Laravel\Scout\EngineManager' => \Algolia\ScoutExtended\Managers\EngineManager::class, 'Neomerx\JsonApi\Contracts\Encoder\Parameters\EncodingParametersInterface' => \CloudCreativity\LaravelJsonApi\Encoder\Parameters\EncodingParameters::class, 'Neomerx\JsonApi\Contracts\Http\Headers\HeaderParametersInterface' => \Neomerx\JsonApi\Http\Headers\HeaderParameters::class, 'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class, @@ -1811,6 +1883,14 @@ namespace PHPSTORM_META { ])); override(\resolve(0), map([ '' => '@', + 'Algolia\AlgoliaSearch\AnalyticsClient' => \Algolia\AlgoliaSearch\AnalyticsClient::class, + 'Algolia\AlgoliaSearch\SearchClient' => \Algolia\AlgoliaSearch\SearchClient::class, + 'Algolia\ScoutExtended\Algolia' => \Algolia\ScoutExtended\Algolia::class, + 'Algolia\ScoutExtended\Contracts\LocalSettingsRepositoryContract' => \Algolia\ScoutExtended\Repositories\LocalSettingsRepository::class, + 'Algolia\ScoutExtended\Engines\AlgoliaEngine' => \Algolia\ScoutExtended\Engines\AlgoliaEngine::class, + 'Algolia\ScoutExtended\Helpers\SearchableFinder' => \Algolia\ScoutExtended\Helpers\SearchableFinder::class, + 'Algolia\ScoutExtended\Managers\EngineManager' => \Algolia\ScoutExtended\Managers\EngineManager::class, + 'Algolia\ScoutExtended\Searchable\AggregatorObserver' => \Algolia\ScoutExtended\Searchable\AggregatorObserver::class, 'Asm89\Stack\CorsService' => \Asm89\Stack\CorsService::class, 'CloudCreativity\LaravelJsonApi\Api\Repository' => \CloudCreativity\LaravelJsonApi\Api\Repository::class, 'CloudCreativity\LaravelJsonApi\Contracts\ContainerInterface' => \CloudCreativity\LaravelJsonApi\Container::class, @@ -1863,7 +1943,7 @@ namespace PHPSTORM_META { 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, 'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class, 'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class, - 'Laravel\Scout\EngineManager' => \Laravel\Scout\EngineManager::class, + 'Laravel\Scout\EngineManager' => \Algolia\ScoutExtended\Managers\EngineManager::class, 'Neomerx\JsonApi\Contracts\Encoder\Parameters\EncodingParametersInterface' => \CloudCreativity\LaravelJsonApi\Encoder\Parameters\EncodingParameters::class, 'Neomerx\JsonApi\Contracts\Http\Headers\HeaderParametersInterface' => \Neomerx\JsonApi\Http\Headers\HeaderParameters::class, 'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class, @@ -2011,6 +2091,14 @@ namespace PHPSTORM_META { ])); override(\Psr\Container\ContainerInterface::get(0), map([ '' => '@', + 'Algolia\AlgoliaSearch\AnalyticsClient' => \Algolia\AlgoliaSearch\AnalyticsClient::class, + 'Algolia\AlgoliaSearch\SearchClient' => \Algolia\AlgoliaSearch\SearchClient::class, + 'Algolia\ScoutExtended\Algolia' => \Algolia\ScoutExtended\Algolia::class, + 'Algolia\ScoutExtended\Contracts\LocalSettingsRepositoryContract' => \Algolia\ScoutExtended\Repositories\LocalSettingsRepository::class, + 'Algolia\ScoutExtended\Engines\AlgoliaEngine' => \Algolia\ScoutExtended\Engines\AlgoliaEngine::class, + 'Algolia\ScoutExtended\Helpers\SearchableFinder' => \Algolia\ScoutExtended\Helpers\SearchableFinder::class, + 'Algolia\ScoutExtended\Managers\EngineManager' => \Algolia\ScoutExtended\Managers\EngineManager::class, + 'Algolia\ScoutExtended\Searchable\AggregatorObserver' => \Algolia\ScoutExtended\Searchable\AggregatorObserver::class, 'Asm89\Stack\CorsService' => \Asm89\Stack\CorsService::class, 'CloudCreativity\LaravelJsonApi\Api\Repository' => \CloudCreativity\LaravelJsonApi\Api\Repository::class, 'CloudCreativity\LaravelJsonApi\Contracts\ContainerInterface' => \CloudCreativity\LaravelJsonApi\Container::class, @@ -2063,7 +2151,7 @@ namespace PHPSTORM_META { 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, 'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class, 'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class, - 'Laravel\Scout\EngineManager' => \Laravel\Scout\EngineManager::class, + 'Laravel\Scout\EngineManager' => \Algolia\ScoutExtended\Managers\EngineManager::class, 'Neomerx\JsonApi\Contracts\Encoder\Parameters\EncodingParametersInterface' => \CloudCreativity\LaravelJsonApi\Encoder\Parameters\EncodingParameters::class, 'Neomerx\JsonApi\Contracts\Http\Headers\HeaderParametersInterface' => \Neomerx\JsonApi\Http\Headers\HeaderParameters::class, 'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class, diff --git a/_ide_helper.php b/_ide_helper.php index 8eb26f9..2517b18 100644 --- a/_ide_helper.php +++ b/_ide_helper.php @@ -16675,6 +16675,19 @@ namespace { return $instance->unless($value, $callback, $default); } + /** + * + * + * @see \Algolia\ScoutExtended\ScoutExtendedServiceProvider::registerMacros() + * @param array $array + * @param array|null $transformers + * @static + */ + public static function transform($array, $transformers = null) + { + return \Illuminate\Database\Eloquent\Builder::transform($array, $transformers); + } + /** * Set the columns to be selected. * diff --git a/app/Http/Controllers/IngredientPickerController.php b/app/Http/Controllers/IngredientPickerController.php index 83a5888..165dfac 100644 --- a/app/Http/Controllers/IngredientPickerController.php +++ b/app/Http/Controllers/IngredientPickerController.php @@ -4,6 +4,7 @@ namespace App\Http\Controllers; use App\Models\Food; use App\Models\Recipe; +use App\Search\Ingredient; use ElasticScoutDriverPlus\Builders\MultiMatchQueryBuilder; use ElasticScoutDriverPlus\Builders\TermsQueryBuilder; use Illuminate\Database\Eloquent\Collection; @@ -21,6 +22,7 @@ class IngredientPickerController extends Controller $term = $request->query->get('term'); if (!empty($term)) { $results = match (env('SCOUT_DRIVER')) { + 'algolia' => $this->searchWithAlgolia($term), 'elastic' => $this->searchWithElasticSearch($term), default => $this->searchWithDatabaseLike($term), }; @@ -29,6 +31,13 @@ class IngredientPickerController extends Controller return response()->json($results->values()); } + /** + * Search using an Algolia service. + */ + private function searchWithAlgolia(string $term): Collection { + return Ingredient::search($term)->take(10)->get(); + } + /** * Search using an ElasticSearch service. */ diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 0899dab..585fcca 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -2,6 +2,7 @@ namespace App\Providers; +use App\Search\Ingredient; use CloudCreativity\LaravelJsonApi\LaravelJsonApi; use Illuminate\Support\ServiceProvider; @@ -25,5 +26,9 @@ class AppServiceProvider extends ServiceProvider public function boot() { LaravelJsonApi::defaultApi('v1'); + + if (env('SCOUT_DRIVER') === 'algolia') { + Ingredient::bootSearchable(); + } } } diff --git a/app/Search/Ingredient.php b/app/Search/Ingredient.php new file mode 100644 index 0000000..0feda28 --- /dev/null +++ b/app/Search/Ingredient.php @@ -0,0 +1,16 @@ +=5.6.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.4 || ^6.5 || ^5.7" + }, + "suggest": { + "ext-gmp": "To convert GMP numbers into PHP code" + }, + "type": "library", + "autoload": { + "psr-4": { + "Riimu\\Kit\\PHPEncoder\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Riikka Kalliomäki", + "email": "riikka.kalliomaki@gmail.com", + "homepage": "http://riimu.net" + } + ], + "description": "Highly customizable alternative to var_export for PHP code generation", + "homepage": "http://kit.riimu.net", + "keywords": [ + "code", + "encoder", + "export", + "generator", + "variable" + ], + "support": { + "issues": "https://github.com/Riimu/Kit-PHPEncoder/issues", + "source": "https://github.com/Riimu/Kit-PHPEncoder/tree/v2.4.1" + }, + "time": "2020-11-29T16:53:17+00:00" + }, { "name": "spatie/eloquent-sortable", "version": "3.11.0",