diff --git a/src/ServiceProvider.php b/src/ServiceProvider.php index c6eaf040..192afd2b 100644 --- a/src/ServiceProvider.php +++ b/src/ServiceProvider.php @@ -255,14 +255,14 @@ private function registerAssetContainers() // lets remove this when we hit 3.0.0 $usingOldConfigKeys = config()->has('statamic.eloquent-driver.assets.container_model'); - if (config($usingOldConfigKeys ? 'statamic.eloquent-driver.assets.driver' : 'statamic.eloquent-driver.asset_containers.driver', 'file') != 'eloquent') { - return; - } - $this->app->bind('statamic.eloquent.assets.container_model', function () use ($usingOldConfigKeys) { return config($usingOldConfigKeys ? 'statamic.eloquent-driver.assets.container_model' : 'statamic.eloquent-driver.asset_containers.model'); }); + if (config($usingOldConfigKeys ? 'statamic.eloquent-driver.assets.driver' : 'statamic.eloquent-driver.asset_containers.driver', 'file') != 'eloquent') { + return; + } + Statamic::repository(AssetContainerRepositoryContract::class, AssetContainerRepository::class); Stache::exclude('asset-containers'); @@ -270,10 +270,6 @@ private function registerAssetContainers() private function registerAssets() { - if (config('statamic.eloquent-driver.assets.driver', 'file') != 'eloquent') { - return; - } - $this->app->bind('statamic.eloquent.assets.model', function () { return config('statamic.eloquent-driver.assets.model'); }); @@ -282,6 +278,10 @@ private function registerAssets() return config('statamic.eloquent-driver.assets.asset', \Statamic\Eloquent\Assets\Asset::class); }); + if (config('statamic.eloquent-driver.assets.driver', 'file') != 'eloquent') { + return; + } + $this->app->bind(AssetQueryBuilder::class, function ($app) { return new AssetQueryBuilder( $app['statamic.eloquent.assets.model']::query() @@ -299,10 +299,6 @@ private function registerAssets() private function registerBlueprints() { - if (config('statamic.eloquent-driver.blueprints.driver', 'file') != 'eloquent') { - return; - } - $this->app->bind('statamic.eloquent.blueprints.model', function () { return config('statamic.eloquent-driver.blueprints.model', config('statamic.eloquent-driver.blueprints.blueprint_model')); }); @@ -312,6 +308,10 @@ private function registerBlueprints() return config('statamic.eloquent-driver.blueprints.model', config('statamic.eloquent-driver.blueprints.blueprint_model')); }); + if (config('statamic.eloquent-driver.blueprints.driver', 'file') != 'eloquent') { + return; + } + $this->app->singleton(\Statamic\Fields\BlueprintRepository::class, function () { return (new \Statamic\Eloquent\Fields\BlueprintRepository) ->setDirectory(resource_path('blueprints')); @@ -320,14 +320,14 @@ private function registerBlueprints() private function registerCollections() { - if (config('statamic.eloquent-driver.collections.driver', 'file') != 'eloquent') { - return; - } - $this->app->bind('statamic.eloquent.collections.model', function () { return config('statamic.eloquent-driver.collections.model'); }); + if (config('statamic.eloquent-driver.collections.driver', 'file') != 'eloquent') { + return; + } + Statamic::repository(CollectionRepositoryContract::class, CollectionRepository::class); Stache::exclude('collections'); @@ -341,10 +341,6 @@ private function registerCollectionTrees() // lets remove this when we hit 3.0.0 $usingOldConfigKeys = config()->has('statamic.eloquent-driver.collections.tree_model'); - if (config($usingOldConfigKeys ? 'statamic.eloquent-driver.collections.driver' : 'statamic.eloquent-driver.collection_trees.driver', 'file') != 'eloquent') { - return; - } - $this->app->bind('statamic.eloquent.collections.tree', function () use ($usingOldConfigKeys) { return config($usingOldConfigKeys ? 'statamic.eloquent-driver.collections.tree' : 'statamic.eloquent-driver.collection_trees.tree'); }); @@ -353,6 +349,10 @@ private function registerCollectionTrees() return config($usingOldConfigKeys ? 'statamic.eloquent-driver.collections.tree_model' : 'statamic.eloquent-driver.collection_trees.model'); }); + if (config($usingOldConfigKeys ? 'statamic.eloquent-driver.collections.driver' : 'statamic.eloquent-driver.collection_trees.driver', 'file') != 'eloquent') { + return; + } + Statamic::repository(CollectionTreeRepositoryContract::class, CollectionTreeRepository::class); Stache::exclude('collection-trees'); @@ -360,10 +360,6 @@ private function registerCollectionTrees() private function registerEntries() { - if (config('statamic.eloquent-driver.entries.driver', 'file') != 'eloquent') { - return; - } - $this->app->bind('statamic.eloquent.entries.entry', function () { return config('statamic.eloquent-driver.entries.entry'); }); @@ -372,6 +368,10 @@ private function registerEntries() return config('statamic.eloquent-driver.entries.model'); }); + if (config('statamic.eloquent-driver.entries.driver', 'file') != 'eloquent') { + return; + } + $this->app->bind(EntryQueryBuilder::class, function ($app) { return new EntryQueryBuilder( $app['statamic.eloquent.entries.model']::query() @@ -387,10 +387,6 @@ private function registerFieldsets() { $usingOldConfigKeys = config()->has('statamic.eloquent-driver.blueprints.fieldset_model'); - if (config($usingOldConfigKeys ? 'statamic.eloquent-driver.blueprints.driver' : 'statamic.eloquent-driver.fieldsets.driver', 'file') != 'eloquent') { - return; - } - $this->app->bind('statamic.eloquent.fieldsets.model', function () { return config('statamic.eloquent-driver.fieldsets.model', config('statamic.eloquent-driver.blueprints.fieldset_model')); }); @@ -400,6 +396,10 @@ private function registerFieldsets() return config('statamic.eloquent-driver.fieldsets.model', config('statamic.eloquent-driver.blueprints.fieldset_model')); }); + if (config($usingOldConfigKeys ? 'statamic.eloquent-driver.blueprints.driver' : 'statamic.eloquent-driver.fieldsets.driver', 'file') != 'eloquent') { + return; + } + $this->app->singleton( 'Statamic\Fields\FieldsetRepository', 'Statamic\Eloquent\Fields\FieldsetRepository' @@ -408,14 +408,14 @@ private function registerFieldsets() private function registerForms() { - if (config('statamic.eloquent-driver.forms.driver', 'file') != 'eloquent') { - return; - } - $this->app->bind('statamic.eloquent.forms.model', function () { return config('statamic.eloquent-driver.forms.model'); }); + if (config('statamic.eloquent-driver.forms.driver', 'file') != 'eloquent') { + return; + } + Statamic::repository(FormRepositoryContract::class, FormRepository::class); Stache::exclude('forms'); @@ -425,16 +425,16 @@ private function registerFormSubmissions() { $usingOldConfigKeys = config()->has('statamic.eloquent-driver.forms.submission_model'); + $this->app->bind('statamic.eloquent.form_submissions.model', function () use ($usingOldConfigKeys) { + return config($usingOldConfigKeys ? 'statamic.eloquent-driver.forms.submission_model' : 'statamic.eloquent-driver.form_submissions.model'); + }); + if (config($usingOldConfigKeys ? 'statamic.eloquent-driver.forms.driver' : 'statamic.eloquent-driver.form_submissions.driver', 'file') != 'eloquent') { return; } Statamic::repository(FormSubmissionRepositoryContract::class, SubmissionRepository::class); - $this->app->bind('statamic.eloquent.form_submissions.model', function () use ($usingOldConfigKeys) { - return config($usingOldConfigKeys ? 'statamic.eloquent-driver.forms.submission_model' : 'statamic.eloquent-driver.form_submissions.model'); - }); - $this->app->bind(SubmissionQueryBuilder::class, function ($app) { return new SubmissionQueryBuilder( $app['statamic.eloquent.form_submissions.model']::query() @@ -463,29 +463,29 @@ private function registerGlobalVariables() { $usingOldConfigKeys = config()->has('statamic.eloquent-driver.global_sets.variables_model'); + $this->app->bind('statamic.eloquent.global_set_variables.model', function () use ($usingOldConfigKeys) { + return config($usingOldConfigKeys ? 'statamic.eloquent-driver.global_sets.variables_model' : 'statamic.eloquent-driver.global_set_variables.model'); + }); + if (config($usingOldConfigKeys ? 'statamic.eloquent-driver.global_sets.driver' : 'statamic.eloquent-driver.global_set_variables.driver', 'file') != 'eloquent') { return; } Statamic::repository(GlobalVariablesRepositoryContract::class, GlobalVariablesRepository::class); - $this->app->bind('statamic.eloquent.global_set_variables.model', function () use ($usingOldConfigKeys) { - return config($usingOldConfigKeys ? 'statamic.eloquent-driver.global_sets.variables_model' : 'statamic.eloquent-driver.global_set_variables.model'); - }); - Stache::exclude('global-variables'); } private function registerRevisions() { - if (config('statamic.eloquent-driver.revisions.driver', 'file') != 'eloquent') { - return; - } - $this->app->bind('statamic.eloquent.revisions.model', function () { return config('statamic.eloquent-driver.revisions.model'); }); + if (config('statamic.eloquent-driver.revisions.driver', 'file') != 'eloquent') { + return; + } + $this->app->bind(RevisionQueryBuilder::class, function ($app) { return new RevisionQueryBuilder( $app['statamic.eloquent.revisions.model']::query() @@ -497,14 +497,14 @@ private function registerRevisions() private function registerStructures() { - if (config('statamic.eloquent-driver.navigations.driver', 'file') != 'eloquent') { - return; - } - $this->app->bind('statamic.eloquent.navigations.model', function () { return config('statamic.eloquent-driver.navigations.model'); }); + if (config('statamic.eloquent-driver.navigations.driver', 'file') != 'eloquent') { + return; + } + Statamic::repository(NavigationRepositoryContract::class, NavigationRepository::class); Stache::exclude('navigation'); @@ -518,10 +518,6 @@ private function registerStructureTrees() // lets remove this when we hit 3.0.0 $usingOldConfigKeys = config()->has('statamic.eloquent-driver.navigations.tree_model'); - if (config($usingOldConfigKeys ? 'statamic.eloquent-driver.navigations.driver' : 'statamic.eloquent-driver.navigation_trees.driver', 'file') != 'eloquent') { - return; - } - $this->app->bind('statamic.eloquent.navigations.tree', function () use ($usingOldConfigKeys) { return config($usingOldConfigKeys ? 'statamic.eloquent-driver.navigations.tree' : 'statamic.eloquent-driver.navigation_trees.tree'); }); @@ -530,6 +526,10 @@ private function registerStructureTrees() return config($usingOldConfigKeys ? 'statamic.eloquent-driver.navigations.tree_model' : 'statamic.eloquent-driver.navigation_trees.model'); }); + if (config($usingOldConfigKeys ? 'statamic.eloquent-driver.navigations.driver' : 'statamic.eloquent-driver.navigation_trees.driver', 'file') != 'eloquent') { + return; + } + Statamic::repository(NavTreeRepositoryContract::class, NavTreeRepository::class); Stache::exclude('nav-trees'); @@ -537,14 +537,14 @@ private function registerStructureTrees() public function registerTaxonomies() { - if (config('statamic.eloquent-driver.taxonomies.driver', 'file') != 'eloquent') { - return; - } - $this->app->bind('statamic.eloquent.taxonomies.model', function () { return config('statamic.eloquent-driver.taxonomies.model'); }); + if (config('statamic.eloquent-driver.taxonomies.driver', 'file') != 'eloquent') { + return; + } + Statamic::repository(TaxonomyRepositoryContract::class, TaxonomyRepository::class); Stache::exclude('taxonomies'); @@ -552,14 +552,14 @@ public function registerTaxonomies() public function registerTerms() { - if (config('statamic.eloquent-driver.terms.driver', 'file') != 'eloquent') { - return; - } - $this->app->bind('statamic.eloquent.terms.model', function () { return config('statamic.eloquent-driver.terms.model'); }); + if (config('statamic.eloquent-driver.terms.driver', 'file') != 'eloquent') { + return; + } + $this->app->bind(TermQueryBuilder::class, function ($app) { return new TermQueryBuilder( $app['statamic.eloquent.terms.model']::query() @@ -573,27 +573,27 @@ public function registerTerms() public function registerTokens() { - if (config('statamic.eloquent-driver.tokens.driver', 'file') != 'eloquent') { - return; - } - $this->app->bind('statamic.eloquent.tokens.model', function () { return config('statamic.eloquent-driver.tokens.model'); }); + if (config('statamic.eloquent-driver.tokens.driver', 'file') != 'eloquent') { + return; + } + Statamic::repository(TokenRepositoryContract::class, TokenRepository::class); } public function registerSites() { - if (config('statamic.eloquent-driver.sites.driver', 'file') != 'eloquent') { - return; - } - $this->app->bind('statamic.eloquent.sites.model', function () { return config('statamic.eloquent-driver.sites.model'); }); + if (config('statamic.eloquent-driver.sites.driver', 'file') != 'eloquent') { + return; + } + $this->app->singleton(\Statamic\Sites\Sites::class, \Statamic\Eloquent\Sites\Sites::class); }