Skip to content

Commit

Permalink
[5.8] Make register method in the ServiceProvider as part of the co…
Browse files Browse the repository at this point in the history
…ntract

 In the laravel#27067 pr was added DeferrableProvider service provider.
 This Pr will add pretty the same thing.
 In case, if it will be accepted then I will add documentation for this.

----------------

Also i thing will be good to add diferent contract for the:
- method `boot`
  • Loading branch information
TBlindaruk committed Feb 17, 2019
1 parent 0b00d81 commit c243d09
Show file tree
Hide file tree
Showing 31 changed files with 73 additions and 39 deletions.
3 changes: 2 additions & 1 deletion src/Illuminate/Auth/AuthServiceProvider.php
Expand Up @@ -4,10 +4,11 @@

use Illuminate\Auth\Access\Gate;
use Illuminate\Support\ServiceProvider;
use Illuminate\Contracts\Support\RegistrableProvider;
use Illuminate\Contracts\Auth\Access\Gate as GateContract;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;

class AuthServiceProvider extends ServiceProvider
class AuthServiceProvider extends ServiceProvider implements RegistrableProvider
{
/**
* Register the service provider.
Expand Down
Expand Up @@ -4,8 +4,9 @@

use Illuminate\Support\ServiceProvider;
use Illuminate\Contracts\Support\DeferrableProvider;
use Illuminate\Contracts\Support\RegistrableProvider;

class PasswordResetServiceProvider extends ServiceProvider implements DeferrableProvider
class PasswordResetServiceProvider extends ServiceProvider implements DeferrableProvider, RegistrableProvider
{
/**
* Register the service provider.
Expand Down
3 changes: 2 additions & 1 deletion src/Illuminate/Broadcasting/BroadcastServiceProvider.php
Expand Up @@ -4,10 +4,11 @@

use Illuminate\Support\ServiceProvider;
use Illuminate\Contracts\Support\DeferrableProvider;
use Illuminate\Contracts\Support\RegistrableProvider;
use Illuminate\Contracts\Broadcasting\Factory as BroadcastingFactory;
use Illuminate\Contracts\Broadcasting\Broadcaster as BroadcasterContract;

class BroadcastServiceProvider extends ServiceProvider implements DeferrableProvider
class BroadcastServiceProvider extends ServiceProvider implements DeferrableProvider, RegistrableProvider
{
/**
* Register the service provider.
Expand Down
3 changes: 2 additions & 1 deletion src/Illuminate/Bus/BusServiceProvider.php
Expand Up @@ -4,11 +4,12 @@

use Illuminate\Support\ServiceProvider;
use Illuminate\Contracts\Support\DeferrableProvider;
use Illuminate\Contracts\Support\RegistrableProvider;
use Illuminate\Contracts\Bus\Dispatcher as DispatcherContract;
use Illuminate\Contracts\Queue\Factory as QueueFactoryContract;
use Illuminate\Contracts\Bus\QueueingDispatcher as QueueingDispatcherContract;

class BusServiceProvider extends ServiceProvider implements DeferrableProvider
class BusServiceProvider extends ServiceProvider implements DeferrableProvider, RegistrableProvider
{
/**
* Register the service provider.
Expand Down
3 changes: 2 additions & 1 deletion src/Illuminate/Cache/CacheServiceProvider.php
Expand Up @@ -4,8 +4,9 @@

use Illuminate\Support\ServiceProvider;
use Illuminate\Contracts\Support\DeferrableProvider;
use Illuminate\Contracts\Support\RegistrableProvider;

class CacheServiceProvider extends ServiceProvider implements DeferrableProvider
class CacheServiceProvider extends ServiceProvider implements DeferrableProvider, RegistrableProvider
{
/**
* Register the service provider.
Expand Down
13 changes: 13 additions & 0 deletions src/Illuminate/Contracts/Support/RegistrableProvider.php
@@ -0,0 +1,13 @@
<?php

namespace Illuminate\Contracts\Support;

interface RegistrableProvider
{
/**
* Register the services.
*
* @return void
*/
public function register();
}
3 changes: 2 additions & 1 deletion src/Illuminate/Cookie/CookieServiceProvider.php
Expand Up @@ -3,8 +3,9 @@
namespace Illuminate\Cookie;

use Illuminate\Support\ServiceProvider;
use Illuminate\Contracts\Support\RegistrableProvider;

