Skip to content

Commit

Permalink
Merge pull request #977 from hydephp/restructure-service-providers
Browse files Browse the repository at this point in the history
Restructure service providers
  • Loading branch information
caendesilva committed Feb 12, 2023
2 parents 1230fef + fda35fe commit ada723c
Show file tree
Hide file tree
Showing 5 changed files with 15 additions and 38 deletions.
3 changes: 3 additions & 0 deletions config/app.php
Expand Up @@ -79,6 +79,9 @@
'providers' => [
App\Providers\AppServiceProvider::class,
Hyde\Framework\HydeServiceProvider::class,
Hyde\Foundation\Providers\ViewServiceProvider::class,
Hyde\Foundation\Providers\ConfigurationServiceProvider::class,
Hyde\Console\ConsoleServiceProvider::class,
],

/*
Expand Down
Expand Up @@ -9,11 +9,8 @@
/**
* Register the HydeCLI console commands.
*/
class HydeConsoleServiceProvider extends ServiceProvider
class ConsoleServiceProvider extends ServiceProvider
{
/**
* Register any console services.
*/
public function register(): void
{
$this->commands([
Expand All @@ -40,4 +37,9 @@ public function register(): void
Commands\ChangeSourceDirectoryCommand::class,
]);
}

public function boot(): void
{
//
}
}
Expand Up @@ -9,6 +9,9 @@
use Illuminate\Support\Facades\Blade;
use Illuminate\Support\ServiceProvider;

/**
* Register the Hyde view components.
*/
class ViewServiceProvider extends ServiceProvider
{
public function register(): void
Expand Down
33 changes: 1 addition & 32 deletions packages/framework/src/Framework/HydeServiceProvider.php
Expand Up @@ -4,11 +4,8 @@

namespace Hyde\Framework;

use Hyde\Console\HydeConsoleServiceProvider;
use Hyde\Facades\Features;
use Hyde\Foundation\HydeKernel;
use Hyde\Foundation\Providers\ConfigurationServiceProvider;
use Hyde\Foundation\Providers\ViewServiceProvider;
use Hyde\Framework\Concerns\RegistersFileLocations;
use Hyde\Framework\Services\AssetService;
use Hyde\Pages\BladePage;
Expand All @@ -19,21 +16,16 @@
use Illuminate\Support\ServiceProvider;

/**
* Register and bootstrap Hyde application services.
* Register and bootstrap core Hyde application services.
*/
class HydeServiceProvider extends ServiceProvider
{
use RegistersFileLocations;

protected HydeKernel $kernel;

/**
* Register any application services.
*/
public function register(): void
{
$this->initializeConfiguration();

$this->kernel = HydeKernel::getInstance();

$this->app->singleton(AssetService::class, AssetService::class);
Expand Down Expand Up @@ -63,27 +55,13 @@ public function register(): void
$this->useMediaDirectory(config('site.media_directory', '_media'));

$this->discoverBladeViewsIn(BladePage::sourceDirectory());

$this->registerModuleServiceProviders();
}

/**
* Bootstrap any application services.
*/
public function boot(): void
{
$this->kernel->readyToBoot();
}

/** @deprecated Todo: Move this to app.php */
protected function initializeConfiguration(): void
{
$this->app->register(ConfigurationServiceProvider::class);
}

/**
* Register the page model classes that Hyde should use.
*/
protected function registerPageModels(): void
{
if (Features::hasHtmlPages()) {
Expand All @@ -106,13 +84,4 @@ protected function registerPageModels(): void
$this->kernel->registerPageClass(DocumentationPage::class);
}
}

/**
* Register module service providers.
*/
protected function registerModuleServiceProviders(): void
{
$this->app->register(HydeConsoleServiceProvider::class);
$this->app->register(ViewServiceProvider::class);
}
}
4 changes: 2 additions & 2 deletions packages/framework/tests/Feature/HydeServiceProviderTest.php
Expand Up @@ -13,7 +13,7 @@
use function get_class;
use function get_declared_classes;
use function glob;
use Hyde\Console\HydeConsoleServiceProvider;
use Hyde\Console\ConsoleServiceProvider;
use Hyde\Facades\Site;
use Hyde\Framework\HydeServiceProvider;
use Hyde\Framework\Services\AssetService;
Expand Down Expand Up @@ -212,7 +212,7 @@ public function test_provider_registers_additional_module_service_providers()
{
$this->provider->register();

$this->assertArrayHasKey(HydeConsoleServiceProvider::class, $this->app->getLoadedProviders());
$this->assertArrayHasKey(ConsoleServiceProvider::class, $this->app->getLoadedProviders());
}

public function test_provider_registers_all_page_model_source_paths()
Expand Down

0 comments on commit ada723c

Please sign in to comment.