jeudi 5 novembre 2015

"Unresolvable dependency resolving" Error, Laravel Service Provider

I'm trying my hand at building a custom Service Provider package, however I'm running into the following error. Does anyone have experience with this?

Unresolvable dependency resolving [Parameter #0 [ <required> $app ]] in class Illuminate\Support\ServiceProvider

Package Folder Structure:

[root]
....packages/
........mbarwick83/
............previewr/
................src/
....................PreviewrServiceProvider.php
....................Previewr.php
................composer.json

config/app.php:

Mbarwick83\Previewr\PreviewrServiceProvider::class

Service Provider:

<?php

namespace Mbarwick83\Previewr;

use Illuminate\Support\ServiceProvider;

class PreviewrServiceProvider extends ServiceProvider
{
    /**
     * Indicates if loading of the provider is deferred.
     *
     * @var bool
     */
    protected $defer = false;

    /**
     * Perform post-registration booting of services.
     *
     * @return void
     */
    public function boot()
    {
        //
    }

    /**
     * Register any package services.
     *
     * @return void
     */
    public function register()
    {
        $this->app->bind('Mbarwick83\Previewr\Previewr',function($app){
            return new Previewr($app);
        });
    }
}

Previewr.php (class):

<?php

namespace Mbarwick83\Previewr;

class Previewr
{
    /**
     * Create a new Previewr Instance
     */
    public function __construct()
    {
        //
    }

    /**
     * Friendly welcome
     *
     * @param string $phrase Phrase to return
     *
     * @return string Returns the phrase passed in
     */
    public function something($phrase)
    {
        return $phrase;
    }
}

Controller/view:

use Mbarwick83\Previewr\PreviewrServiceProvider as Previewr;

public function index(Previewr $previewr)
{
    echo $previewr->something('Hello, League!');
}

composer.json:

"autoload": {
        "psr-4": {
            "Mbarwick83\\Previewr\\": "packages/Mbarwick83/Previewr/src"
        }
    },



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire