Dependency injection: Because var_dump should be useless

Do you remember the times when using var_dump() to inspect a variable did help? Not anymore! Thanks to frameworks and Dependency Injection those horrible times are over!

Nikita Popov pointed out that in this case, it's not Dependency Injection but rather the Service Locator design pattern. Paul M. Jones wrote a blog post that explains the difference:

When the container is used inside a non-Factory object, you are using the container as a Service Locator.

/var/www/vendor/dingo/api/src/Http/Response/Factory.php:156:
class Dingo\Api\Transformer\Binding#536 (5) {
  protected $container =>
  class Illuminate\Foundation\Application#3 (28) {
    protected $basePath =>
    string(8) "/var/www"
    protected $hasBeenBootstrapped =>
    bool(true)
    protected $booted =>
    bool(true)
    protected $bootingCallbacks =>
    array(4) {
      [0] =>
      class Closure#112 (1) {
        ...
      }
      [1] =>
      class Closure#204 (2) {
        ...
      }
      [2] =>
      class Closure#209 (2) {
        ...
      }
      [3] =>
      class Closure#226 (2) {
        ...
      }
    }
    protected $bootedCallbacks =>
    array(1) {
      [0] =>
      class Closure#240 (1) {
        ...
      }
    }
    protected $terminatingCallbacks =>
    array(0) {
    }
    protected $serviceProviders =>
    array(33) {
      [0] =>
      class Illuminate\Events\EventServiceProvider#2 (2) {
        ...
      }
      [1] =>
      class Illuminate\Routing\RoutingServiceProvider#7 (2) {
        ...
      }
      [2] =>
      class Illuminate\Auth\AuthServiceProvider#34 (2) {
        ...
      }
      [3] =>
      class Illuminate\Cookie\CookieServiceProvider#53 (2) {
        ...
      }
      [4] =>
      class Illuminate\Database\DatabaseServiceProvider#55 (2) {
        ...
      }
      [5] =>
      class Illuminate\Encryption\EncryptionServiceProvider#62 (2) {
        ...
      }
      [6] =>
      class Illuminate\Filesystem\FilesystemServiceProvider#64 (2) {
        ...
      }
      [7] =>
      class Illuminate\Foundation\Providers\FoundationServiceProvider#69 (2) {
        ...
      }
      [8] =>
      class Illuminate\Pagination\PaginationServiceProvider#70 (2) {
        ...
      }
      [9] =>
      class Illuminate\Session\SessionServiceProvider#74 (2) {
        ...
      }
      [10] =>
      class Illuminate\View\ViewServiceProvider#78 (2) {
        ...
      }
      [11] =>
      class Dingo\Api\Provider\RoutingServiceProvider#83 (3) {
        ...
      }
      [12] =>
      class Dingo\Api\Provider\HttpServiceProvider#87 (3) {
        ...
      }
      [13] =>
      class Dingo\Api\Provider\LaravelServiceProvider#82 (3) {
        ...
      }
      [14] =>
      class Immogic\Providers\CrateServiceProvider#107 (2) {
        ...
      }
      [15] =>
      class Chumper\Zipper\ZipperServiceProvider#109 (2) {
        ...
      }
      [16] =>
      class Torann\GeoIP\GeoIPServiceProvider#113 (2) {
        ...
      }
      [17] =>
      class Toin0u\Geocoder\GeocoderServiceProvider#119 (2) {
        ...
      }
      [18] =>
      class Jaybizzle\LaravelCrawlerDetect\LaravelCrawlerDetectServiceProvider#124 (2) {
        ...
      }
      [19] =>
      class Spatie\Activitylog\ActivitylogServiceProvider#127 (2) {
        ...
      }
      [20] =>
      class Immogic\Providers\ApiCacheServiceProvider#131 (2) {
        ...
      }
      [21] =>
      class Immogic\Providers\AppServiceProvider#132 (2) {
        ...
      }
      [22] =>
      class Immogic\Providers\AuthServiceProvider#133 (3) {
        ...
      }
      [23] =>
      class Immogic\Providers\BroadcastServiceProvider#134 (2) {
        ...
      }
      [24] =>
      class Immogic\Providers\EventServiceProvider#135 (4) {
        ...
      }
      [25] =>
      class Immogic\Providers\RouteServiceProvider#136 (3) {
        ...
      }
      [26] =>
      class Immogic\Providers\LocalDatabaseFilesystemAdapterServiceProvider#137 (2) {
        ...
      }
      [27] =>
      class Immogic\Providers\FtpUserServiceProvider#138 (2) {
        ...
      }
      [28] =>
      class Immogic\Providers\GeonamesServiceProvider#139 (2) {
        ...
      }
      [29] =>
      class Illuminate\Validation\ValidationServiceProvider#199 (2) {
        ...
      }
      [30] =>
      class Illuminate\Translation\TranslationServiceProvider#206 (2) {
        ...
      }
      [31] =>
      class Illuminate\Broadcasting\BroadcastServiceProvider#222 (2) {
        ...
      }
      [32] =>
      class Illuminate\Hashing\HashServiceProvider#514 (2) {
        ...
      }
    }
    protected $loadedProviders =>
    array(33) {
      'Illuminate\Events\EventServiceProvider' =>
      bool(true)
      'Illuminate\Routing\RoutingServiceProvider' =>
      bool(true)
      'Illuminate\Auth\AuthServiceProvider' =>
      bool(true)
      'Illuminate\Cookie\CookieServiceProvider' =>
      bool(true)
      'Illuminate\Database\DatabaseServiceProvider' =>
      bool(true)
      'Illuminate\Encryption\EncryptionServiceProvider' =>
      bool(true)
      'Illuminate\Filesystem\FilesystemServiceProvider' =>
      bool(true)
      'Illuminate\Foundation\Providers\FoundationServiceProvider' =>
      bool(true)
      'Illuminate\Pagination\PaginationServiceProvider' =>
      bool(true)
      'Illuminate\Session\SessionServiceProvider' =>
      bool(true)
      'Illuminate\View\ViewServiceProvider' =>
      bool(true)
      'Dingo\Api\Provider\RoutingServiceProvider' =>
      bool(true)
      'Dingo\Api\Provider\HttpServiceProvider' =>
      bool(true)
      'Dingo\Api\Provider\LaravelServiceProvider' =>
      bool(true)
      'Immogic\Providers\CrateServiceProvider' =>
      bool(true)
      'Chumper\Zipper\ZipperServiceProvider' =>
      bool(true)
      'Torann\GeoIP\GeoIPServiceProvider' =>
      bool(true)
      'Toin0u\Geocoder\GeocoderServiceProvider' =>
      bool(true)
      'Jaybizzle\LaravelCrawlerDetect\LaravelCrawlerDetectServiceProvider' =>
      bool(true)
      'Spatie\Activitylog\ActivitylogServiceProvider' =>
      bool(true)
      'Immogic\Providers\ApiCacheServiceProvider' =>
      bool(true)
      'Immogic\Providers\AppServiceProvider' =>
      bool(true)
      'Immogic\Providers\AuthServiceProvider' =>
      bool(true)
      'Immogic\Providers\BroadcastServiceProvider' =>
      bool(true)
      'Immogic\Providers\EventServiceProvider' =>
      bool(true)
      'Immogic\Providers\RouteServiceProvider' =>
      bool(true)
      'Immogic\Providers\LocalDatabaseFilesystemAdapterServiceProvider' =>
      bool(true)
      'Immogic\Providers\FtpUserServiceProvider' =>
      bool(true)
      'Immogic\Providers\GeonamesServiceProvider' =>
      bool(true)
      'Illuminate\Validation\ValidationServiceProvider' =>
      bool(true)
      'Illuminate\Translation\TranslationServiceProvider' =>
      bool(true)
      'Illuminate\Broadcasting\BroadcastServiceProvider' =>
      bool(true)
      'Illuminate\Hashing\HashServiceProvider' =>
      bool(true)
    }
    protected $deferredServices =>
    array(83) {
      'Illuminate\Broadcasting\BroadcastManager' =>
      string(48) "Illuminate\Broadcasting\BroadcastServiceProvider"
      'Illuminate\Contracts\Broadcasting\Broadcaster' =>
      string(48) "Illuminate\Broadcasting\BroadcastServiceProvider"
      'Illuminate\Bus\Dispatcher' =>
      string(33) "Illuminate\Bus\BusServiceProvider"
      'Illuminate\Contracts\Bus\Dispatcher' =>
      string(33) "Illuminate\Bus\BusServiceProvider"
      'Illuminate\Contracts\Bus\QueueingDispatcher' =>
      string(33) "Illuminate\Bus\BusServiceProvider"
      'cache' =>
      string(37) "Illuminate\Cache\CacheServiceProvider"
      'cache.store' =>
      string(37) "Illuminate\Cache\CacheServiceProvider"
      'memcached.connector' =>
      string(37) "Illuminate\Cache\CacheServiceProvider"
      'command.cache.clear' =>
      string(37) "Illuminate\Cache\CacheServiceProvider"
      'command.clear-compiled' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'command.auth.resets.clear' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'command.config.cache' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'command.config.clear' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'command.down' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'command.environment' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'command.key.generate' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'command.optimize' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'command.route.cache' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'command.route.clear' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'command.route.list' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'command.storage.link' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'command.tinker' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'command.up' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'command.view.clear' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'command.app.name' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'command.auth.make' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'command.cache.table' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'command.console.make' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'command.controller.make' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'command.event.generate' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'command.event.make' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'command.job.make' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'command.listener.make' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'command.mail.make' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'command.middleware.make' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'command.model.make' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'command.notification.make' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'command.notification.table' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'command.policy.make' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'command.provider.make' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'command.queue.failed-table' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'command.queue.table' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'command.request.make' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'command.seeder.make' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'command.session.table' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'command.serve' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'command.test.make' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'command.vendor.publish' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'Illuminate\Console\Scheduling\ScheduleRunCommand' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'migrator' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'migration.repository' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'command.migrate' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'command.migrate.rollback' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'command.migrate.reset' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'command.migrate.refresh' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'command.migrate.install' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'command.migrate.status' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'migration.creator' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'command.migrate.make' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'seeder' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'command.seed' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'composer' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'command.queue.failed' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'command.queue.retry' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'command.queue.forget' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'command.queue.flush' =>
      string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
      'mailer' =>
      string(35) "Illuminate\Mail\MailServiceProvider"
      'swift.mailer' =>
      string(35) "Illuminate\Mail\MailServiceProvider"
      'swift.transport' =>
      string(35) "Illuminate\Mail\MailServiceProvider"
      'Illuminate\Contracts\Pipeline\Hub' =>
      string(43) "Illuminate\Pipeline\PipelineServiceProvider"
      'queue' =>
      string(37) "Illuminate\Queue\QueueServiceProvider"
      'queue.worker' =>
      string(37) "Illuminate\Queue\QueueServiceProvider"
      'queue.listener' =>
      string(37) "Illuminate\Queue\QueueServiceProvider"
      'queue.failer' =>
      string(37) "Illuminate\Queue\QueueServiceProvider"
      'command.queue.work' =>
      string(37) "Illuminate\Queue\QueueServiceProvider"
      'command.queue.listen' =>
      string(37) "Illuminate\Queue\QueueServiceProvider"
      'command.queue.restart' =>
      string(37) "Illuminate\Queue\QueueServiceProvider"
      'queue.connection' =>
      string(37) "Illuminate\Queue\QueueServiceProvider"
      'redis' =>
      string(37) "Illuminate\Redis\RedisServiceProvider"
      'auth.password' =>
      string(54) "Illuminate\Auth\Passwords\PasswordResetServiceProvider"
      'auth.password.broker' =>
      string(54) "Illuminate\Auth\Passwords\PasswordResetServiceProvider"
      'translation.loader' =>
      string(49) "Illuminate\Translation\TranslationServiceProvider"
      'validation.presence' =>
      string(47) "Illuminate\Validation\ValidationServiceProvider"
    }
    protected $monologConfigurator =>
    class Closure#20 (1) {
      public $parameter =>
      array(1) {
        ...
      }
    }
    protected $databasePath =>
    NULL
    protected $storagePath =>
    NULL
    protected $environmentPath =>
    NULL
    protected $environmentFile =>
    string(4) ".env"
    protected $namespace =>
    NULL
    protected $resolved =>
    array(51) {
      'events' =>
      bool(true)
      'router' =>
      bool(true)
      'Immogic\Http\Kernel' =>
      bool(true)
      'Illuminate\Contracts\Http\Kernel' =>
      bool(true)
      'Illuminate\Foundation\Bootstrap\DetectEnvironment' =>
      bool(true)
      'Illuminate\Foundation\Bootstrap\LoadConfiguration' =>
      bool(true)
      'Illuminate\Foundation\Bootstrap\ConfigureLogging' =>
      bool(true)
      'env' =>
      bool(true)
      'Illuminate\Foundation\Bootstrap\HandleExceptions' =>
      bool(true)
      'Illuminate\Foundation\Bootstrap\RegisterFacades' =>
      bool(true)
      'Illuminate\Foundation\Bootstrap\RegisterProviders' =>
      bool(true)
      'Illuminate\Foundation\Bootstrap\BootProviders' =>
      bool(true)
      'db.factory' =>
      bool(true)
      'db' =>
      bool(true)
      'view.engine.resolver' =>
      bool(true)
      'files' =>
      bool(true)
      'view.finder' =>
      bool(true)
      'view' =>
      bool(true)
      'Dingo\Api\Http\Response\Format\Json' =>
      bool(true)
      'League\Fractal\Manager' =>
      bool(true)
      'Dingo\Api\Transformer\Adapter\Fractal' =>
      bool(true)
      'api.transformer' =>
      bool(true)
      'Dingo\Api\Http\Parser\Accept' =>
      bool(true)
      'Immogic\Exceptions\Handler' =>
      bool(true)
      'Illuminate\Contracts\Debug\ExceptionHandler' =>
      bool(true)
      'api.exception' =>
      bool(true)
      'api.router.adapter' =>
      bool(true)
      'api.router' =>
      bool(true)
      'api.http.validator' =>
      bool(true)
      'Dingo\Api\Http\Middleware\Request' =>
      bool(true)
      'translation.loader' =>
      bool(true)
      'translator' =>
      bool(true)
      'validation.presence' =>
      bool(true)
      'validator' =>
      bool(true)
      'Illuminate\Contracts\Auth\Access\Gate' =>
      bool(true)
      'Illuminate\Broadcasting\BroadcastManager' =>
      bool(true)
      'url' =>
      bool(true)
      'Dingo\Api\Routing\ResourceRegistrar' =>
      bool(true)
      'filesystem' =>
      bool(true)
      'Dingo\Api\Http\Validation\Domain' =>
      bool(true)
      'Dingo\Api\Http\Validation\Prefix' =>
      bool(true)
      'Dingo\Api\Http\Validation\Accept' =>
      bool(true)
      'Dingo\Api\Http\Request' =>
      bool(true)
      'Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode' =>
      bool(true)
      'Immogic\Http\Middleware\LogAfterRequest' =>
      bool(true)
      'auth' =>
      bool(true)
      'hash' =>
      bool(true)
      'Immogic\Http\Controllers\Api\V1\BrokerController' =>
      bool(true)
      'Dingo\Api\Http\Middleware\PrepareController' =>
      bool(true)
      'Immogic\Http\Middleware\Authenticate' =>
      bool(true)
      'api.http.response' =>
      bool(true)
    }
    protected $bindings =>
    array(80) {
      'events' =>
      array(2) {
        ...
      }
      'router' =>
      array(2) {
        ...
      }
      'url' =>
      array(2) {
        ...
      }
      'redirect' =>
      array(2) {
        ...
      }
      'Psr\Http\Message\ServerRequestInterface' =>
      array(2) {
        ...
      }
      'Psr\Http\Message\ResponseInterface' =>
      array(2) {
        ...
      }
      'Illuminate\Contracts\Routing\ResponseFactory' =>
      array(2) {
        ...
      }
      'Illuminate\Contracts\Http\Kernel' =>
      array(2) {
        ...
      }
      'Illuminate\Contracts\Console\Kernel' =>
      array(2) {
        ...
      }
      'Illuminate\Contracts\Debug\ExceptionHandler' =>
      array(2) {
        ...
      }
      'env' =>
      array(2) {
        ...
      }
      'auth' =>
      array(2) {
        ...
      }
      'auth.driver' =>
      array(2) {
        ...
      }
      'Illuminate\Contracts\Auth\Authenticatable' =>
      array(2) {
        ...
      }
      'Illuminate\Contracts\Auth\Access\Gate' =>
      array(2) {
        ...
      }
      'cookie' =>
      array(2) {
        ...
      }
      'Faker\Generator' =>
      array(2) {
        ...
      }
      'Illuminate\Database\Eloquent\Factory' =>
      array(2) {
        ...
      }
      'Illuminate\Contracts\Queue\EntityResolver' =>
      array(2) {
        ...
      }
      'db.factory' =>
      array(2) {
        ...
      }
      'db' =>
      array(2) {
        ...
      }
      'db.connection' =>
      array(2) {
        ...
      }
      'encrypter' =>
      array(2) {
        ...
      }
      'files' =>
      array(2) {
        ...
      }
      'filesystem' =>
      array(2) {
        ...
      }
      'filesystem.disk' =>
      array(2) {
        ...
      }
      'filesystem.cloud' =>
      array(2) {
        ...
      }
      'session' =>
      array(2) {
        ...
      }
      'session.store' =>
      array(2) {
        ...
      }
      'Illuminate\Session\Middleware\StartSession' =>
      array(2) {
        ...
      }
      'view.engine.resolver' =>
      array(2) {
        ...
      }
      'view.finder' =>
      array(2) {
        ...
      }
      'view' =>
      array(2) {
        ...
      }
      'api.router' =>
      array(2) {
        ...
      }
      'Dingo\Api\Routing\ResourceRegistrar' =>
      array(2) {
        ...
      }
      'api.url' =>
      array(2) {
        ...
      }
      'api.limiting' =>
      array(2) {
        ...
      }
      'api.http.validator' =>
      array(2) {
        ...
      }
      'Dingo\Api\Http\Validation\Domain' =>
      array(2) {
        ...
      }
      'Dingo\Api\Http\Validation\Prefix' =>
      array(2) {
        ...
      }
      'Dingo\Api\Http\Validation\Accept' =>
      array(2) {
        ...
      }
      'Dingo\Api\Http\Parser\Accept' =>
      array(2) {
        ...
      }
      'api.http.response' =>
      array(2) {
        ...
      }
      'Dingo\Api\Http\Middleware\Request' =>
      array(2) {
        ...
      }
      'Dingo\Api\Http\Middleware\Auth' =>
      array(2) {
        ...
      }
      'Dingo\Api\Http\Middleware\RateLimit' =>
      array(2) {
        ...
      }
      'Dingo\Api\Http\Middleware\PrepareController' =>
      array(2) {
        ...
      }
      'api.exception' =>
      array(2) {
        ...
      }
      'api.dispatcher' =>
      array(2) {
        ...
      }
      'api.auth' =>
      array(2) {
        ...
      }
      'api.transformer' =>
      array(2) {
        ...
      }
      'Dingo\Api\Console\Command\Docs' =>
      array(2) {
        ...
      }
      'api.router.adapter' =>
      array(2) {
        ...
      }
      'zipper' =>
      array(2) {
        ...
      }
      'geoip' =>
      array(2) {
        ...
      }
      'command.geoip.update' =>
      array(2) {
        ...
      }
      'geocoder.adapter' =>
      array(2) {
        ...
      }
      'geocoder.chain' =>
      array(2) {
        ...
      }
      'geocoder' =>
      array(2) {
        ...
      }
      'LaravelCrawlerDetect' =>
      array(2) {
        ...
      }
      'laravel-activitylog' =>
      array(2) {
        ...
      }
      'command.activitylog:clean' =>
      array(2) {
        ...
      }
      'geonames.repository' =>
      array(2) {
        ...
      }
      'Arberd\Geonames\RepositoryInterface' =>
      array(2) {
        ...
      }
      'command.geonames.install' =>
      array(2) {
        ...
      }
      'command.geonames.import' =>
      array(2) {
        ...
      }
      'command.geonames.convert' =>
      array(2) {
        ...
      }
      'command.geonames.update' =>
      array(2) {
        ...
      }
      'command.geonames.seed' =>
      array(2) {
        ...
      }
      'command.geonames.truncate' =>
      array(2) {
        ...
      }
      'blade.compiler' =>
      array(2) {
        ...
      }
      'validation.presence' =>
      array(2) {
        ...
      }
      'validator' =>
      array(2) {
        ...
      }
      'translation.loader' =>
      array(2) {
        ...
      }
      'translator' =>
      array(2) {
        ...
      }
      'Illuminate\Broadcasting\BroadcastManager' =>
      array(2) {
        ...
      }
      'Illuminate\Contracts\Broadcasting\Broadcaster' =>
      array(2) {
        ...
      }
      'illuminate.route.dispatcher' =>
      array(2) {
        ...
      }
      'auth.loaded' =>
      array(2) {
        ...
      }
      'hash' =>
      array(2) {
        ...
      }
    }
    protected $instances =>
    array(48) {
      'app' =>
              ...
 
      'Illuminate\Container\Container' =>
              ...
 
      'events' =>
      class Illuminate\Events\Dispatcher#5 (6) {
        ...
      }
      'path' =>
      string(12) "/var/www/app"
      'path.base' =>
      string(8) "/var/www"
      'path.lang' =>
      string(23) "/var/www/resources/lang"
      'path.config' =>
      string(15) "/var/www/config"
      'path.public' =>
      string(15) "/var/www/public"
      'path.storage' =>
      string(16) "/var/www/storage"
      'path.database' =>
      string(17) "/var/www/database"
      'path.resources' =>
      string(18) "/var/www/resources"
      'path.bootstrap' =>
      string(18) "/var/www/bootstrap"
      'Illuminate\Contracts\Http\Kernel' =>
      class Immogic\Http\Kernel#26 (7) {
        ...
      }
      'request' =>
      class Dingo\Api\Http\Request#437 (26) {
        ...
      }
      'config' =>
      class Illuminate\Config\Repository#24 (1) {
        ...
      }
      'log' =>
      class Illuminate\Log\Writer#42 (3) {
        ...
      }
      'db.factory' =>
      class Illuminate\Database\Connectors\ConnectionFactory#156 (1) {
        ...
      }
      'db' =>
      class Illuminate\Database\DatabaseManager#39 (4) {
        ...
      }
      'view.engine.resolver' =>
      class Illuminate\View\Engines\EngineResolver#161 (2) {
        ...
      }
      'files' =>
      class Illuminate\Filesystem\Filesystem#165 (0) {
        ...
      }
      'view' =>
      class Illuminate\View\Factory#166 (15) {
        ...
      }
      'api.transformer' =>
      class Dingo\Api\Transformer\Factory#167 (3) {
        ...
      }
      'Dingo\Api\Http\Parser\Accept' =>
      class Dingo\Api\Http\Parser\Accept#174 (4) {
        ...
      }
      'api.exception' =>
      class Dingo\Api\Exception\Handler#171 (5) {
        ...
      }
      'api.router.adapter' =>
      class Dingo\Api\Routing\Adapter\Laravel#169 (5) {
        ...
      }
      'api.router' =>
      class Dingo\Api\Routing\Router#176 (10) {
        ...
      }
      'api.http.validator' =>
      class Dingo\Api\Http\RequestValidator#170 (2) {
        ...
      }
      'Dingo\Api\Http\Middleware\Request' =>
      class Dingo\Api\Http\Middleware\Request#172 (6) {
        ...
      }
      'translation.loader' =>
      class Illuminate\Translation\FileLoader#210 (3) {
        ...
      }
      'translator' =>
      class Illuminate\Translation\Translator#211 (6) {
        ...
      }
      'validation.presence' =>
      class Illuminate\Validation\DatabasePresenceVerifier#212 (2) {
        ...
      }
      'validator' =>
      class Illuminate\Validation\Factory#205 (8) {
        ...
      }
      'Illuminate\Contracts\Auth\Access\Gate' =>
      class Illuminate\Auth\Access\Gate#221 (6) {
        ...
      }
      'Illuminate\Broadcasting\BroadcastManager' =>
      class Illuminate\Broadcasting\BroadcastManager#227 (3) {
        ...
      }
      'routes' =>
      class Illuminate\Routing\RouteCollection#242 (4) {
        ...
      }
      'Dingo\Api\Routing\ResourceRegistrar' =>
      class Dingo\Api\Routing\ResourceRegistrar#308 (3) {
        ...
      }
      'filesystem' =>
      class Illuminate\Filesystem\FilesystemManager#418 (3) {
        ...
      }
      'Dingo\Api\Http\Validation\Domain' =>
      class Dingo\Api\Http\Validation\Domain#426 (1) {
        ...
      }
      'Dingo\Api\Http\Validation\Prefix' =>
      class Dingo\Api\Http\Validation\Prefix#427 (1) {
        ...
      }
      'Dingo\Api\Http\Validation\Accept' =>
      class Dingo\Api\Http\Validation\Accept#428 (2) {
        ...
      }
      'Illuminate\Contracts\Debug\ExceptionHandler' =>
      class Dingo\Api\Exception\Handler#171 (5) {
        ...
      }
      'Dingo\Api\Http\Request' =>
      class Dingo\Api\Http\Request#437 (26) {
        ...
      }
      'Illuminate\Routing\Route' =>
      class Illuminate\Routing\Route#327 (11) {
        ...
      }
      'auth' =>
      class Illuminate\Auth\AuthManager#510 (5) {
        ...
      }
      'hash' =>
      class Illuminate\Hashing\BcryptHasher#516 (1) {
        ...
      }
      'Dingo\Api\Http\Middleware\PrepareController' =>
      class Dingo\Api\Http\Middleware\PrepareController#522 (1) {
        ...
      }
      'Immogic\Http\Controllers\Api\V1\BrokerController' =>
      class Immogic\Http\Controllers\Api\V1\BrokerController#529 (7) {
        ...
      }
      'api.http.response' =>
      class Dingo\Api\Http\Response\Factory#534 (1) {
        ...
      }
    }
    protected $aliases =>
    array(75) {
      'Illuminate\Foundation\Application' =>
      string(3) "app"
      'Illuminate\Contracts\Container\Container' =>
      string(3) "app"
      'Illuminate\Contracts\Foundation\Application' =>
      string(3) "app"
      'Illuminate\Auth\AuthManager' =>
      string(4) "auth"
      'Illuminate\Contracts\Auth\Factory' =>
      string(4) "auth"
      'Illuminate\Contracts\Auth\Guard' =>
      string(11) "auth.driver"
      'Illuminate\View\Compilers\BladeCompiler' =>
      string(14) "blade.compiler"
      'Illuminate\Cache\CacheManager' =>
      string(5) "cache"
      'Illuminate\Contracts\Cache\Factory' =>
      string(5) "cache"
      'Illuminate\Cache\Repository' =>
      string(11) "cache.store"
      'Illuminate\Contracts\Cache\Repository' =>
      string(11) "cache.store"
      'Illuminate\Config\Repository' =>
      string(6) "config"
      'Illuminate\Contracts\Config\Repository' =>
      string(6) "config"
      'Illuminate\Cookie\CookieJar' =>
      string(6) "cookie"
      'Illuminate\Contracts\Cookie\Factory' =>
      string(6) "cookie"
      'Illuminate\Contracts\Cookie\QueueingFactory' =>
      string(6) "cookie"
      'Illuminate\Encryption\Encrypter' =>
      string(9) "encrypter"
      'Illuminate\Contracts\Encryption\Encrypter' =>
      string(9) "encrypter"
      'Illuminate\Database\DatabaseManager' =>
      string(2) "db"
      'Illuminate\Database\Connection' =>
      string(13) "db.connection"
      'Illuminate\Database\ConnectionInterface' =>
      string(13) "db.connection"
      'Illuminate\Events\Dispatcher' =>
      string(6) "events"
      'Illuminate\Contracts\Events\Dispatcher' =>
      string(6) "events"
      'Illuminate\Filesystem\Filesystem' =>
      string(5) "files"
      'Illuminate\Filesystem\FilesystemManager' =>
      string(10) "filesystem"
      'Illuminate\Contracts\Filesystem\Factory' =>
      string(10) "filesystem"
      'Illuminate\Contracts\Filesystem\Filesystem' =>
      string(15) "filesystem.disk"
      'Illuminate\Contracts\Filesystem\Cloud' =>
      string(16) "filesystem.cloud"
      'Illuminate\Contracts\Hashing\Hasher' =>
      string(4) "hash"
      'Illuminate\Translation\Translator' =>
      string(10) "translator"
      'Symfony\Component\Translation\TranslatorInterface' =>
      string(10) "translator"
      'Illuminate\Log\Writer' =>
      string(3) "log"
      'Illuminate\Contracts\Logging\Log' =>
      string(3) "log"
      'Psr\Log\LoggerInterface' =>
      string(3) "log"
      'Illuminate\Mail\Mailer' =>
      string(6) "mailer"
      string(7) "request"
      'Symfony\Component\HttpFoundation\Request' =>
      string(7) "request"
      'Illuminate\Routing\Router' =>
      string(6) "router"
      'Illuminate\Contracts\Routing\Registrar' =>
      string(6) "router"
      'Illuminate\Session\SessionManager' =>
      string(7) "session"
      'Illuminate\Session\Store' =>
      string(13) "session.store"
      'Symfony\Component\HttpFoundation\Session\SessionInterface' =>
      string(13) "session.store"
      'Illuminate\Routing\UrlGenerator' =>
      string(3) "url"
      'Illuminate\Contracts\Routing\UrlGenerator' =>
      string(3) "url"
      'Illuminate\Validation\Factory' =>
      string(9) "validator"
      'Illuminate\Contracts\Validation\Factory' =>
      string(9) "validator"
      'Illuminate\View\Factory' =>
      string(4) "view"
      'Illuminate\Contracts\View\Factory' =>
      string(4) "view"
      'Dingo\Api\Contract\Http\Request' =>
      string(22) "Dingo\Api\Http\Request"
      'Dingo\Api\Dispatcher' =>
      string(14) "api.dispatcher"
      'Dingo\Api\Http\RequestValidator' =>
      string(18) "api.http.validator"
      'Dingo\Api\Http\Response\Factory' =>
      string(17) "api.http.response"
      'Dingo\Api\Routing\Router' =>
      string(10) "api.router"
      'Dingo\Api\Contract\Routing\Adapter' =>
      string(18) "api.router.adapter"
      'Dingo\Api\Auth\Auth' =>
      string(8) "api.auth"
      'Dingo\Api\Http\RateLimit\Handler' =>
      string(12) "api.limiting"
      'Dingo\Api\Transformer\Factory' =>
      string(15) "api.transformer"
      'Dingo\Api\Routing\UrlGenerator' =>
      string(7) "api.url"
      'Dingo\Api\Exception\Handler' =>
      string(13) "api.exception"
      'Dingo\Api\Contract\Debug\ExceptionHandler' =>
      string(13) "api.exception"
      'Illuminate\Contracts\Broadcasting\Factory' =>
      string(40) "Illuminate\Broadcasting\BroadcastManager"
    }
    protected $extenders =>
    array(0) {
    }
    protected $tags =>
    array(0) {
    }
    protected $buildStack =>
    array(0) {
    }
    public $contextual =>
    array(0) {
    }
    protected $reboundCallbacks =>
    array(3) {
      'request' =>
      array(3) {
        ...
      }
      'api.routes' =>
      array(1) {
        ...
      }
      'routes' =>
      array(1) {
        ...
      }
    }
    protected $globalResolvingCallbacks =>
    array(0) {
    }
    protected $globalAfterResolvingCallbacks =>
    array(0) {
    }
    protected $resolvingCallbacks =>
    array(2) {
      'db' =>
      array(1) {
        ...
      }
      'Illuminate\Foundation\Http\FormRequest' =>
      array(1) {
        ...
      }
    }
    protected $afterResolvingCallbacks =>
    array(1) {
      'Illuminate\Contracts\Validation\ValidatesWhenResolved' =>
      array(1) {
        ...
      }
    }
  }
  protected $resolver =>
  class Immogic\Lib\Transformer\UserTransformer#532 (3) {
    protected $availableIncludes =>
    array(0) {
    }
    protected $defaultIncludes =>
    array(0) {
    }
    protected $currentScope =>
    NULL
  }
  protected $parameters =>
  array(0) {
  }
  protected $callback =>
  NULL
  protected $meta =>
  array(0) {
  }
}

Output shortened for brevity.

Don't tell me I need to use a framework-specific dumping method that filters out the shit.


The reddit thread washed up all the negative shit we've come to expect from unmoderated public comments, but there are some things to comment on:

You should be using a debugger.

A debugger would hide this from me by collapsing the container variable, just as framework-specific dumping methods do. But I want to use var_dump(), so that comment is not helpful

Once you learn how frameworks work, you build a sense of where you can fire var_dump() at and where not.

I was dumping an object to see if its internal state was as I expected it to be. Having to learn which of the thousand parts of an application are ok-to-inspect is not friendly.

Written by Christian Weiske.

Comments? Please send an e-mail.