mirror of https://github.com/kcal-app/kcal.git
Add Heroku support (#12)
This commit is contained in:
parent
e1e3a3620a
commit
350a08a14d
|
@ -17,17 +17,22 @@ DB_DATABASE=kcal
|
|||
DB_USERNAME=kcal
|
||||
DB_PASSWORD=kcal
|
||||
|
||||
#REDIS_URL=
|
||||
REDIS_HOST=redis
|
||||
#REDIS_PASSWORD=
|
||||
REDIS_PORT=6379
|
||||
#REDIS_DB=
|
||||
|
||||
#SCOUT_DRIVER=null
|
||||
|
||||
#SCOUT_DRIVER=algolia
|
||||
#ALGOLIA_APP_ID=
|
||||
#ALGOLIA_SECRET=
|
||||
|
||||
SCOUT_DRIVER=elastic
|
||||
ELASTIC_HOST=elasticsearch:9200
|
||||
ELASTIC_PORT=9200
|
||||
|
||||
MAIL_HOST=mailhog
|
||||
MAIL_PORT=1025
|
||||
MAILHOG_ADMIN_PORT=8025
|
||||
|
||||
BROADCAST_DRIVER=log
|
||||
CACHE_DRIVER=file
|
||||
QUEUE_CONNECTION=sync
|
||||
|
|
|
@ -15,14 +15,20 @@ DB_DATABASE=
|
|||
DB_USERNAME=
|
||||
DB_PASSWORD=
|
||||
|
||||
REDIS_HOST=
|
||||
REDIS_PORT=6379
|
||||
#REDIS_URL=
|
||||
#REDIS_HOST=
|
||||
#REDIS_PASSWORD=
|
||||
#REDIS_PORT=6379
|
||||
#REDIS_DB=
|
||||
|
||||
SCOUT_DRIVER=elastic
|
||||
ELASTIC_HOST=
|
||||
SCOUT_DRIVER=null
|
||||
|
||||
MAIL_HOST=
|
||||
MAIL_PORT=
|
||||
#SCOUT_DRIVER=algolia
|
||||
#ALGOLIA_APP_ID=
|
||||
#ALGOLIA_SECRET=
|
||||
|
||||
#SCOUT_DRIVER=elastic
|
||||
#ELASTIC_HOST=
|
||||
|
||||
BROADCAST_DRIVER=log
|
||||
CACHE_DRIVER=file
|
||||
|
|
|
@ -15,3 +15,4 @@ Homestead.yaml
|
|||
docker-compose.override.yml
|
||||
npm-debug.log
|
||||
yarn-error.log
|
||||
phpunit.xml
|
||||
|
|
|
@ -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,
|
||||
|
@ -37,6 +45,8 @@ namespace PHPSTORM_META {
|
|||
'Facade\Ignition\QueryRecorder\QueryRecorder' => \Facade\Ignition\QueryRecorder\QueryRecorder::class,
|
||||
'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class,
|
||||
'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class,
|
||||
'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class,
|
||||
'Illuminate\Bus\DatabaseBatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class,
|
||||
'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class,
|
||||
'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class,
|
||||
'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class,
|
||||
|
@ -61,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,
|
||||
|
@ -75,6 +85,7 @@ namespace PHPSTORM_META {
|
|||
'auth' => \Illuminate\Auth\AuthManager::class,
|
||||
'auth.driver' => \Illuminate\Auth\SessionGuard::class,
|
||||
'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class,
|
||||
'auth.password.broker' => \Illuminate\Auth\Passwords\PasswordBroker::class,
|
||||
'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class,
|
||||
'cache' => \Illuminate\Cache\CacheManager::class,
|
||||
'cache.store' => \Illuminate\Cache\Repository::class,
|
||||
|
@ -167,6 +178,7 @@ namespace PHPSTORM_META {
|
|||
'composer' => \Illuminate\Support\Composer::class,
|
||||
'cookie' => \Illuminate\Cookie\CookieJar::class,
|
||||
'db' => \Illuminate\Database\DatabaseManager::class,
|
||||
'db.connection' => \Illuminate\Database\MySqlConnection::class,
|
||||
'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class,
|
||||
'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class,
|
||||
'encrypter' => \Illuminate\Encryption\Encrypter::class,
|
||||
|
@ -207,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,
|
||||
|
@ -233,6 +253,8 @@ namespace PHPSTORM_META {
|
|||
'Facade\Ignition\QueryRecorder\QueryRecorder' => \Facade\Ignition\QueryRecorder\QueryRecorder::class,
|
||||
'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class,
|
||||
'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class,
|
||||
'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class,
|
||||
'Illuminate\Bus\DatabaseBatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class,
|
||||
'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class,
|
||||
'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class,
|
||||
'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class,
|
||||
|
@ -257,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,
|
||||
|
@ -271,6 +293,7 @@ namespace PHPSTORM_META {
|
|||
'auth' => \Illuminate\Auth\AuthManager::class,
|
||||
'auth.driver' => \Illuminate\Auth\SessionGuard::class,
|
||||
'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class,
|
||||
'auth.password.broker' => \Illuminate\Auth\Passwords\PasswordBroker::class,
|
||||
'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class,
|
||||
'cache' => \Illuminate\Cache\CacheManager::class,
|
||||
'cache.store' => \Illuminate\Cache\Repository::class,
|
||||
|
@ -363,6 +386,7 @@ namespace PHPSTORM_META {
|
|||
'composer' => \Illuminate\Support\Composer::class,
|
||||
'cookie' => \Illuminate\Cookie\CookieJar::class,
|
||||
'db' => \Illuminate\Database\DatabaseManager::class,
|
||||
'db.connection' => \Illuminate\Database\MySqlConnection::class,
|
||||
'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class,
|
||||
'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class,
|
||||
'encrypter' => \Illuminate\Encryption\Encrypter::class,
|
||||
|
@ -403,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,
|
||||
|
@ -429,6 +461,8 @@ namespace PHPSTORM_META {
|
|||
'Facade\Ignition\QueryRecorder\QueryRecorder' => \Facade\Ignition\QueryRecorder\QueryRecorder::class,
|
||||
'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class,
|
||||
'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class,
|
||||
'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class,
|
||||
'Illuminate\Bus\DatabaseBatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class,
|
||||
'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class,
|
||||
'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class,
|
||||
'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class,
|
||||
|
@ -453,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,
|
||||
|
@ -467,6 +501,7 @@ namespace PHPSTORM_META {
|
|||
'auth' => \Illuminate\Auth\AuthManager::class,
|
||||
'auth.driver' => \Illuminate\Auth\SessionGuard::class,
|
||||
'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class,
|
||||
'auth.password.broker' => \Illuminate\Auth\Passwords\PasswordBroker::class,
|
||||
'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class,
|
||||
'cache' => \Illuminate\Cache\CacheManager::class,
|
||||
'cache.store' => \Illuminate\Cache\Repository::class,
|
||||
|
@ -559,6 +594,7 @@ namespace PHPSTORM_META {
|
|||
'composer' => \Illuminate\Support\Composer::class,
|
||||
'cookie' => \Illuminate\Cookie\CookieJar::class,
|
||||
'db' => \Illuminate\Database\DatabaseManager::class,
|
||||
'db.connection' => \Illuminate\Database\MySqlConnection::class,
|
||||
'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class,
|
||||
'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class,
|
||||
'encrypter' => \Illuminate\Encryption\Encrypter::class,
|
||||
|
@ -599,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,
|
||||
|
@ -625,6 +669,8 @@ namespace PHPSTORM_META {
|
|||
'Facade\Ignition\QueryRecorder\QueryRecorder' => \Facade\Ignition\QueryRecorder\QueryRecorder::class,
|
||||
'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class,
|
||||
'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class,
|
||||
'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class,
|
||||
'Illuminate\Bus\DatabaseBatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class,
|
||||
'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class,
|
||||
'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class,
|
||||
'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class,
|
||||
|
@ -649,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,
|
||||
|
@ -663,6 +709,7 @@ namespace PHPSTORM_META {
|
|||
'auth' => \Illuminate\Auth\AuthManager::class,
|
||||
'auth.driver' => \Illuminate\Auth\SessionGuard::class,
|
||||
'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class,
|
||||
'auth.password.broker' => \Illuminate\Auth\Passwords\PasswordBroker::class,
|
||||
'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class,
|
||||
'cache' => \Illuminate\Cache\CacheManager::class,
|
||||
'cache.store' => \Illuminate\Cache\Repository::class,
|
||||
|
@ -755,6 +802,7 @@ namespace PHPSTORM_META {
|
|||
'composer' => \Illuminate\Support\Composer::class,
|
||||
'cookie' => \Illuminate\Cookie\CookieJar::class,
|
||||
'db' => \Illuminate\Database\DatabaseManager::class,
|
||||
'db.connection' => \Illuminate\Database\MySqlConnection::class,
|
||||
'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class,
|
||||
'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class,
|
||||
'encrypter' => \Illuminate\Encryption\Encrypter::class,
|
||||
|
@ -795,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,
|
||||
|
@ -821,6 +877,8 @@ namespace PHPSTORM_META {
|
|||
'Facade\Ignition\QueryRecorder\QueryRecorder' => \Facade\Ignition\QueryRecorder\QueryRecorder::class,
|
||||
'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class,
|
||||
'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class,
|
||||
'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class,
|
||||
'Illuminate\Bus\DatabaseBatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class,
|
||||
'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class,
|
||||
'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class,
|
||||
'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class,
|
||||
|
@ -845,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,
|
||||
|
@ -859,6 +917,7 @@ namespace PHPSTORM_META {
|
|||
'auth' => \Illuminate\Auth\AuthManager::class,
|
||||
'auth.driver' => \Illuminate\Auth\SessionGuard::class,
|
||||
'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class,
|
||||
'auth.password.broker' => \Illuminate\Auth\Passwords\PasswordBroker::class,
|
||||
'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class,
|
||||
'cache' => \Illuminate\Cache\CacheManager::class,
|
||||
'cache.store' => \Illuminate\Cache\Repository::class,
|
||||
|
@ -951,6 +1010,7 @@ namespace PHPSTORM_META {
|
|||
'composer' => \Illuminate\Support\Composer::class,
|
||||
'cookie' => \Illuminate\Cookie\CookieJar::class,
|
||||
'db' => \Illuminate\Database\DatabaseManager::class,
|
||||
'db.connection' => \Illuminate\Database\MySqlConnection::class,
|
||||
'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class,
|
||||
'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class,
|
||||
'encrypter' => \Illuminate\Encryption\Encrypter::class,
|
||||
|
@ -991,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,
|
||||
|
@ -1017,6 +1085,8 @@ namespace PHPSTORM_META {
|
|||
'Facade\Ignition\QueryRecorder\QueryRecorder' => \Facade\Ignition\QueryRecorder\QueryRecorder::class,
|
||||
'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class,
|
||||
'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class,
|
||||
'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class,
|
||||
'Illuminate\Bus\DatabaseBatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class,
|
||||
'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class,
|
||||
'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class,
|
||||
'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class,
|
||||
|
@ -1041,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,
|
||||
|
@ -1055,6 +1125,7 @@ namespace PHPSTORM_META {
|
|||
'auth' => \Illuminate\Auth\AuthManager::class,
|
||||
'auth.driver' => \Illuminate\Auth\SessionGuard::class,
|
||||
'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class,
|
||||
'auth.password.broker' => \Illuminate\Auth\Passwords\PasswordBroker::class,
|
||||
'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class,
|
||||
'cache' => \Illuminate\Cache\CacheManager::class,
|
||||
'cache.store' => \Illuminate\Cache\Repository::class,
|
||||
|
@ -1147,6 +1218,7 @@ namespace PHPSTORM_META {
|
|||
'composer' => \Illuminate\Support\Composer::class,
|
||||
'cookie' => \Illuminate\Cookie\CookieJar::class,
|
||||
'db' => \Illuminate\Database\DatabaseManager::class,
|
||||
'db.connection' => \Illuminate\Database\MySqlConnection::class,
|
||||
'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class,
|
||||
'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class,
|
||||
'encrypter' => \Illuminate\Encryption\Encrypter::class,
|
||||
|
@ -1187,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,
|
||||
|
@ -1213,6 +1293,8 @@ namespace PHPSTORM_META {
|
|||
'Facade\Ignition\QueryRecorder\QueryRecorder' => \Facade\Ignition\QueryRecorder\QueryRecorder::class,
|
||||
'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class,
|
||||
'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class,
|
||||
'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class,
|
||||
'Illuminate\Bus\DatabaseBatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class,
|
||||
'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class,
|
||||
'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class,
|
||||
'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class,
|
||||
|
@ -1237,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,
|
||||
|
@ -1251,6 +1333,7 @@ namespace PHPSTORM_META {
|
|||
'auth' => \Illuminate\Auth\AuthManager::class,
|
||||
'auth.driver' => \Illuminate\Auth\SessionGuard::class,
|
||||
'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class,
|
||||
'auth.password.broker' => \Illuminate\Auth\Passwords\PasswordBroker::class,
|
||||
'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class,
|
||||
'cache' => \Illuminate\Cache\CacheManager::class,
|
||||
'cache.store' => \Illuminate\Cache\Repository::class,
|
||||
|
@ -1343,6 +1426,7 @@ namespace PHPSTORM_META {
|
|||
'composer' => \Illuminate\Support\Composer::class,
|
||||
'cookie' => \Illuminate\Cookie\CookieJar::class,
|
||||
'db' => \Illuminate\Database\DatabaseManager::class,
|
||||
'db.connection' => \Illuminate\Database\MySqlConnection::class,
|
||||
'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class,
|
||||
'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class,
|
||||
'encrypter' => \Illuminate\Encryption\Encrypter::class,
|
||||
|
@ -1383,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,
|
||||
|
@ -1409,6 +1501,8 @@ namespace PHPSTORM_META {
|
|||
'Facade\Ignition\QueryRecorder\QueryRecorder' => \Facade\Ignition\QueryRecorder\QueryRecorder::class,
|
||||
'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class,
|
||||
'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class,
|
||||
'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class,
|
||||
'Illuminate\Bus\DatabaseBatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class,
|
||||
'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class,
|
||||
'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class,
|
||||
'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class,
|
||||
|
@ -1433,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,
|
||||
|
@ -1447,6 +1541,7 @@ namespace PHPSTORM_META {
|
|||
'auth' => \Illuminate\Auth\AuthManager::class,
|
||||
'auth.driver' => \Illuminate\Auth\SessionGuard::class,
|
||||
'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class,
|
||||
'auth.password.broker' => \Illuminate\Auth\Passwords\PasswordBroker::class,
|
||||
'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class,
|
||||
'cache' => \Illuminate\Cache\CacheManager::class,
|
||||
'cache.store' => \Illuminate\Cache\Repository::class,
|
||||
|
@ -1539,6 +1634,7 @@ namespace PHPSTORM_META {
|
|||
'composer' => \Illuminate\Support\Composer::class,
|
||||
'cookie' => \Illuminate\Cookie\CookieJar::class,
|
||||
'db' => \Illuminate\Database\DatabaseManager::class,
|
||||
'db.connection' => \Illuminate\Database\MySqlConnection::class,
|
||||
'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class,
|
||||
'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class,
|
||||
'encrypter' => \Illuminate\Encryption\Encrypter::class,
|
||||
|
@ -1579,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,
|
||||
|
@ -1605,6 +1709,8 @@ namespace PHPSTORM_META {
|
|||
'Facade\Ignition\QueryRecorder\QueryRecorder' => \Facade\Ignition\QueryRecorder\QueryRecorder::class,
|
||||
'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class,
|
||||
'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class,
|
||||
'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class,
|
||||
'Illuminate\Bus\DatabaseBatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class,
|
||||
'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class,
|
||||
'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class,
|
||||
'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class,
|
||||
|
@ -1629,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,
|
||||
|
@ -1643,6 +1749,7 @@ namespace PHPSTORM_META {
|
|||
'auth' => \Illuminate\Auth\AuthManager::class,
|
||||
'auth.driver' => \Illuminate\Auth\SessionGuard::class,
|
||||
'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class,
|
||||
'auth.password.broker' => \Illuminate\Auth\Passwords\PasswordBroker::class,
|
||||
'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class,
|
||||
'cache' => \Illuminate\Cache\CacheManager::class,
|
||||
'cache.store' => \Illuminate\Cache\Repository::class,
|
||||
|
@ -1735,6 +1842,7 @@ namespace PHPSTORM_META {
|
|||
'composer' => \Illuminate\Support\Composer::class,
|
||||
'cookie' => \Illuminate\Cookie\CookieJar::class,
|
||||
'db' => \Illuminate\Database\DatabaseManager::class,
|
||||
'db.connection' => \Illuminate\Database\MySqlConnection::class,
|
||||
'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class,
|
||||
'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class,
|
||||
'encrypter' => \Illuminate\Encryption\Encrypter::class,
|
||||
|
@ -1775,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,
|
||||
|
@ -1801,6 +1917,8 @@ namespace PHPSTORM_META {
|
|||
'Facade\Ignition\QueryRecorder\QueryRecorder' => \Facade\Ignition\QueryRecorder\QueryRecorder::class,
|
||||
'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class,
|
||||
'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class,
|
||||
'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class,
|
||||
'Illuminate\Bus\DatabaseBatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class,
|
||||
'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class,
|
||||
'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class,
|
||||
'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class,
|
||||
|
@ -1825,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,
|
||||
|
@ -1839,6 +1957,7 @@ namespace PHPSTORM_META {
|
|||
'auth' => \Illuminate\Auth\AuthManager::class,
|
||||
'auth.driver' => \Illuminate\Auth\SessionGuard::class,
|
||||
'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class,
|
||||
'auth.password.broker' => \Illuminate\Auth\Passwords\PasswordBroker::class,
|
||||
'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class,
|
||||
'cache' => \Illuminate\Cache\CacheManager::class,
|
||||
'cache.store' => \Illuminate\Cache\Repository::class,
|
||||
|
@ -1931,6 +2050,7 @@ namespace PHPSTORM_META {
|
|||
'composer' => \Illuminate\Support\Composer::class,
|
||||
'cookie' => \Illuminate\Cookie\CookieJar::class,
|
||||
'db' => \Illuminate\Database\DatabaseManager::class,
|
||||
'db.connection' => \Illuminate\Database\MySqlConnection::class,
|
||||
'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class,
|
||||
'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class,
|
||||
'encrypter' => \Illuminate\Encryption\Encrypter::class,
|
||||
|
@ -1971,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,
|
||||
|
@ -1997,6 +2125,8 @@ namespace PHPSTORM_META {
|
|||
'Facade\Ignition\QueryRecorder\QueryRecorder' => \Facade\Ignition\QueryRecorder\QueryRecorder::class,
|
||||
'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class,
|
||||
'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class,
|
||||
'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class,
|
||||
'Illuminate\Bus\DatabaseBatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class,
|
||||
'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class,
|
||||
'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class,
|
||||
'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class,
|
||||
|
@ -2021,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,
|
||||
|
@ -2035,6 +2165,7 @@ namespace PHPSTORM_META {
|
|||
'auth' => \Illuminate\Auth\AuthManager::class,
|
||||
'auth.driver' => \Illuminate\Auth\SessionGuard::class,
|
||||
'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class,
|
||||
'auth.password.broker' => \Illuminate\Auth\Passwords\PasswordBroker::class,
|
||||
'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class,
|
||||
'cache' => \Illuminate\Cache\CacheManager::class,
|
||||
'cache.store' => \Illuminate\Cache\Repository::class,
|
||||
|
@ -2127,6 +2258,7 @@ namespace PHPSTORM_META {
|
|||
'composer' => \Illuminate\Support\Composer::class,
|
||||
'cookie' => \Illuminate\Cookie\CookieJar::class,
|
||||
'db' => \Illuminate\Database\DatabaseManager::class,
|
||||
'db.connection' => \Illuminate\Database\MySqlConnection::class,
|
||||
'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class,
|
||||
'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class,
|
||||
'encrypter' => \Illuminate\Encryption\Encrypter::class,
|
||||
|
|
82
README.md
82
README.md
|
@ -1,6 +1,84 @@
|
|||
# kcal – the personal food nutrition journal
|
||||
[](https://github.com/kcal-app/kcal/actions/workflows/ci.yml)
|
||||
[](https://coveralls.io/github/kcal-app/kcal?branch=tests)
|
||||
[](https://coveralls.io/github/kcal-app/kcal)
|
||||
|
||||
## Deployment
|
||||
|
||||
### Heroku
|
||||
|
||||
[](https://heroku.com/deploy)
|
||||
|
||||
The default username and password for a Heroku deployment is `kcal`/`kcal`.
|
||||
|
||||
#### Using Heroku CLI
|
||||
|
||||
For a manual deploy using Heroku CLI, execute the following after initial deployment:
|
||||
|
||||
heroku run php artisan migrate
|
||||
heroku run php artisan user:add
|
||||
heroku config:set APP_KEY=$(php artisan --no-ansi key:generate --show)
|
||||
|
||||
#### Search drivers
|
||||
|
||||
See the [Search](#search-mag) section for information about supported drivers. Additional
|
||||
environment variable configuration is necessary when using any search driver other
|
||||
than the default ("null").
|
||||
|
||||
#### Redis Add-on
|
||||
|
||||
The [Heroku Redis](https://elements.heroku.com/addons/heroku-redis) add-on can be
|
||||
added to the app and will work without any configuration changes. It is left out
|
||||
of the default build only because it takes a very long time to provision.
|
||||
|
||||
## Search :mag:
|
||||
|
||||
The "ingredient" (food or recipe) search for journal entries and recipe ingredients
|
||||
supports three different backends using the `SCOUT_DRIVER` environment variable.
|
||||
In all cases, always ensure that the `SCOUT_DRIVER` environment variable is only
|
||||
set once in kcal's `.env` file.
|
||||
|
||||
Currently, the food and recipe *list* searches do not take advantage of these
|
||||
search drivers. Support for those searches will be added if the Laravel JSON:API
|
||||
adds support for Scout (see: laravel-json-api/laravel#32).
|
||||
|
||||
### Algolia (`algolia`)
|
||||
|
||||
1. [Create and/or log in](https://www.algolia.com/users/sign_in) to an Algolia account.
|
||||
|
||||
1. Create an application for kcal.
|
||||
|
||||
1. Navigate to the application's "API Keys" section.
|
||||
|
||||
1. Using the **Application ID** and **Admin API Key** values, update kcal's `.env` file:
|
||||
|
||||
SCOUT_DRIVER=algolia
|
||||
ALGOLIA_APP_ID=<APPLICATION_ID>
|
||||
ALGOLIA_SECRET=<ADMIN_API_KEY>
|
||||
|
||||
### ElasticSearch (`elastic`)
|
||||
|
||||
1. Determine the host and port for your ElasticSearch service.
|
||||
|
||||
1. Update kcal's `.env` file.
|
||||
|
||||
SCOUT_DRIVER=elastic
|
||||
ELASTIC_HOST=<HOST:PORT>
|
||||
ELASTIC_PORT=<PORT>
|
||||
|
||||
Note: The `ELASTIC_PORT` variable is a convenience option specifically for
|
||||
Docker Compose configurations and is not strictly required.
|
||||
|
||||
1. Run Elastic's migrations.
|
||||
|
||||
php artisan elastic:migrate
|
||||
|
||||
### Fallback (`null`)
|
||||
|
||||
The fallback driver is a simple `WHERE ... LIKE` clause search on a couple of key
|
||||
fields. Results will not be ordered by relevance, and some fields will not be
|
||||
searched (e.g. the tags fields). Using one of the other options is highly recommended.
|
||||
|
||||
Set `SCOUT_DRIVER=null` in kcal's `.env` file to use the fallback driver.
|
||||
|
||||
## Development
|
||||
|
||||
|
@ -52,5 +130,5 @@
|
|||
|
||||
The default username and password is `admin@kcal.test`.
|
||||
|
||||
Once the application finishing starting, navigate to [http://127.0.0.1:8080](http://127.0.0.1:8080)
|
||||
Once the application finishes starting, navigate to [http://127.0.0.1:8080](http://127.0.0.1:8080)
|
||||
(or [http://kcal.test:8080](http://kcal.test:8080) if configured).
|
||||
|
|
311
_ide_helper.php
311
_ide_helper.php
|
@ -4327,16 +4327,27 @@
|
|||
{
|
||||
/** @var \Illuminate\Database\DatabaseManager $instance */
|
||||
$instance->setReconnector($reconnector);
|
||||
}
|
||||
/**
|
||||
* Determine if the connected database is a MariaDB database.
|
||||
*
|
||||
* @return bool
|
||||
* @static
|
||||
*/
|
||||
public static function isMaria()
|
||||
{
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
return $instance->isMaria();
|
||||
}
|
||||
/**
|
||||
* Get a schema builder instance for the connection.
|
||||
*
|
||||
* @return \Illuminate\Database\Schema\SQLiteBuilder
|
||||
* @return \Illuminate\Database\Schema\MySqlBuilder
|
||||
* @static
|
||||
*/
|
||||
public static function getSchemaBuilder()
|
||||
{
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
return $instance->getSchemaBuilder();
|
||||
}
|
||||
/**
|
||||
|
@ -4344,12 +4355,12 @@
|
|||
*
|
||||
* @param \Illuminate\Filesystem\Filesystem|null $files
|
||||
* @param callable|null $processFactory
|
||||
* @throws \RuntimeException
|
||||
* @return \Illuminate\Database\Schema\MySqlSchemaState
|
||||
* @static
|
||||
*/
|
||||
public static function getSchemaState($files = null, $processFactory = null)
|
||||
{
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
return $instance->getSchemaState($files, $processFactory);
|
||||
}
|
||||
/**
|
||||
|
@ -4360,7 +4371,7 @@
|
|||
*/
|
||||
public static function useDefaultQueryGrammar()
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
$instance->useDefaultQueryGrammar();
|
||||
}
|
||||
/**
|
||||
|
@ -4371,7 +4382,7 @@
|
|||
*/
|
||||
public static function useDefaultSchemaGrammar()
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
$instance->useDefaultSchemaGrammar();
|
||||
}
|
||||
/**
|
||||
|
@ -4382,7 +4393,7 @@
|
|||
*/
|
||||
public static function useDefaultPostProcessor()
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
$instance->useDefaultPostProcessor();
|
||||
}
|
||||
/**
|
||||
|
@ -4395,7 +4406,7 @@
|
|||
*/
|
||||
public static function table($table, $as = null)
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
return $instance->table($table, $as);
|
||||
}
|
||||
/**
|
||||
|
@ -4406,7 +4417,7 @@
|
|||
*/
|
||||
public static function query()
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
return $instance->query();
|
||||
}
|
||||
/**
|
||||
|
@ -4420,7 +4431,7 @@
|
|||
*/
|
||||
public static function selectOne($query, $bindings = [], $useReadPdo = true)
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
return $instance->selectOne($query, $bindings, $useReadPdo);
|
||||
}
|
||||
/**
|
||||
|
@ -4433,7 +4444,7 @@
|
|||
*/
|
||||
public static function selectFromWriteConnection($query, $bindings = [])
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
return $instance->selectFromWriteConnection($query, $bindings);
|
||||
}
|
||||
/**
|
||||
|
@ -4447,7 +4458,7 @@
|
|||
*/
|
||||
public static function select($query, $bindings = [], $useReadPdo = true)
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
return $instance->select($query, $bindings, $useReadPdo);
|
||||
}
|
||||
/**
|
||||
|
@ -4461,7 +4472,7 @@
|
|||
*/
|
||||
public static function cursor($query, $bindings = [], $useReadPdo = true)
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
return $instance->cursor($query, $bindings, $useReadPdo);
|
||||
}
|
||||
/**
|
||||
|
@ -4474,7 +4485,7 @@
|
|||
*/
|
||||
public static function insert($query, $bindings = [])
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
return $instance->insert($query, $bindings);
|
||||
}
|
||||
/**
|
||||
|
@ -4487,7 +4498,7 @@
|
|||
*/
|
||||
public static function update($query, $bindings = [])
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
return $instance->update($query, $bindings);
|
||||
}
|
||||
/**
|
||||
|
@ -4500,7 +4511,7 @@
|
|||
*/
|
||||
public static function delete($query, $bindings = [])
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
return $instance->delete($query, $bindings);
|
||||
}
|
||||
/**
|
||||
|
@ -4513,7 +4524,7 @@
|
|||
*/
|
||||
public static function statement($query, $bindings = [])
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
return $instance->statement($query, $bindings);
|
||||
}
|
||||
/**
|
||||
|
@ -4526,7 +4537,7 @@
|
|||
*/
|
||||
public static function affectingStatement($query, $bindings = [])
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
return $instance->affectingStatement($query, $bindings);
|
||||
}
|
||||
/**
|
||||
|
@ -4538,7 +4549,7 @@
|
|||
*/
|
||||
public static function unprepared($query)
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
return $instance->unprepared($query);
|
||||
}
|
||||
/**
|
||||
|
@ -4550,7 +4561,7 @@
|
|||
*/
|
||||
public static function pretend($callback)
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
return $instance->pretend($callback);
|
||||
}
|
||||
/**
|
||||
|
@ -4563,7 +4574,7 @@
|
|||
*/
|
||||
public static function bindValues($statement, $bindings)
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
$instance->bindValues($statement, $bindings);
|
||||
}
|
||||
/**
|
||||
|
@ -4575,7 +4586,7 @@
|
|||
*/
|
||||
public static function prepareBindings($bindings)
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
return $instance->prepareBindings($bindings);
|
||||
}
|
||||
/**
|
||||
|
@ -4589,7 +4600,7 @@
|
|||
*/
|
||||
public static function logQuery($query, $bindings, $time = null)
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
$instance->logQuery($query, $bindings, $time);
|
||||
}
|
||||
/**
|
||||
|
@ -4601,7 +4612,7 @@
|
|||
*/
|
||||
public static function listen($callback)
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
$instance->listen($callback);
|
||||
}
|
||||
/**
|
||||
|
@ -4613,7 +4624,7 @@
|
|||
*/
|
||||
public static function raw($value)
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
return $instance->raw($value);
|
||||
}
|
||||
/**
|
||||
|
@ -4625,7 +4636,7 @@
|
|||
*/
|
||||
public static function recordsHaveBeenModified($value = true)
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
$instance->recordsHaveBeenModified($value);
|
||||
}
|
||||
/**
|
||||
|
@ -4636,7 +4647,7 @@
|
|||
*/
|
||||
public static function forgetRecordModificationState()
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
$instance->forgetRecordModificationState();
|
||||
}
|
||||
/**
|
||||
|
@ -4647,7 +4658,7 @@
|
|||
*/
|
||||
public static function isDoctrineAvailable()
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
return $instance->isDoctrineAvailable();
|
||||
}
|
||||
/**
|
||||
|
@ -4660,7 +4671,7 @@
|
|||
*/
|
||||
public static function getDoctrineColumn($table, $column)
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
return $instance->getDoctrineColumn($table, $column);
|
||||
}
|
||||
/**
|
||||
|
@ -4671,7 +4682,7 @@
|
|||
*/
|
||||
public static function getDoctrineSchemaManager()
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
return $instance->getDoctrineSchemaManager();
|
||||
}
|
||||
/**
|
||||
|
@ -4682,7 +4693,7 @@
|
|||
*/
|
||||
public static function getDoctrineConnection()
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
return $instance->getDoctrineConnection();
|
||||
}
|
||||
/**
|
||||
|
@ -4693,7 +4704,7 @@
|
|||
*/
|
||||
public static function getPdo()
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
return $instance->getPdo();
|
||||
}
|
||||
/**
|
||||
|
@ -4704,7 +4715,7 @@
|
|||
*/
|
||||
public static function getRawPdo()
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
return $instance->getRawPdo();
|
||||
}
|
||||
/**
|
||||
|
@ -4715,7 +4726,7 @@
|
|||
*/
|
||||
public static function getReadPdo()
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
return $instance->getReadPdo();
|
||||
}
|
||||
/**
|
||||
|
@ -4726,31 +4737,31 @@
|
|||
*/
|
||||
public static function getRawReadPdo()
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
return $instance->getRawReadPdo();
|
||||
}
|
||||
/**
|
||||
* Set the PDO connection.
|
||||
*
|
||||
* @param \PDO|\Closure|null $pdo
|
||||
* @return \Illuminate\Database\SQLiteConnection
|
||||
* @return \Illuminate\Database\MySqlConnection
|
||||
* @static
|
||||
*/
|
||||
public static function setPdo($pdo)
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
return $instance->setPdo($pdo);
|
||||
}
|
||||
/**
|
||||
* Set the PDO connection used for reading.
|
||||
*
|
||||
* @param \PDO|\Closure|null $pdo
|
||||
* @return \Illuminate\Database\SQLiteConnection
|
||||
* @return \Illuminate\Database\MySqlConnection
|
||||
* @static
|
||||
*/
|
||||
public static function setReadPdo($pdo)
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
return $instance->setReadPdo($pdo);
|
||||
}
|
||||
/**
|
||||
|
@ -4761,7 +4772,7 @@
|
|||
*/
|
||||
public static function getName()
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
return $instance->getName();
|
||||
}
|
||||
/**
|
||||
|
@ -4773,7 +4784,7 @@
|
|||
*/
|
||||
public static function getConfig($option = null)
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
return $instance->getConfig($option);
|
||||
}
|
||||
/**
|
||||
|
@ -4784,7 +4795,7 @@
|
|||
*/
|
||||
public static function getDriverName()
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
return $instance->getDriverName();
|
||||
}
|
||||
/**
|
||||
|
@ -4795,19 +4806,19 @@
|
|||
*/
|
||||
public static function getQueryGrammar()
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
return $instance->getQueryGrammar();
|
||||
}
|
||||
/**
|
||||
* Set the query grammar used by the connection.
|
||||
*
|
||||
* @param \Illuminate\Database\Query\Grammars\Grammar $grammar
|
||||
* @return \Illuminate\Database\SQLiteConnection
|
||||
* @return \Illuminate\Database\MySqlConnection
|
||||
* @static
|
||||
*/
|
||||
public static function setQueryGrammar($grammar)
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
return $instance->setQueryGrammar($grammar);
|
||||
}
|
||||
/**
|
||||
|
@ -4818,19 +4829,19 @@
|
|||
*/
|
||||
public static function getSchemaGrammar()
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
return $instance->getSchemaGrammar();
|
||||
}
|
||||
/**
|
||||
* Set the schema grammar used by the connection.
|
||||
*
|
||||
* @param \Illuminate\Database\Schema\Grammars\Grammar $grammar
|
||||
* @return \Illuminate\Database\SQLiteConnection
|
||||
* @return \Illuminate\Database\MySqlConnection
|
||||
* @static
|
||||
*/
|
||||
public static function setSchemaGrammar($grammar)
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
return $instance->setSchemaGrammar($grammar);
|
||||
}
|
||||
/**
|
||||
|
@ -4841,19 +4852,19 @@
|
|||
*/
|
||||
public static function getPostProcessor()
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
return $instance->getPostProcessor();
|
||||
}
|
||||
/**
|
||||
* Set the query post processor used by the connection.
|
||||
*
|
||||
* @param \Illuminate\Database\Query\Processors\Processor $processor
|
||||
* @return \Illuminate\Database\SQLiteConnection
|
||||
* @return \Illuminate\Database\MySqlConnection
|
||||
* @static
|
||||
*/
|
||||
public static function setPostProcessor($processor)
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
return $instance->setPostProcessor($processor);
|
||||
}
|
||||
/**
|
||||
|
@ -4864,19 +4875,19 @@
|
|||
*/
|
||||
public static function getEventDispatcher()
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
return $instance->getEventDispatcher();
|
||||
}
|
||||
/**
|
||||
* Set the event dispatcher instance on the connection.
|
||||
*
|
||||
* @param \Illuminate\Contracts\Events\Dispatcher $events
|
||||
* @return \Illuminate\Database\SQLiteConnection
|
||||
* @return \Illuminate\Database\MySqlConnection
|
||||
* @static
|
||||
*/
|
||||
public static function setEventDispatcher($events)
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
return $instance->setEventDispatcher($events);
|
||||
}
|
||||
/**
|
||||
|
@ -4887,19 +4898,19 @@
|
|||
*/
|
||||
public static function unsetEventDispatcher()
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
$instance->unsetEventDispatcher();
|
||||
}
|
||||
/**
|
||||
* Set the transaction manager instance on the connection.
|
||||
*
|
||||
* @param \Illuminate\Database\DatabaseTransactionsManager $manager
|
||||
* @return \Illuminate\Database\SQLiteConnection
|
||||
* @return \Illuminate\Database\MySqlConnection
|
||||
* @static
|
||||
*/
|
||||
public static function setTransactionManager($manager)
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
return $instance->setTransactionManager($manager);
|
||||
}
|
||||
/**
|
||||
|
@ -4910,7 +4921,7 @@
|
|||
*/
|
||||
public static function unsetTransactionManager()
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
$instance->unsetTransactionManager();
|
||||
}
|
||||
/**
|
||||
|
@ -4921,7 +4932,7 @@
|
|||
*/
|
||||
public static function pretending()
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
return $instance->pretending();
|
||||
}
|
||||
/**
|
||||
|
@ -4932,7 +4943,7 @@
|
|||
*/
|
||||
public static function getQueryLog()
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
return $instance->getQueryLog();
|
||||
}
|
||||
/**
|
||||
|
@ -4943,7 +4954,7 @@
|
|||
*/
|
||||
public static function flushQueryLog()
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
$instance->flushQueryLog();
|
||||
}
|
||||
/**
|
||||
|
@ -4954,7 +4965,7 @@
|
|||
*/
|
||||
public static function enableQueryLog()
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
$instance->enableQueryLog();
|
||||
}
|
||||
/**
|
||||
|
@ -4965,7 +4976,7 @@
|
|||
*/
|
||||
public static function disableQueryLog()
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
$instance->disableQueryLog();
|
||||
}
|
||||
/**
|
||||
|
@ -4976,7 +4987,7 @@
|
|||
*/
|
||||
public static function logging()
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
return $instance->logging();
|
||||
}
|
||||
/**
|
||||
|
@ -4987,19 +4998,19 @@
|
|||
*/
|
||||
public static function getDatabaseName()
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
return $instance->getDatabaseName();
|
||||
}
|
||||
/**
|
||||
* Set the name of the connected database.
|
||||
*
|
||||
* @param string $database
|
||||
* @return \Illuminate\Database\SQLiteConnection
|
||||
* @return \Illuminate\Database\MySqlConnection
|
||||
* @static
|
||||
*/
|
||||
public static function setDatabaseName($database)
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
return $instance->setDatabaseName($database);
|
||||
}
|
||||
/**
|
||||
|
@ -5010,19 +5021,19 @@
|
|||
*/
|
||||
public static function getTablePrefix()
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
return $instance->getTablePrefix();
|
||||
}
|
||||
/**
|
||||
* Set the table prefix in use by the connection.
|
||||
*
|
||||
* @param string $prefix
|
||||
* @return \Illuminate\Database\SQLiteConnection
|
||||
* @return \Illuminate\Database\MySqlConnection
|
||||
* @static
|
||||
*/
|
||||
public static function setTablePrefix($prefix)
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
return $instance->setTablePrefix($prefix);
|
||||
}
|
||||
/**
|
||||
|
@ -5034,7 +5045,7 @@
|
|||
*/
|
||||
public static function withTablePrefix($grammar)
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
return $instance->withTablePrefix($grammar);
|
||||
}
|
||||
/**
|
||||
|
@ -5047,7 +5058,7 @@
|
|||
*/
|
||||
public static function resolverFor($driver, $callback)
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
\Illuminate\Database\SQLiteConnection::resolverFor($driver, $callback);
|
||||
\Illuminate\Database\MySqlConnection::resolverFor($driver, $callback);
|
||||
}
|
||||
/**
|
||||
* Get the connection resolver for the given driver.
|
||||
|
@ -5058,7 +5069,7 @@
|
|||
*/
|
||||
public static function getResolver($driver)
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
return \Illuminate\Database\SQLiteConnection::getResolver($driver);
|
||||
return \Illuminate\Database\MySqlConnection::getResolver($driver);
|
||||
}
|
||||
/**
|
||||
* Execute a Closure within a transaction.
|
||||
|
@ -5071,7 +5082,7 @@
|
|||
*/
|
||||
public static function transaction($callback, $attempts = 1)
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
return $instance->transaction($callback, $attempts);
|
||||
}
|
||||
/**
|
||||
|
@ -5083,7 +5094,7 @@
|
|||
*/
|
||||
public static function beginTransaction()
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
$instance->beginTransaction();
|
||||
}
|
||||
/**
|
||||
|
@ -5095,7 +5106,7 @@
|
|||
*/
|
||||
public static function commit()
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
$instance->commit();
|
||||
}
|
||||
/**
|
||||
|
@ -5108,7 +5119,7 @@
|
|||
*/
|
||||
public static function rollBack($toLevel = null)
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
$instance->rollBack($toLevel);
|
||||
}
|
||||
/**
|
||||
|
@ -5119,7 +5130,7 @@
|
|||
*/
|
||||
public static function transactionLevel()
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
return $instance->transactionLevel();
|
||||
}
|
||||
/**
|
||||
|
@ -5131,7 +5142,7 @@
|
|||
*/
|
||||
public static function afterCommit($callback)
|
||||
{ //Method inherited from \Illuminate\Database\Connection
|
||||
/** @var \Illuminate\Database\SQLiteConnection $instance */
|
||||
/** @var \Illuminate\Database\MySqlConnection $instance */
|
||||
$instance->afterCommit($callback);
|
||||
}
|
||||
|
||||
|
@ -11839,7 +11850,7 @@
|
|||
*/
|
||||
public static function createDatabase($name)
|
||||
{
|
||||
/** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */
|
||||
/** @var \Illuminate\Database\Schema\MySqlBuilder $instance */
|
||||
return $instance->createDatabase($name);
|
||||
}
|
||||
/**
|
||||
|
@ -11851,8 +11862,32 @@
|
|||
*/
|
||||
public static function dropDatabaseIfExists($name)
|
||||
{
|
||||
/** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */
|
||||
/** @var \Illuminate\Database\Schema\MySqlBuilder $instance */
|
||||
return $instance->dropDatabaseIfExists($name);
|
||||
}
|
||||
/**
|
||||
* Determine if the given table exists.
|
||||
*
|
||||
* @param string $table
|
||||
* @return bool
|
||||
* @static
|
||||
*/
|
||||
public static function hasTable($table)
|
||||
{
|
||||
/** @var \Illuminate\Database\Schema\MySqlBuilder $instance */
|
||||
return $instance->hasTable($table);
|
||||
}
|
||||
/**
|
||||
* Get the column listing for a given table.
|
||||
*
|
||||
* @param string $table
|
||||
* @return array
|
||||
* @static
|
||||
*/
|
||||
public static function getColumnListing($table)
|
||||
{
|
||||
/** @var \Illuminate\Database\Schema\MySqlBuilder $instance */
|
||||
return $instance->getColumnListing($table);
|
||||
}
|
||||
/**
|
||||
* Drop all tables from the database.
|
||||
|
@ -11862,7 +11897,7 @@
|
|||
*/
|
||||
public static function dropAllTables()
|
||||
{
|
||||
/** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */
|
||||
/** @var \Illuminate\Database\Schema\MySqlBuilder $instance */
|
||||
$instance->dropAllTables();
|
||||
}
|
||||
/**
|
||||
|
@ -11873,19 +11908,30 @@
|
|||
*/
|
||||
public static function dropAllViews()
|
||||
{
|
||||
/** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */
|
||||
/** @var \Illuminate\Database\Schema\MySqlBuilder $instance */
|
||||
$instance->dropAllViews();
|
||||
}
|
||||
/**
|
||||
* Empty the database file.
|
||||
* Get all of the table names for the database.
|
||||
*
|
||||
* @return void
|
||||
* @return array
|
||||
* @static
|
||||
*/
|
||||
public static function refreshDatabaseFile()
|
||||
public static function getAllTables()
|
||||
{
|
||||
/** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */
|
||||
$instance->refreshDatabaseFile();
|
||||
/** @var \Illuminate\Database\Schema\MySqlBuilder $instance */
|
||||
return $instance->getAllTables();
|
||||
}
|
||||
/**
|
||||
* Get all of the view names for the database.
|
||||
*
|
||||
* @return array
|
||||
* @static
|
||||
*/
|
||||
public static function getAllViews()
|
||||
{
|
||||
/** @var \Illuminate\Database\Schema\MySqlBuilder $instance */
|
||||
return $instance->getAllViews();
|
||||
}
|
||||
/**
|
||||
* Set the default string length for migrations.
|
||||
|
@ -11896,7 +11942,7 @@
|
|||
*/
|
||||
public static function defaultStringLength($length)
|
||||
{ //Method inherited from \Illuminate\Database\Schema\Builder
|
||||
\Illuminate\Database\Schema\SQLiteBuilder::defaultStringLength($length);
|
||||
\Illuminate\Database\Schema\MySqlBuilder::defaultStringLength($length);
|
||||
}
|
||||
/**
|
||||
* Set the default morph key type for migrations.
|
||||
|
@ -11907,7 +11953,7 @@
|
|||
*/
|
||||
public static function defaultMorphKeyType($type)
|
||||
{ //Method inherited from \Illuminate\Database\Schema\Builder
|
||||
\Illuminate\Database\Schema\SQLiteBuilder::defaultMorphKeyType($type);
|
||||
\Illuminate\Database\Schema\MySqlBuilder::defaultMorphKeyType($type);
|
||||
}
|
||||
/**
|
||||
* Set the default morph key type for migrations to UUIDs.
|
||||
|
@ -11917,19 +11963,7 @@
|
|||
*/
|
||||
public static function morphUsingUuids()
|
||||
{ //Method inherited from \Illuminate\Database\Schema\Builder
|
||||
\Illuminate\Database\Schema\SQLiteBuilder::morphUsingUuids();
|
||||
}
|
||||
/**
|
||||
* Determine if the given table exists.
|
||||
*
|
||||
* @param string $table
|
||||
* @return bool
|
||||
* @static
|
||||
*/
|
||||
public static function hasTable($table)
|
||||
{ //Method inherited from \Illuminate\Database\Schema\Builder
|
||||
/** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */
|
||||
return $instance->hasTable($table);
|
||||
\Illuminate\Database\Schema\MySqlBuilder::morphUsingUuids();
|
||||
}
|
||||
/**
|
||||
* Determine if the given table has a given column.
|
||||
|
@ -11941,7 +11975,7 @@
|
|||
*/
|
||||
public static function hasColumn($table, $column)
|
||||
{ //Method inherited from \Illuminate\Database\Schema\Builder
|
||||
/** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */
|
||||
/** @var \Illuminate\Database\Schema\MySqlBuilder $instance */
|
||||
return $instance->hasColumn($table, $column);
|
||||
}
|
||||
/**
|
||||
|
@ -11954,7 +11988,7 @@
|
|||
*/
|
||||
public static function hasColumns($table, $columns)
|
||||
{ //Method inherited from \Illuminate\Database\Schema\Builder
|
||||
/** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */
|
||||
/** @var \Illuminate\Database\Schema\MySqlBuilder $instance */
|
||||
return $instance->hasColumns($table, $columns);
|
||||
}
|
||||
/**
|
||||
|
@ -11967,20 +12001,8 @@
|
|||
*/
|
||||
public static function getColumnType($table, $column)
|
||||
{ //Method inherited from \Illuminate\Database\Schema\Builder
|
||||
/** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */
|
||||
/** @var \Illuminate\Database\Schema\MySqlBuilder $instance */
|
||||
return $instance->getColumnType($table, $column);
|
||||
}
|
||||
/**
|
||||
* Get the column listing for a given table.
|
||||
*
|
||||
* @param string $table
|
||||
* @return array
|
||||
* @static
|
||||
*/
|
||||
public static function getColumnListing($table)
|
||||
{ //Method inherited from \Illuminate\Database\Schema\Builder
|
||||
/** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */
|
||||
return $instance->getColumnListing($table);
|
||||
}
|
||||
/**
|
||||
* Modify a table on the schema.
|
||||
|
@ -11992,7 +12014,7 @@
|
|||
*/
|
||||
public static function table($table, $callback)
|
||||
{ //Method inherited from \Illuminate\Database\Schema\Builder
|
||||
/** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */
|
||||
/** @var \Illuminate\Database\Schema\MySqlBuilder $instance */
|
||||
$instance->table($table, $callback);
|
||||
}
|
||||
/**
|
||||
|
@ -12005,7 +12027,7 @@
|
|||
*/
|
||||
public static function create($table, $callback)
|
||||
{ //Method inherited from \Illuminate\Database\Schema\Builder
|
||||
/** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */
|
||||
/** @var \Illuminate\Database\Schema\MySqlBuilder $instance */
|
||||
$instance->create($table, $callback);
|
||||
}
|
||||
/**
|
||||
|
@ -12017,7 +12039,7 @@
|
|||
*/
|
||||
public static function drop($table)
|
||||
{ //Method inherited from \Illuminate\Database\Schema\Builder
|
||||
/** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */
|
||||
/** @var \Illuminate\Database\Schema\MySqlBuilder $instance */
|
||||
$instance->drop($table);
|
||||
}
|
||||
/**
|
||||
|
@ -12029,7 +12051,7 @@
|
|||
*/
|
||||
public static function dropIfExists($table)
|
||||
{ //Method inherited from \Illuminate\Database\Schema\Builder
|
||||
/** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */
|
||||
/** @var \Illuminate\Database\Schema\MySqlBuilder $instance */
|
||||
$instance->dropIfExists($table);
|
||||
}
|
||||
/**
|
||||
|
@ -12042,7 +12064,7 @@
|
|||
*/
|
||||
public static function dropColumns($table, $columns)
|
||||
{ //Method inherited from \Illuminate\Database\Schema\Builder
|
||||
/** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */
|
||||
/** @var \Illuminate\Database\Schema\MySqlBuilder $instance */
|
||||
$instance->dropColumns($table, $columns);
|
||||
}
|
||||
/**
|
||||
|
@ -12054,20 +12076,8 @@
|
|||
*/
|
||||
public static function dropAllTypes()
|
||||
{ //Method inherited from \Illuminate\Database\Schema\Builder
|
||||
/** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */
|
||||
/** @var \Illuminate\Database\Schema\MySqlBuilder $instance */
|
||||
$instance->dropAllTypes();
|
||||
}
|
||||
/**
|
||||
* Get all of the table names for the database.
|
||||
*
|
||||
* @return void
|
||||
* @throws \LogicException
|
||||
* @static
|
||||
*/
|
||||
public static function getAllTables()
|
||||
{ //Method inherited from \Illuminate\Database\Schema\Builder
|
||||
/** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */
|
||||
$instance->getAllTables();
|
||||
}
|
||||
/**
|
||||
* Rename a table on the schema.
|
||||
|
@ -12079,7 +12089,7 @@
|
|||
*/
|
||||
public static function rename($from, $to)
|
||||
{ //Method inherited from \Illuminate\Database\Schema\Builder
|
||||
/** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */
|
||||
/** @var \Illuminate\Database\Schema\MySqlBuilder $instance */
|
||||
$instance->rename($from, $to);
|
||||
}
|
||||
/**
|
||||
|
@ -12090,7 +12100,7 @@
|
|||
*/
|
||||
public static function enableForeignKeyConstraints()
|
||||
{ //Method inherited from \Illuminate\Database\Schema\Builder
|
||||
/** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */
|
||||
/** @var \Illuminate\Database\Schema\MySqlBuilder $instance */
|
||||
return $instance->enableForeignKeyConstraints();
|
||||
}
|
||||
/**
|
||||
|
@ -12101,7 +12111,7 @@
|
|||
*/
|
||||
public static function disableForeignKeyConstraints()
|
||||
{ //Method inherited from \Illuminate\Database\Schema\Builder
|
||||
/** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */
|
||||
/** @var \Illuminate\Database\Schema\MySqlBuilder $instance */
|
||||
return $instance->disableForeignKeyConstraints();
|
||||
}
|
||||
/**
|
||||
|
@ -12117,7 +12127,7 @@
|
|||
*/
|
||||
public static function registerCustomDoctrineType($class, $name, $type)
|
||||
{ //Method inherited from \Illuminate\Database\Schema\Builder
|
||||
/** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */
|
||||
/** @var \Illuminate\Database\Schema\MySqlBuilder $instance */
|
||||
$instance->registerCustomDoctrineType($class, $name, $type);
|
||||
}
|
||||
/**
|
||||
|
@ -12128,19 +12138,19 @@
|
|||
*/
|
||||
public static function getConnection()
|
||||
{ //Method inherited from \Illuminate\Database\Schema\Builder
|
||||
/** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */
|
||||
/** @var \Illuminate\Database\Schema\MySqlBuilder $instance */
|
||||
return $instance->getConnection();
|
||||
}
|
||||
/**
|
||||
* Set the database connection instance.
|
||||
*
|
||||
* @param \Illuminate\Database\Connection $connection
|
||||
* @return \Illuminate\Database\Schema\SQLiteBuilder
|
||||
* @return \Illuminate\Database\Schema\MySqlBuilder
|
||||
* @static
|
||||
*/
|
||||
public static function setConnection($connection)
|
||||
{ //Method inherited from \Illuminate\Database\Schema\Builder
|
||||
/** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */
|
||||
/** @var \Illuminate\Database\Schema\MySqlBuilder $instance */
|
||||
return $instance->setConnection($connection);
|
||||
}
|
||||
/**
|
||||
|
@ -12152,7 +12162,7 @@
|
|||
*/
|
||||
public static function blueprintResolver($resolver)
|
||||
{ //Method inherited from \Illuminate\Database\Schema\Builder
|
||||
/** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */
|
||||
/** @var \Illuminate\Database\Schema\MySqlBuilder $instance */
|
||||
$instance->blueprintResolver($resolver);
|
||||
}
|
||||
|
||||
|
@ -16665,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.
|
||||
*
|
||||
|
|
|
@ -0,0 +1,47 @@
|
|||
{
|
||||
"name": "kcal – the personal food nutrition journal",
|
||||
"description": "Self-hostable web app for food and recipe nutrition tracking.",
|
||||
"keywords": [
|
||||
"cooking",
|
||||
"fitness",
|
||||
"food",
|
||||
"heath",
|
||||
"laravel",
|
||||
"nutrition",
|
||||
"php",
|
||||
"recipes",
|
||||
"self-host"
|
||||
],
|
||||
"repository": "https://github.com/kcal-app/kcal",
|
||||
"website": "http://demo.kcal.cooking",
|
||||
"buildpacks": [
|
||||
{
|
||||
"url": "heroku/php"
|
||||
}
|
||||
],
|
||||
"addons": [
|
||||
"heroku-postgresql"
|
||||
],
|
||||
"env": {
|
||||
"APP_KEY": {
|
||||
"description": "Used for the auth system.",
|
||||
"generator": "secret"
|
||||
},
|
||||
"APP_TIMEZONE": {
|
||||
"description": "Application time zone.",
|
||||
"value": "Etc/UTC"
|
||||
},
|
||||
"DB_CONNECTION": {
|
||||
"description": "Database driver.",
|
||||
"value": "pgsql"
|
||||
},
|
||||
"SCOUT_DRIVER": {
|
||||
"description": "Search driver ('algolia', 'elastic', or 'null').",
|
||||
"value": "null"
|
||||
}
|
||||
},
|
||||
"scripts": {
|
||||
"postdeploy": "php artisan migrate --force && php artisan user:add kcal kcal --name=Admin"
|
||||
},
|
||||
"success_url": "/"
|
||||
}
|
|
@ -0,0 +1,90 @@
|
|||
<?php
|
||||
|
||||
namespace App\Console\Commands;
|
||||
|
||||
use App\Models\User;
|
||||
use Illuminate\Console\Command;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class UserAdd extends Command
|
||||
{
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
protected $signature = 'user:add
|
||||
{username? : Username}
|
||||
{password? : Password}
|
||||
{--name= : User short name}';
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
protected $description = 'Create a new user.';
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a user, prompting for user information as needed.
|
||||
*/
|
||||
public function handle(): int
|
||||
{
|
||||
$arguments = $this->arguments();
|
||||
if (!$arguments['username']) {
|
||||
$arguments['username'] = $this->ask('Enter a username for the user');
|
||||
}
|
||||
|
||||
// Check for an existing user.
|
||||
if (User::whereUsername($arguments['username'])->exists()) {
|
||||
$this->error("User `{$arguments['username']}` already exists.");
|
||||
return 1;
|
||||
}
|
||||
|
||||
$random_password = FALSE;
|
||||
if (!$arguments['password']) {
|
||||
$arguments['password'] = $this->secret('Enter a password for the user (leave blank for a random password)');
|
||||
if (!empty($arguments['password'])) {
|
||||
$password_confirm = $this->secret('Re-type the password to confirm');
|
||||
if ($arguments['password'] !== $password_confirm) {
|
||||
$this->error('Passwords did not match.');
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (empty($arguments['password'])) {
|
||||
$arguments['password'] = Str::random();
|
||||
$random_password = TRUE;
|
||||
}
|
||||
|
||||
$options = $this->options();
|
||||
if (!$options['name']) {
|
||||
$options['name'] = $this->ask('Enter a name for the user (optional)');
|
||||
}
|
||||
|
||||
if (empty($arguments['username']) || empty($arguments['password'])) {
|
||||
$this->error('Username and password must be provided.');
|
||||
return 1;
|
||||
}
|
||||
|
||||
User::create([
|
||||
'username' => $arguments['username'],
|
||||
'password' => Hash::make($arguments['password']),
|
||||
'name' => $options['name'] ?: $arguments['username'],
|
||||
'remember_token' => Str::random(10),
|
||||
])->save();
|
||||
|
||||
$this->info("User `{$arguments['username']}` added!");
|
||||
|
||||
if ($random_password) {
|
||||
$this->info("Password: {$arguments['password']}");
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
|
@ -5,6 +5,8 @@ namespace App\Http\Controllers\Auth;
|
|||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\Auth\LoginRequest;
|
||||
use App\Providers\RouteServiceProvider;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
|
@ -12,43 +14,30 @@ class AuthenticatedSessionController extends Controller
|
|||
{
|
||||
/**
|
||||
* Display the login view.
|
||||
*
|
||||
* @return \Illuminate\View\View
|
||||
*/
|
||||
public function create()
|
||||
public function create(): View
|
||||
{
|
||||
return view('auth.login');
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle an incoming authentication request.
|
||||
*
|
||||
* @param \App\Http\Requests\Auth\LoginRequest $request
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function store(LoginRequest $request)
|
||||
public function store(LoginRequest $request): RedirectResponse
|
||||
{
|
||||
$request->authenticate();
|
||||
|
||||
$request->session()->regenerate();
|
||||
|
||||
return redirect(RouteServiceProvider::HOME);
|
||||
}
|
||||
|
||||
/**
|
||||
* Destroy an authenticated session.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function destroy(Request $request)
|
||||
public function destroy(Request $request): RedirectResponse
|
||||
{
|
||||
Auth::guard('web')->logout();
|
||||
|
||||
$request->session()->invalidate();
|
||||
|
||||
$request->session()->regenerateToken();
|
||||
|
||||
return redirect('/');
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,45 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Providers\RouteServiceProvider;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Validation\ValidationException;
|
||||
|
||||
class ConfirmablePasswordController extends Controller
|
||||
{
|
||||
/**
|
||||
* Show the confirm password view.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\View\View
|
||||
*/
|
||||
public function show(Request $request)
|
||||
{
|
||||
return view('auth.confirm-password');
|
||||
}
|
||||
|
||||
/**
|
||||
* Confirm the user's password.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return mixed
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
if (! Auth::guard('web')->validate([
|
||||
'email' => $request->user()->email,
|
||||
'password' => $request->password,
|
||||
])) {
|
||||
throw ValidationException::withMessages([
|
||||
'password' => __('auth.password'),
|
||||
]);
|
||||
}
|
||||
|
||||
$request->session()->put('auth.password_confirmed_at', time());
|
||||
|
||||
return redirect()->intended(RouteServiceProvider::HOME);
|
||||
}
|
||||
}
|
|
@ -1,63 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Auth\Events\PasswordReset;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use Illuminate\Support\Facades\Password;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class NewPasswordController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display the password reset view.
|
||||
*
|
||||
* @return \Illuminate\View\View
|
||||
*/
|
||||
public function create(Request $request)
|
||||
{
|
||||
return view('auth.reset-password', ['request' => $request]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle an incoming new password request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*
|
||||
* @throws \Illuminate\Validation\ValidationException
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
$request->validate([
|
||||
'token' => 'required',
|
||||
'email' => 'required|email',
|
||||
'password' => 'required|string|confirmed|min:8',
|
||||
]);
|
||||
|
||||
// Here we will attempt to reset the user's password. If it is successful we
|
||||
// will update the password on an actual user model and persist it to the
|
||||
// database. Otherwise we will parse the error and return the response.
|
||||
$status = Password::reset(
|
||||
$request->only('email', 'password', 'password_confirmation', 'token'),
|
||||
function ($user) use ($request) {
|
||||
$user->forceFill([
|
||||
'password' => Hash::make($request->password),
|
||||
'remember_token' => Str::random(60),
|
||||
])->save();
|
||||
|
||||
event(new PasswordReset($user));
|
||||
}
|
||||
);
|
||||
|
||||
// If the password was successfully reset, we will redirect the user back to
|
||||
// the application's home authenticated view. If there is an error we can
|
||||
// redirect them back to where they came from with their error message.
|
||||
return $status == Password::PASSWORD_RESET
|
||||
? redirect()->route('login')->with('status', __($status))
|
||||
: back()->withInput($request->only('email'))
|
||||
->withErrors(['email' => __($status)]);
|
||||
}
|
||||
}
|
|
@ -1,47 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Password;
|
||||
|
||||
class PasswordResetLinkController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display the password reset link request view.
|
||||
*
|
||||
* @return \Illuminate\View\View
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
return view('auth.forgot-password');
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle an incoming password reset link request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*
|
||||
* @throws \Illuminate\Validation\ValidationException
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
$request->validate([
|
||||
'email' => 'required|email',
|
||||
]);
|
||||
|
||||
// We will send the password reset link to this user. Once we have attempted
|
||||
// to send the link, we will examine the response then see the message we
|
||||
// need to show to the user. Finally, we'll send out a proper response.
|
||||
$status = Password::sendResetLink(
|
||||
$request->only('email')
|
||||
);
|
||||
|
||||
return $status == Password::RESET_LINK_SENT
|
||||
? back()->with('status', __($status))
|
||||
: back()->withInput($request->only('email'))
|
||||
->withErrors(['email' => __($status)]);
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
|
@ -20,28 +21,62 @@ class IngredientPickerController extends Controller
|
|||
$results = new Collection();
|
||||
$term = $request->query->get('term');
|
||||
if (!empty($term)) {
|
||||
$results = Food::boolSearch()
|
||||
->join(Recipe::class)
|
||||
$results = match (config('scout.driver')) {
|
||||
'algolia' => $this->searchWithAlgolia($term),
|
||||
'elastic' => $this->searchWithElasticSearch($term),
|
||||
default => $this->searchWithDatabaseLike($term),
|
||||
};
|
||||
|
||||
// Attempt to match exact phrase first.
|
||||
->should('match_phrase', ['name' => $term])
|
||||
|
||||
// Attempt multi-match search on all relevant fields with search-as-you-type on name.
|
||||
->should((new MultiMatchQueryBuilder())
|
||||
->fields(['name', 'name._2gram', 'name._3gram', 'detail', 'brand', 'source'])
|
||||
->query($term)
|
||||
->type('bool_prefix')
|
||||
->analyzer('simple')
|
||||
->fuzziness('AUTO'))
|
||||
|
||||
// Attempt to match on any tags in the term.
|
||||
->should((new TermsQueryBuilder())
|
||||
->terms('tags', explode(' ', $term)))
|
||||
|
||||
// Get resulting models.
|
||||
->execute()
|
||||
->models();
|
||||
}
|
||||
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.
|
||||
*/
|
||||
private function searchWithElasticSearch(string $term): Collection {
|
||||
return Food::boolSearch()
|
||||
->join(Recipe::class)
|
||||
|
||||
// Attempt to match exact phrase first.
|
||||
->should('match_phrase', ['name' => $term])
|
||||
|
||||
// Attempt multi-match search on all relevant fields with search-as-you-type on name.
|
||||
->should((new MultiMatchQueryBuilder())
|
||||
->fields(['name', 'name._2gram', 'name._3gram', 'detail', 'brand', 'source'])
|
||||
->query($term)
|
||||
->type('bool_prefix')
|
||||
->analyzer('simple')
|
||||
->fuzziness('AUTO'))
|
||||
|
||||
// Attempt to match on any tags in the term.
|
||||
->should((new TermsQueryBuilder())
|
||||
->terms('tags', explode(' ', $term)))
|
||||
|
||||
// Get resulting models.
|
||||
->execute()
|
||||
->models();
|
||||
}
|
||||
|
||||
/**
|
||||
* Search using basic database WHERE ... LIKE queries.
|
||||
*/
|
||||
private function searchWithDatabaseLike(string $term): Collection {
|
||||
$foods = Food::query()->where('foods.name', 'like', "%{$term}%")
|
||||
->orWhere('foods.detail', 'like', "%{$term}%")
|
||||
->orWhere('foods.brand', 'like', "%{$term}%")
|
||||
->get();
|
||||
$recipes = Recipe::query()->where('recipes.name', 'like', "%{$term}%")
|
||||
->orWhere('recipes.description', 'like', "%{$term}%")
|
||||
->orWhere('recipes.source', 'like', "%{$term}%")
|
||||
->get();
|
||||
return $foods->merge($recipes);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -29,7 +29,7 @@ class LoginRequest extends FormRequest
|
|||
public function rules()
|
||||
{
|
||||
return [
|
||||
'email' => 'required|string|email',
|
||||
'username' => 'required|string',
|
||||
'password' => 'required|string',
|
||||
];
|
||||
}
|
||||
|
@ -45,11 +45,11 @@ class LoginRequest extends FormRequest
|
|||
{
|
||||
$this->ensureIsNotRateLimited();
|
||||
|
||||
if (! Auth::attempt($this->only('email', 'password'), $this->filled('remember'))) {
|
||||
if (! Auth::attempt($this->only('username', 'password'), $this->filled('remember'))) {
|
||||
RateLimiter::hit($this->throttleKey());
|
||||
|
||||
throw ValidationException::withMessages([
|
||||
'email' => 'auth.failed',
|
||||
'username' => 'auth.failed',
|
||||
]);
|
||||
}
|
||||
|
||||
|
@ -74,7 +74,7 @@ class LoginRequest extends FormRequest
|
|||
$seconds = RateLimiter::availableIn($this->throttleKey());
|
||||
|
||||
throw ValidationException::withMessages([
|
||||
'email' => trans('auth.throttle', [
|
||||
'username' => trans('auth.throttle', [
|
||||
'seconds' => $seconds,
|
||||
'minutes' => ceil($seconds / 60),
|
||||
]),
|
||||
|
@ -88,6 +88,6 @@ class LoginRequest extends FormRequest
|
|||
*/
|
||||
public function throttleKey()
|
||||
{
|
||||
return Str::lower($this->input('email')).'|'.$this->ip();
|
||||
return Str::lower($this->input('username')).'|'.$this->ip();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -26,8 +26,8 @@ class UserSchema extends SchemaProvider
|
|||
public function getAttributes($resource): array
|
||||
{
|
||||
return [
|
||||
'username' => $resource->username,
|
||||
'name' => $resource->name,
|
||||
'email' => $resource->email,
|
||||
'createdAt' => $resource->created_at,
|
||||
'updatedAt' => $resource->updated_at,
|
||||
];
|
||||
|
|
|
@ -15,29 +15,29 @@ use Illuminate\Support\Facades\Auth;
|
|||
*
|
||||
* @property int $id
|
||||
* @property string $name
|
||||
* @property string $email
|
||||
* @property string $username
|
||||
* @property string $password
|
||||
* @property string|null $remember_token
|
||||
* @property \Illuminate\Support\Carbon|null $created_at
|
||||
* @property \Illuminate\Support\Carbon|null $updated_at
|
||||
* @property Carbon|null $created_at
|
||||
* @property Carbon|null $updated_at
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\Goal[] $goals
|
||||
* @property-read int|null $goals_count
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\JournalEntry[] $journalEntries
|
||||
* @property-read int|null $journal_entries_count
|
||||
* @property-read \Illuminate\Notifications\DatabaseNotificationCollection|\Illuminate\Notifications\DatabaseNotification[] $notifications
|
||||
* @property-read int|null $notifications_count
|
||||
* @method static \Database\Factories\UserFactory factory(...$parameters)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|User newModelQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|User newQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|User query()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|User whereCreatedAt($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|User whereEmail($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|User whereId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|User whereName($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|User wherePassword($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|User whereRememberToken($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|User whereUpdatedAt($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|User whereUsername($value)
|
||||
* @mixin \Eloquent
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\Goal[] $goals
|
||||
* @property-read int|null $goals_count
|
||||
* @method static \Database\Factories\UserFactory factory(...$parameters)
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\JournalEntry[] $journalEntries
|
||||
* @property-read int|null $journal_entries_count
|
||||
*/
|
||||
final class User extends Authenticatable
|
||||
{
|
||||
|
@ -47,9 +47,9 @@ final class User extends Authenticatable
|
|||
* @inheritdoc
|
||||
*/
|
||||
protected $fillable = [
|
||||
'name',
|
||||
'email',
|
||||
'username',
|
||||
'password',
|
||||
'name',
|
||||
];
|
||||
|
||||
/**
|
||||
|
|
|
@ -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 (config('scout.driver') === 'algolia') {
|
||||
Ingredient::bootSearchable();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,10 +2,7 @@
|
|||
|
||||
namespace App\Providers;
|
||||
|
||||
use Illuminate\Auth\Events\Registered;
|
||||
use Illuminate\Auth\Listeners\SendEmailVerificationNotification;
|
||||
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
|
||||
use Illuminate\Support\Facades\Event;
|
||||
|
||||
class EventServiceProvider extends ServiceProvider
|
||||
{
|
||||
|
@ -14,11 +11,7 @@ class EventServiceProvider extends ServiceProvider
|
|||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $listen = [
|
||||
Registered::class => [
|
||||
SendEmailVerificationNotification::class,
|
||||
],
|
||||
];
|
||||
protected $listen = [];
|
||||
|
||||
/**
|
||||
* Register any events for your application.
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
<?php
|
||||
|
||||
namespace App\Search;
|
||||
|
||||
use Algolia\ScoutExtended\Searchable\Aggregator;
|
||||
use App\Models\Food;
|
||||
use App\Models\Recipe;
|
||||
|
||||
class Ingredient extends Aggregator
|
||||
{
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
protected $models = [Food::class, Recipe::class];
|
||||
}
|
|
@ -5,6 +5,12 @@
|
|||
"license": "MPL-2.0",
|
||||
"require": {
|
||||
"php": "^8.0",
|
||||
"ext-fileinfo": "*",
|
||||
"ext-gd": "*",
|
||||
"ext-json": "*",
|
||||
"ext-mbstring": "*",
|
||||
"algolia/algoliasearch-client-php": "^2.7",
|
||||
"algolia/scout-extended": "^1.15",
|
||||
"babenkoivan/elastic-migrations": "^1.4",
|
||||
"babenkoivan/elastic-scout-driver": "^1.3",
|
||||
"babenkoivan/elastic-scout-driver-plus": "^2.0",
|
||||
|
|
|
@ -4,8 +4,163 @@
|
|||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "f1b321a1250402dfe856aaab38adb2db",
|
||||
"content-hash": "b404494454b0ff89c0db3d7eb87e3a44",
|
||||
"packages": [
|
||||
{
|
||||
"name": "algolia/algoliasearch-client-php",
|
||||
"version": "2.7.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/algolia/algoliasearch-client-php.git",
|
||||
"reference": "142a382e4649db0cb64d9eb8893872f1a4ba8dd3"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/algolia/algoliasearch-client-php/zipball/142a382e4649db0cb64d9eb8893872f1a4ba8dd3",
|
||||
"reference": "142a382e4649db0cb64d9eb8893872f1a4ba8dd3",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-curl": "*",
|
||||
"ext-json": "*",
|
||||
"ext-mbstring": "*",
|
||||
"php": "^5.3 || ^7.0 || ^8.0",
|
||||
"psr/http-message": "^1.0",
|
||||
"psr/log": "^1.0",
|
||||
"psr/simple-cache": "^1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"friendsofphp/php-cs-fixer": "^2.0",
|
||||
"fzaninotto/faker": "^1.8",
|
||||
"julienbourdeau/phpunit": "4.8.37",
|
||||
"symfony/yaml": "^2.0 || ^4.0"
|
||||
},
|
||||
"suggest": {
|
||||
"guzzlehttp/guzzle": "If you prefer to use Guzzle HTTP client instead of the Http Client implementation provided by the package"
|
||||
},
|
||||
"bin": [
|
||||
"bin/algolia-doctor"
|
||||
],
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-2.0": "2.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Algolia\\AlgoliaSearch\\": "src/"
|
||||
},
|
||||
"files": [
|
||||
"src/Http/Psr7/functions.php",
|
||||
"src/functions.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Algolia Team",
|
||||
"email": "contact@algolia.com"
|
||||
}
|
||||
],
|
||||
"description": "Algolia Search API Client for PHP",
|
||||
"keywords": [
|
||||
"algolia",
|
||||
"api",
|
||||
"client",
|
||||
"php",
|
||||
"search"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/algolia/algoliasearch-client-php/issues",
|
||||
"source": "https://github.com/algolia/algoliasearch-client-php/tree/2.7.3"
|
||||
},
|
||||
"time": "2020-12-22T11:27:03+00:00"
|
||||
},
|
||||
{
|
||||
"name": "algolia/scout-extended",
|
||||
"version": "v1.15.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/algolia/scout-extended.git",
|
||||
"reference": "f1da27101b4c88166f9d66d5110b46e1dacb8f1c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/algolia/scout-extended/zipball/f1da27101b4c88166f9d66d5110b46e1dacb8f1c",
|
||||
"reference": "f1da27101b4c88166f9d66d5110b46e1dacb8f1c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"algolia/algoliasearch-client-php": "^2.7.3",
|
||||
"ext-json": "*",
|
||||
"illuminate/console": "^6.0|^7.0|^8.0",
|
||||
"illuminate/contracts": "^6.0|^7.0|^8.0",
|
||||
"illuminate/database": "^6.0|^7.0|^8.0",
|
||||
"illuminate/filesystem": "^6.0|^7.0|^8.0",
|
||||
"illuminate/support": "^6.0|^7.0|^8.0",
|
||||
"laravel/scout": "^8.0",
|
||||
"php": "^7.3|^8.0",
|
||||
"riimu/kit-phpencoder": "^2.4"
|
||||
},
|
||||
"require-dev": {
|
||||
"fakerphp/faker": "^1.13",
|
||||
"laravel/legacy-factories": "^1.1",
|
||||
"mockery/mockery": "^1.4",
|
||||
"nunomaduro/larastan": "^0.6",
|
||||
"orchestra/testbench": "^4.9|^5.9|^6.6",
|
||||
"phpstan/phpstan": "^0.12.14",
|
||||
"phpunit/phpunit": "^8.0|^9.0"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-dom": "Required to use the HTML Splitter."
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"laravel": {
|
||||
"providers": [
|
||||
"Algolia\\ScoutExtended\\ScoutExtendedServiceProvider"
|
||||
]
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Algolia\\ScoutExtended\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nuno Maduro",
|
||||
"email": "enunomaduro@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Algolia Team",
|
||||
"email": "contact@algolia.com"
|
||||
}
|
||||
],
|
||||
"description": "Scout Extended extends Laravel Scout adding algolia-specific features",
|
||||
"keywords": [
|
||||
"algolia",
|
||||
"analytics",
|
||||
"extended",
|
||||
"laravel",
|
||||
"places",
|
||||
"scout",
|
||||
"search"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/algolia/scout-extended/issues",
|
||||
"source": "https://github.com/algolia/scout-extended/tree/v1.15.0"
|
||||
},
|
||||
"time": "2021-03-17T15:52:17+00:00"
|
||||
},
|
||||
{
|
||||
"name": "asm89/stack-cors",
|
||||
"version": "v2.0.3",
|
||||
|
@ -4177,6 +4332,61 @@
|
|||
},
|
||||
"time": "2020-05-12T15:16:56+00:00"
|
||||
},
|
||||
{
|
||||
"name": "riimu/kit-phpencoder",
|
||||
"version": "v2.4.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Riimu/Kit-PHPEncoder.git",
|
||||
"reference": "ca6f004e1290aec7ef4bebf6c0807b30fcf981d7"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/Riimu/Kit-PHPEncoder/zipball/ca6f004e1290aec7ef4bebf6c0807b30fcf981d7",
|
||||
"reference": "ca6f004e1290aec7ef4bebf6c0807b30fcf981d7",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=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",
|
||||
|
@ -11211,7 +11421,11 @@
|
|||
"prefer-stable": false,
|
||||
"prefer-lowest": false,
|
||||
"platform": {
|
||||
"php": "^8.0"
|
||||
"php": "^8.0",
|
||||
"ext-fileinfo": "*",
|
||||
"ext-gd": "*",
|
||||
"ext-json": "*",
|
||||
"ext-mbstring": "*"
|
||||
},
|
||||
"platform-dev": [],
|
||||
"plugin-api-version": "2.0.0"
|
||||
|
|
|
@ -117,9 +117,12 @@ return [
|
|||
| to a random, 32 character string, otherwise these encrypted strings
|
||||
| will not be safe. Please do this before deploying an application!
|
||||
|
|
||||
| MD5 is used here to enforce the 32 character string requirement while
|
||||
| allowing flexibility in the actual APP_KEY length.
|
||||
|
|
||||
*/
|
||||
|
||||
'key' => env('APP_KEY'),
|
||||
'key' => md5(env('APP_KEY')),
|
||||
|
||||
'cipher' => 'AES-256-CBC',
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@ namespace Database\Factories;
|
|||
|
||||
use App\Models\User;
|
||||
use Illuminate\Database\Eloquent\Factories\Factory;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class UserFactory extends Factory
|
||||
|
@ -19,9 +20,9 @@ class UserFactory extends Factory
|
|||
public function definition(): array
|
||||
{
|
||||
return [
|
||||
'username' => $this->faker->unique()->userName,
|
||||
'password' => Hash::make('password'),
|
||||
'name' => $this->faker->name,
|
||||
'email' => $this->faker->unique()->safeEmail,
|
||||
'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password
|
||||
'remember_token' => Str::random(10),
|
||||
];
|
||||
}
|
||||
|
|
|
@ -15,9 +15,9 @@ class CreateUsersTable extends Migration
|
|||
{
|
||||
Schema::create('users', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->string('name');
|
||||
$table->string('email')->unique();
|
||||
$table->string('username')->unique();
|
||||
$table->string('password');
|
||||
$table->string('name');
|
||||
$table->rememberToken();
|
||||
$table->timestamps();
|
||||
});
|
||||
|
|
|
@ -15,9 +15,9 @@ class UserSeeder extends Seeder
|
|||
public function run(): void
|
||||
{
|
||||
User::factory()->create([
|
||||
'username' => 'admin',
|
||||
'password' => Hash::make('admin'),
|
||||
'name' => 'Admin',
|
||||
'email' => 'admin@kcal.test',
|
||||
'password' => Hash::make('admin@kcal.test'),
|
||||
'remember_token' => Str::random(10),
|
||||
]);
|
||||
}
|
||||
|
|
|
@ -63,13 +63,6 @@ services:
|
|||
- 'redis-data:/data'
|
||||
networks:
|
||||
- sail
|
||||
mailhog:
|
||||
image: 'mailhog/mailhog:latest'
|
||||
ports:
|
||||
- '${MAIL_PORT:-1025}:1025'
|
||||
- '${MAILHOG_ADMIN_PORT:-8025}:8025'
|
||||
networks:
|
||||
- sail
|
||||
networks:
|
||||
sail:
|
||||
driver: bridge
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 7.7 KiB |
|
@ -1,35 +0,0 @@
|
|||
<x-guest-layout>
|
||||
<x-slot name="title">Confirm Password</x-slot>
|
||||
<x-auth-card>
|
||||
<x-slot name="logo">
|
||||
<a href="/">
|
||||
<x-application-logo class="w-20 h-20 fill-current text-gray-500" />
|
||||
</a>
|
||||
</x-slot>
|
||||
|
||||
<div class="mb-4 text-sm text-gray-600">
|
||||
This is a secure area of the application. Please confirm your password before continuing.
|
||||
</div>
|
||||
|
||||
<!-- Validation Errors -->
|
||||
<x-auth-validation-errors class="mb-4" :errors="$errors" />
|
||||
|
||||
<form method="POST" action="{{ route('password.confirm') }}">
|
||||
@csrf
|
||||
|
||||
<!-- Password -->
|
||||
<div>
|
||||
<x-inputs.label for="password" value="Password" />
|
||||
|
||||
<x-inputs.input id="password" class="block mt-1 w-full"
|
||||
type="password"
|
||||
name="password"
|
||||
required autocomplete="current-password" />
|
||||
</div>
|
||||
|
||||
<div class="flex justify-end mt-4">
|
||||
<x-inputs.button>Confirm</x-inputs.button>
|
||||
</div>
|
||||
</form>
|
||||
</x-auth-card>
|
||||
</x-guest-layout>
|
|
@ -1,35 +0,0 @@
|
|||
<x-guest-layout>
|
||||
<x-slot name="title">Forgot Password</x-slot>
|
||||
<x-auth-card>
|
||||
<x-slot name="logo">
|
||||
<a href="/">
|
||||
<x-application-logo class="w-20 h-20 fill-current text-gray-500" />
|
||||
</a>
|
||||
</x-slot>
|
||||
|
||||
<div class="mb-4 text-sm text-gray-600">
|
||||
Forgot your password? No problem. Just let us know your email address and we will email you a password reset link that will allow you to choose a new one.
|
||||
</div>
|
||||
|
||||
<!-- Session Status -->
|
||||
<x-auth-session-status class="mb-4" :status="session('status')" />
|
||||
|
||||
<!-- Validation Errors -->
|
||||
<x-auth-validation-errors class="mb-4" :errors="$errors" />
|
||||
|
||||
<form method="POST" action="{{ route('password.email') }}">
|
||||
@csrf
|
||||
|
||||
<!-- Email Address -->
|
||||
<div>
|
||||
<x-inputs.label for="email" value="Email" />
|
||||
|
||||
<x-inputs.input id="email" class="block mt-1 w-full" type="email" name="email" :value="old('email')" required autofocus />
|
||||
</div>
|
||||
|
||||
<div class="flex items-center justify-end mt-4">
|
||||
<x-inputs.button>Email Password Reset Link</x-inputs.button>
|
||||
</div>
|
||||
</form>
|
||||
</x-auth-card>
|
||||
</x-guest-layout>
|
|
@ -16,11 +16,11 @@
|
|||
<form method="POST" action="{{ route('login') }}">
|
||||
@csrf
|
||||
|
||||
<!-- Email Address -->
|
||||
<!-- Username -->
|
||||
<div>
|
||||
<x-inputs.label for="email" value="Email" />
|
||||
<x-inputs.label for="username" value="Username" />
|
||||
|
||||
<x-inputs.input id="email" class="block mt-1 w-full" type="email" name="email" :value="old('email')" required autofocus />
|
||||
<x-inputs.input id="username" class="block mt-1 w-full" type="text" name="username" :value="old('username')" required autofocus />
|
||||
</div>
|
||||
|
||||
<!-- Password -->
|
||||
|
|
|
@ -1,48 +0,0 @@
|
|||
<x-guest-layout>
|
||||
<x-slot name="title">Reset Password</x-slot>
|
||||
<x-auth-card>
|
||||
<x-slot name="logo">
|
||||
<a href="/">
|
||||
<x-application-logo class="w-20 h-20 fill-current text-gray-500" />
|
||||
</a>
|
||||
</x-slot>
|
||||
|
||||
<!-- Validation Errors -->
|
||||
<x-auth-validation-errors class="mb-4" :errors="$errors" />
|
||||
|
||||
<form method="POST" action="{{ route('password.update') }}">
|
||||
@csrf
|
||||
|
||||
<!-- Password Reset Token -->
|
||||
<input type="hidden" name="token" value="{{ $request->route('token') }}">
|
||||
|
||||
<!-- Email Address -->
|
||||
<div>
|
||||
<x-inputs.label for="email" value="Email" />
|
||||
|
||||
<x-inputs.input id="email" class="block mt-1 w-full" type="email" name="email" :value="old('email', $request->email)" required autofocus />
|
||||
</div>
|
||||
|
||||
<!-- Password -->
|
||||
<div class="mt-4">
|
||||
<x-inputs.label for="password" value="Password" />
|
||||
|
||||
<x-inputs.input id="password" class="block mt-1 w-full" type="password" name="password" required />
|
||||
</div>
|
||||
|
||||
<!-- Confirm Password -->
|
||||
<div class="mt-4">
|
||||
<x-inputs.label for="password_confirmation" value="Confirm Password" />
|
||||
|
||||
<x-inputs.input id="password_confirmation" class="block mt-1 w-full"
|
||||
type="password"
|
||||
name="password_confirmation" required />
|
||||
</div>
|
||||
|
||||
<div class="flex items-center justify-end mt-4">
|
||||
<x-inputs.button>Reset Password
|
||||
</x-inputs.button>
|
||||
</div>
|
||||
</form>
|
||||
</x-auth-card>
|
||||
</x-guest-layout>
|
|
@ -1,35 +0,0 @@
|
|||
<x-guest-layout>
|
||||
<x-slot name="title">Verify Email</x-slot>
|
||||
<x-auth-card>
|
||||
<x-slot name="logo">
|
||||
<a href="/">
|
||||
<x-application-logo class="w-20 h-20 fill-current text-gray-500" />
|
||||
</a>
|
||||
</x-slot>
|
||||
|
||||
<div class="mb-4 text-sm text-gray-600">
|
||||
Thanks for signing up! Before getting started, could you verify your email address by clicking on the link we just emailed to you? If you didn\'t receive the email, we will gladly send you another.
|
||||
</div>
|
||||
|
||||
@if (session('status') == 'verification-link-sent')
|
||||
<div class="mb-4 font-medium text-sm text-green-600">
|
||||
A new verification link has been sent to the email address you provided during registration.
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="mt-4 flex items-center justify-between">
|
||||
<form method="POST" action="{{ route('verification.send') }}">
|
||||
@csrf
|
||||
|
||||
<div>
|
||||
<x-inputs.button>Resend Verification Email</x-inputs.button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<form method="POST" action="{{ route('logout') }}">
|
||||
@csrf
|
||||
<button type="submit" class="underline text-sm text-gray-600 hover:text-gray-900">Logout</button>
|
||||
</form>
|
||||
</div>
|
||||
</x-auth-card>
|
||||
</x-guest-layout>
|
|
@ -0,0 +1,5 @@
|
|||
<div class="flex justify-center pt-12 sm:pt-0 sm:justify-start">
|
||||
<a href="https://www.algolia.com/" target="_blank">
|
||||
<img src="{{ asset('images/search-by-algolia-light-background.svg') }}" alt="Search by Algolia">
|
||||
</a>
|
||||
</div>
|
|
@ -24,13 +24,16 @@
|
|||
</x-inputs.icon-green>
|
||||
<div class="flex items-center justify-end mt-4 space-x-4">
|
||||
<fieldset class="flex space-x-2">
|
||||
<x-inputs.input name="group_entries" type="checkbox" class="h-5 w-5" value="1" checked />
|
||||
<x-inputs.label for="groupEntries" value="Group entries by day and meal" />
|
||||
<x-inputs.input type="checkbox" name="group_entries" value="1" checked />
|
||||
</fieldset>
|
||||
<x-inputs.button x-on:click="removeTemplate($el);">Add entries</x-inputs.button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
@if(config('scout.driver') === 'algolia')
|
||||
<x-search-by-algolia />
|
||||
@endif
|
||||
|
||||
@once
|
||||
@push('scripts')
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
<x-slot name="content">
|
||||
<div class="ml-3">
|
||||
<div class="font-medium text-base text-gray-800">{{ Auth::user()->name }}</div>
|
||||
<div class="font-medium text-sm text-gray-500">{{ Auth::user()->email }}</div>
|
||||
<div class="font-medium text-sm text-gray-500">{{ Auth::user()->username }}</div>
|
||||
</div>
|
||||
|
||||
<div class="mt-3 space-y-1">
|
||||
|
|
|
@ -182,6 +182,9 @@
|
|||
</x-inputs.button>
|
||||
</div>
|
||||
</form>
|
||||
@if(config('scout.driver') === 'algolia')
|
||||
<x-search-by-algolia />
|
||||
@endif
|
||||
|
||||
@once
|
||||
@push('styles')
|
||||
|
|
|
@ -21,7 +21,7 @@ class AuthenticationTest extends TestCase
|
|||
{
|
||||
$user = User::factory()->create();
|
||||
$response = $this->post('/login', [
|
||||
'email' => $user->email,
|
||||
'username' => $user->username,
|
||||
'password' => 'password',
|
||||
]);
|
||||
$this->assertAuthenticated();
|
||||
|
@ -32,7 +32,7 @@ class AuthenticationTest extends TestCase
|
|||
{
|
||||
$user = User::factory()->create();
|
||||
$this->post('/login', [
|
||||
'email' => $user->email,
|
||||
'username' => $user->username,
|
||||
'password' => 'wrong-password',
|
||||
]);
|
||||
$this->assertGuest();
|
||||
|
|
|
@ -1,44 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace Tests\Feature\Http\Controllers\Auth;
|
||||
|
||||
use App\Models\User;
|
||||
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||
use Tests\TestCase;
|
||||
|
||||
class PasswordConfirmationTest extends TestCase
|
||||
{
|
||||
use RefreshDatabase;
|
||||
|
||||
public function testConfirmPasswordScreenCanBeRendered()
|
||||
{
|
||||
$user = User::factory()->create();
|
||||
|
||||
$response = $this->actingAs($user)->get('/confirm-password');
|
||||
|
||||
$response->assertStatus(200);
|
||||
}
|
||||
|
||||
public function testPasswordCanBeConfirmed()
|
||||
{
|
||||
$user = User::factory()->create();
|
||||
|
||||
$response = $this->actingAs($user)->post('/confirm-password', [
|
||||
'password' => 'password',
|
||||
]);
|
||||
|
||||
$response->assertRedirect();
|
||||
$response->assertSessionHasNoErrors();
|
||||
}
|
||||
|
||||
public function testPasswordIsNotConfirmedWithInvalidPassword()
|
||||
{
|
||||
$user = User::factory()->create();
|
||||
|
||||
$response = $this->actingAs($user)->post('/confirm-password', [
|
||||
'password' => 'wrong-password',
|
||||
]);
|
||||
|
||||
$response->assertSessionHasErrors();
|
||||
}
|
||||
}
|
|
@ -1,71 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace Tests\Feature\Http\Controllers\Auth;
|
||||
|
||||
use App\Models\User;
|
||||
use Illuminate\Auth\Notifications\ResetPassword;
|
||||
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||
use Illuminate\Support\Facades\Notification;
|
||||
use Tests\TestCase;
|
||||
|
||||
class PasswordResetTest extends TestCase
|
||||
{
|
||||
use RefreshDatabase;
|
||||
|
||||
public function testResetPasswordLinkScreenCanBeRendered()
|
||||
{
|
||||
$response = $this->get('/forgot-password');
|
||||
|
||||
$response->assertStatus(200);
|
||||
}
|
||||
|
||||
public function testResetPasswordLinkCanBeRequested()
|
||||
{
|
||||
Notification::fake();
|
||||
|
||||
$user = User::factory()->create();
|
||||
|
||||
$this->post('/forgot-password', ['email' => $user->email]);
|
||||
|
||||
Notification::assertSentTo($user, ResetPassword::class);
|
||||
}
|
||||
|
||||
public function testResetPasswordScreenCanBeRendered()
|
||||
{
|
||||
Notification::fake();
|
||||
|
||||
$user = User::factory()->create();
|
||||
|
||||
$this->post('/forgot-password', ['email' => $user->email]);
|
||||
|
||||
Notification::assertSentTo($user, ResetPassword::class, function ($notification) {
|
||||
$response = $this->get('/reset-password/'.$notification->token);
|
||||
|
||||
$response->assertStatus(200);
|
||||
|
||||
return true;
|
||||
});
|
||||
}
|
||||
|
||||
public function testPasswordCanBeResetWithValidToken()
|
||||
{
|
||||
Notification::fake();
|
||||
|
||||
$user = User::factory()->create();
|
||||
|
||||
$this->post('/forgot-password', ['email' => $user->email]);
|
||||
|
||||
Notification::assertSentTo($user, ResetPassword::class, function ($notification) use ($user) {
|
||||
$response = $this->post('/reset-password', [
|
||||
'token' => $notification->token,
|
||||
'email' => $user->email,
|
||||
'password' => 'password',
|
||||
'password_confirmation' => 'password',
|
||||
]);
|
||||
|
||||
$response->assertSessionHasNoErrors();
|
||||
|
||||
return true;
|
||||
});
|
||||
}
|
||||
}
|
|
@ -15,7 +15,7 @@ trait LogsIn
|
|||
{
|
||||
$this->user = User::factory()->create();
|
||||
$this->post('/login', [
|
||||
'email' => $this->user->email,
|
||||
'username' => $this->user->username,
|
||||
'password' => 'password',
|
||||
]);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue