0

わかりましたので、Laravel 3 ( https://github.com/maikeldaloo/Resizer )の Resizer バンドル用に機能する Facade を作成しようとしています。

これまでのところ、私は持っています:

  • Reszier バンドルのコードを使用して「Resizer.php」ファイルを作成し、名前空間 BARThompson\Planesaleing を追加しました。
  • 「ResizerFacade.php」を作成しました。その内容はこの投稿の下部に含まれています。
  • 「ResizerServiceProvider.php」を作成しました。その内容は、この投稿の下部に含まれています。
  • これら 3 つのファイルはすべて app\library\ に保存されます。
  • 'providers' => 配列の下の \app\config\app.php に次のようなオートローダーを追加しました。

    'BARThompson\Planesaleing\ResizerServiceProvider',

  • 'aliases' => 配列の下に \app\config\app.php にエイリアスを追加しました。

    'Resizer' => 'BARThompson\Planesaleing\Resizer',

  • composer.json の autoload クラスマップに次のディレクトリを追加しました。

    "app/library"

ただし、Web サイトを正常に読み込むことはできますが、Resizer::open を呼び出すと、次のエラーが発生します。

Class 'BARThompson\Planesaleing\Config' not found 

名前空間と混同しています。アプリの他の場所では使用していませんが、それらを使用したチュートリアル ( http://fideloper.com/create-facade-laravel-4 ) に従っているため、完全に理解することなく実装で使用しました。

誰が私が間違っているのか説明できますか?

ResizerFacade.php:

<?php

namespace BARThompson\Planesaleing\Facades;

use Illuminate\Support\Facades\Facade;

class Resizer extends Facade {

    /**
     * Get the registered name of the component.
     *
     * @return string
     */
    protected static function getFacadeAccessor() { return 'resizer'; }

}

ResizerServiceProvider.php:

<?php

namespace BARThompson\Planesaleing;

use Illuminate\Support\ServiceProvider;

class ResizerServiceProvider extends ServiceProvider {

    /**
     * Register the service provider.
     *
     * @return void
     */
    public function register()
    {
        // Register 'resizer' instance container to our UnderlyingClass object
        $this->app['resizer'] = $this->app->share(function($app)
        {
            return new BARThompson\Planesaleing\Resizer;
        });
    }
}
4

0 に答える 0