diff --git a/bin/composer b/bin/composer index a65407d..f7ab9e6 100755 --- a/bin/composer +++ b/bin/composer @@ -1,3 +1,3 @@ #!/usr/bin/env bash -[ -z "$1" ] && echo "Please specify a Composer command (ex. install)" && exit +[ -z "$1" ] && bin/cli composer list && exit bin/cli composer "$@" \ No newline at end of file diff --git a/src/Command/ScrapeWebsite.php b/src/Command/ScrapeWebsite.php index f6be3fe..722856a 100644 --- a/src/Command/ScrapeWebsite.php +++ b/src/Command/ScrapeWebsite.php @@ -21,15 +21,13 @@ class ScrapeWebsite extends Command { private Client $client; + public function __construct(protected Capsule $database) + { + parent::__construct(); + } + protected function configure(): void { - $capsule = new Capsule; - $capsule->addConnection([ - 'driver' => 'sqlite', - 'database' => __DIR__ . '/../../database.sqlite', - ]); - $capsule->setAsGlobal(); - $capsule->bootEloquent(); $this->client = new Client(); } diff --git a/src/Controller/BaseController.php b/src/Controller/BaseController.php index fb6f2ff..dfccd17 100644 --- a/src/Controller/BaseController.php +++ b/src/Controller/BaseController.php @@ -11,11 +11,7 @@ class BaseController extends AbstractController { protected Environment $twig; - public function __construct(protected FilesystemAdapter $cache) + public function __construct(protected FilesystemAdapter $cache, protected Capsule $database) { - $capsule = new Capsule; - $capsule->addConnection(['driver' => 'sqlite', 'database' => __DIR__ . '/../../database.sqlite']); - $capsule->setAsGlobal(); - $capsule->bootEloquent(); } } diff --git a/src/DatabaseFactory.php b/src/DatabaseFactory.php new file mode 100644 index 0000000..0702d80 --- /dev/null +++ b/src/DatabaseFactory.php @@ -0,0 +1,14 @@ +addConnection(['driver' => 'sqlite', 'database' => __DIR__ . '/../database.sqlite']); + $capsule->setAsGlobal(); + $capsule->bootEloquent(); + } +} \ No newline at end of file diff --git a/src/Kernel.php b/src/Kernel.php index add1329..4293331 100644 --- a/src/Kernel.php +++ b/src/Kernel.php @@ -2,6 +2,7 @@ namespace Krzysiej\RyobiCrawler; +use Illuminate\Database\Capsule\Manager; use Krzysiej\RyobiCrawler\Twig\AppExtension; use Symfony\Bundle\FrameworkBundle\FrameworkBundle; use Symfony\Bundle\FrameworkBundle\Kernel\MicroKernelTrait; @@ -34,8 +35,9 @@ class Kernel extends BaseKernel 'secret' => 'S0ME_SECRET' ]); $services = $container->services()->defaults()->autowire()->autoconfigure(); + $services->set(Manager::class)->configurator([DatabaseFactory::class, 'create']); $services->load('Krzysiej\\RyobiCrawler\\', __DIR__ ) - ->exclude('../src/{Models,Twig,Kernel.php}'); + ->exclude('../src/{Models,Twig,DatabaseFactory.php,Kernel.php}'); $services->set('twig.extension.cache', AppExtension::class)->tag('twig.extension'); $services->set(CacheExtension::class)->tag('twig.extension'); $services->set(FilesystemAdapter::class)->args([