class CookieServiceProvider extends ServiceProvider
class CookieServiceProvider extends ServiceProvider implements RegistrableProvider
{
/**
* Register the service provider.
Expand Down
3 changes: 2 additions & 1 deletion src/Illuminate/Database/DatabaseServiceProvider.php
Expand Up @@ -7,11 +7,12 @@
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\ServiceProvider;
use Illuminate\Contracts\Queue\EntityResolver;
use Illuminate\Contracts\Support\RegistrableProvider;
use Illuminate\Database\Connectors\ConnectionFactory;
use Illuminate\Database\Eloquent\QueueEntityResolver;
use Illuminate\Database\Eloquent\Factory as EloquentFactory;

class DatabaseServiceProvider extends ServiceProvider
class DatabaseServiceProvider extends ServiceProvider implements RegistrableProvider
{
/**
* Bootstrap the application events.
Expand Down
3 changes: 2 additions & 1 deletion src/Illuminate/Database/MigrationServiceProvider.php
Expand Up @@ -6,9 +6,10 @@
use Illuminate\Database\Migrations\Migrator;
use Illuminate\Contracts\Support\DeferrableProvider;
use Illuminate\Database\Migrations\MigrationCreator;
use Illuminate\Contracts\Support\RegistrableProvider;
use Illuminate\Database\Migrations\DatabaseMigrationRepository;

class MigrationServiceProvider extends ServiceProvider implements DeferrableProvider
class MigrationServiceProvider extends ServiceProvider implements DeferrableProvider, RegistrableProvider
{
/**
* Register the service provider.
Expand Down
3 changes: 2 additions & 1 deletion src/Illuminate/Encryption/EncryptionServiceProvider.php
Expand Up @@ -5,8 +5,9 @@
use RuntimeException;
use Illuminate\Support\Str;
use Illuminate\Support\ServiceProvider;
use Illuminate\Contracts\Support\RegistrableProvider;

class EncryptionServiceProvider extends ServiceProvider
class EncryptionServiceProvider extends ServiceProvider implements RegistrableProvider
{
/**
* Register the service provider.
Expand Down
3 changes: 2 additions & 1 deletion src/Illuminate/Events/EventServiceProvider.php
Expand Up @@ -3,9 +3,10 @@
namespace Illuminate\Events;

use Illuminate\Support\ServiceProvider;
use Illuminate\Contracts\Support\RegistrableProvider;
use Illuminate\Contracts\Queue\Factory as QueueFactoryContract;

class EventServiceProvider extends ServiceProvider
class EventServiceProvider extends ServiceProvider implements RegistrableProvider
{
/**
* Register the service provider.
Expand Down
3 changes: 2 additions & 1 deletion src/Illuminate/Filesystem/FilesystemServiceProvider.php
Expand Up @@ -3,8 +3,9 @@
namespace Illuminate\Filesystem;

use Illuminate\Support\ServiceProvider;
use Illuminate\Contracts\Support\RegistrableProvider;

class FilesystemServiceProvider extends ServiceProvider
class FilesystemServiceProvider extends ServiceProvider implements RegistrableProvider
{
/**
* Register the service provider.
Expand Down
3 changes: 2 additions & 1 deletion src/Illuminate/Foundation/Application.php
Expand Up @@ -15,6 +15,7 @@
use Illuminate\Events\EventServiceProvider;
use Illuminate\Routing\RoutingServiceProvider;
use Symfony\Component\HttpKernel\HttpKernelInterface;
use Illuminate\Contracts\Support\RegistrableProvider;
use Symfony\Component\HttpKernel\Exception\HttpException;
use Illuminate\Contracts\Http\Kernel as HttpKernelContract;
use Illuminate\Foundation\Bootstrap\LoadEnvironmentVariables;
Expand Down Expand Up @@ -594,7 +595,7 @@ public function register($provider, $force = false)
$provider = $this->resolveProvider($provider);
}

if (method_exists($provider, 'register')) {
if ($provider instanceof RegistrableProvider || method_exists($provider, 'register')) {
$provider->register();
}

Expand Down
Expand Up @@ -2,6 +2,7 @@

namespace Illuminate\Foundation\Providers;

use Illuminate\Contracts\Support\RegistrableProvider;
use Illuminate\Support\ServiceProvider;
use Illuminate\Queue\Console\TableCommand;
use Illuminate\Auth\Console\AuthMakeCommand;
Expand Down Expand Up @@ -73,7 +74,7 @@
use Illuminate\Database\Console\Migrations\RefreshCommand as MigrateRefreshCommand;
use Illuminate\Database\Console\Migrations\RollbackCommand as MigrateRollbackCommand;

class ArtisanServiceProvider extends ServiceProvider implements DeferrableProvider
class ArtisanServiceProvider extends ServiceProvider implements DeferrableProvider, RegistrableProvider
{
/**
* The commands to be registered.
Expand Down
Expand Up @@ -2,11 +2,12 @@

namespace Illuminate\Foundation\Providers;

use Illuminate\Contracts\Support\RegistrableProvider;
use Illuminate\Support\Composer;
use Illuminate\Support\ServiceProvider;
use Illuminate\Contracts\Support\DeferrableProvider;

class ComposerServiceProvider extends ServiceProvider implements DeferrableProvider
class ComposerServiceProvider extends ServiceProvider implements DeferrableProvider, RegistrableProvider
{
/**
* Register the service provider.
Expand Down
10 changes: 0 additions & 10 deletions src/Illuminate/Foundation/Providers/FormRequestServiceProvider.php
Expand Up @@ -9,16 +9,6 @@

class FormRequestServiceProvider extends ServiceProvider
{
/**
* Register the service provider.
*
* @return void
*/
public function register()
{
//
}

/**
* Bootstrap the application services.
*
Expand Down
Expand Up @@ -2,11 +2,12 @@

namespace Illuminate\Foundation\Providers;

use Illuminate\Contracts\Support\RegistrableProvider;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\URL;
use Illuminate\Support\AggregateServiceProvider;

class FoundationServiceProvider extends AggregateServiceProvider
class FoundationServiceProvider extends AggregateServiceProvider implements RegistrableProvider
{
/**
* The provider class names.
Expand Down
3 changes: 2 additions & 1 deletion src/Illuminate/Hashing/HashServiceProvider.php
Expand Up @@ -2,10 +2,11 @@

namespace Illuminate\Hashing;

use Illuminate\Contracts\Support\RegistrableProvider;
use Illuminate\Support\ServiceProvider;
use Illuminate\Contracts\Support\DeferrableProvider;

class HashServiceProvider extends ServiceProvider implements DeferrableProvider
class HashServiceProvider extends ServiceProvider implements DeferrableProvider, RegistrableProvider
{
/**
* Register the service provider.
Expand Down
3 changes: 2 additions & 1 deletion src/Illuminate/Log/LogServiceProvider.php
Expand Up @@ -2,9 +2,10 @@

namespace Illuminate\Log;

use Illuminate\Contracts\Support\RegistrableProvider;
use Illuminate\Support\ServiceProvider;

class LogServiceProvider extends ServiceProvider
class LogServiceProvider extends ServiceProvider implements RegistrableProvider
{
/**
* Register the service provider.
Expand Down
3 changes: 2 additions & 1 deletion src/Illuminate/Mail/MailServiceProvider.php
Expand Up @@ -2,14 +2,15 @@

namespace Illuminate\Mail;

use Illuminate\Contracts\Support\RegistrableProvider;
use Swift_Mailer;
use Illuminate\Support\Arr;
use Illuminate\Support\Str;
use Swift_DependencyContainer;
use Illuminate\Support\ServiceProvider;
use Illuminate\Contracts\Support\DeferrableProvider;

class MailServiceProvider extends ServiceProvider implements DeferrableProvider
class MailServiceProvider extends ServiceProvider implements DeferrableProvider, RegistrableProvider
{
/**
* Register the service provider.
Expand Down
3 changes: 2 additions & 1 deletion src/Illuminate/Notifications/NotificationServiceProvider.php
Expand Up @@ -2,11 +2,12 @@

namespace Illuminate\Notifications;

use Illuminate\Contracts\Support\RegistrableProvider;
use Illuminate\Support\ServiceProvider;
use Illuminate\Contracts\Notifications\Factory as FactoryContract;
use Illuminate\Contracts\Notifications\Dispatcher as DispatcherContract;

class NotificationServiceProvider extends ServiceProvider
class NotificationServiceProvider extends ServiceProvider implements RegistrableProvider
{
/**
* Boot the application services.
Expand Down
3 changes: 2 additions & 1 deletion src/Illuminate/Pagination/PaginationServiceProvider.php
Expand Up @@ -2,9 +2,10 @@

namespace Illuminate\Pagination;

use Illuminate\Contracts\Support\RegistrableProvider;
use Illuminate\Support\ServiceProvider;

class PaginationServiceProvider extends ServiceProvider
class PaginationServiceProvider extends ServiceProvider implements RegistrableProvider
{
/**
* Bootstrap any application services.
Expand Down
3 changes: 2 additions & 1 deletion src/Illuminate/Pipeline/PipelineServiceProvider.php
Expand Up @@ -2,11 +2,12 @@

namespace Illuminate\Pipeline;

use Illuminate\Contracts\Support\RegistrableProvider;
use Illuminate\Support\ServiceProvider;
use Illuminate\Contracts\Support\DeferrableProvider;
use Illuminate\Contracts\Pipeline\Hub as PipelineHubContract;

class PipelineServiceProvider extends ServiceProvider implements DeferrableProvider
class PipelineServiceProvider extends ServiceProvider implements DeferrableProvider, RegistrableProvider
{
/**
* Register the service provider.
Expand Down
3 changes: 2 additions & 1 deletion src/Illuminate/Queue/QueueServiceProvider.php
Expand Up @@ -2,6 +2,7 @@

namespace Illuminate\Queue;

use Illuminate\Contracts\Support\RegistrableProvider;
use Illuminate\Support\Str;
use Opis\Closure\SerializableClosure;
use Illuminate\Support\ServiceProvider;
Expand All @@ -16,7 +17,7 @@
use Illuminate\Queue\Connectors\BeanstalkdConnector;
use Illuminate\Queue\Failed\DatabaseFailedJobProvider;

class QueueServiceProvider extends ServiceProvider implements DeferrableProvider
class QueueServiceProvider extends ServiceProvider implements DeferrableProvider, RegistrableProvider
{
/**
* Register the service provider.
Expand Down
4 changes: 3 additions & 1 deletion src/Illuminate/Redis/RedisServiceProvider.php
Expand Up @@ -2,11 +2,13 @@

namespace Illuminate\Redis;

use Illuminate\Contracts\Support\RegistrableProvider;
use Illuminate\Support\Arr;
use Illuminate\Support\ServiceProvider;
use Illuminate\Contracts\Support\DeferrableProvider;
use Symfony\Component\HttpFoundation\Exception\RequestExceptionInterface;

class RedisServiceProvider extends ServiceProvider implements DeferrableProvider
class RedisServiceProvider extends ServiceProvider implements DeferrableProvider, RegistrableProvider
{
/**
* Register the service provider.
Expand Down
3 changes: 2 additions & 1 deletion src/Illuminate/Routing/RoutingServiceProvider.php
Expand Up @@ -2,6 +2,7 @@

namespace Illuminate\Routing;

use Illuminate\Contracts\Support\RegistrableProvider;
use Illuminate\Support\ServiceProvider;
use Psr\Http\Message\ResponseInterface;
use Zend\Diactoros\Response as PsrResponse;
Expand All @@ -11,7 +12,7 @@
use Illuminate\Contracts\Routing\ResponseFactory as ResponseFactoryContract;
use Illuminate\Routing\Contracts\ControllerDispatcher as ControllerDispatcherContract;

class RoutingServiceProvider extends ServiceProvider
class RoutingServiceProvider extends ServiceProvider implements RegistrableProvider
{
/**
* Register the service provider.
Expand Down
3 changes: 2 additions & 1 deletion src/Illuminate/Session/SessionServiceProvider.php
Expand Up @@ -2,10 +2,11 @@

namespace Illuminate\Session;

use Illuminate\Contracts\Support\RegistrableProvider;
use Illuminate\Support\ServiceProvider;
use Illuminate\Session\Middleware\StartSession;

class SessionServiceProvider extends ServiceProvider
class SessionServiceProvider extends ServiceProvider implements RegistrableProvider
{
/**
* Register the service provider.
Expand Down
4 changes: 3 additions & 1 deletion src/Illuminate/Support/AggregateServiceProvider.php
Expand Up @@ -2,7 +2,9 @@

namespace Illuminate\Support;

class AggregateServiceProvider extends ServiceProvider
use Illuminate\Contracts\Support\RegistrableProvider;

class AggregateServiceProvider extends ServiceProvider implements RegistrableProvider
{
/**
* The provider class names.
Expand Down
3 changes: 2 additions & 1 deletion src/Illuminate/Translation/TranslationServiceProvider.php
Expand Up @@ -2,10 +2,11 @@

namespace Illuminate\Translation;

use Illuminate\Contracts\Support\RegistrableProvider;
use Illuminate\Support\ServiceProvider;
use Illuminate\Contracts\Support\DeferrableProvider;

class TranslationServiceProvider extends ServiceProvider implements DeferrableProvider
class TranslationServiceProvider extends ServiceProvider implements DeferrableProvider, RegistrableProvider
{
/**
* Register the service provider.
Expand Down

0 comments on commit c243d09

Please sign in to comment.