好的,所以我正在尝试为 Laravel 3 ( https://github.com/maikeldaloo/Resizer ) 的 Resizer 捆绑包创建一个工作外观。
到目前为止,我有:
- 使用 Reszier 包中的代码创建了一个“Resizer.php”文件,并添加了命名空间 BARThompson\Planesaleing;
- 创建了一个“ResizerFacade.php”,其内容包含在这篇文章的底部;
- 创建了一个“ResizerServiceProvider.php”,其内容包含在这篇文章的底部;
- 这三个文件都保存在:app\library\;
在 'providers' => 数组下的 \app\config\app.php 中添加了一个自动加载器,内容如下:
'BARThompson\Planesaleing\ResizerServiceProvider',
在 'aliases' => 数组下为 \app\config\app.php 添加了一个别名,内容如下:
'Resizer' => 'BARThompson\Planesaleing\Resizer',
在 composer.json 的自动加载类映射中添加了以下目录:
"app/library"
但是,我可以成功加载网站,但是当我调用 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'; }
}
ResizerServiceProvicer.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;
});
}
}