【问题标题】:Issue with Facade and Service Provider in Laravel-4Laravel-4 中外观和服务提供者的问题
【发布时间】:2013-08-25 17:16:51
【问题描述】:

我正在尝试为 laravel-4 中的自定义构建类设置外观。但是,当我尝试加载我的网站时,我收到一条错误消息,内容为

Class 'PlaneSaleing\ResizerServiceProvider' not found

我已经按照这里的教程:http://fideloper.com/create-facade-laravel-4

我的自定义类名为Resizer.php,保存在laravel\app\library\,如下所示:

<?php

namespace PlaneSaleing;

class Resizer {
    // My custom methods
}

然后我创建了一个名为ResizerFacade.php 的外观,保存在同一个文件夹中,它看起来像这样:

<?php

namespace PlaneSaleing\Facades;

use Illuminate\Support\Facades\Facade;

class Resizer extends Facade {

    protected static function getFacadeAccessor() { return 'resizer'; }

}

第三,我创建了一个ResizerServiceProvider.php 文件并将其保存在同一个文件夹中,如下所示:

<?php

namespace PlaneSaleing;

use Illuminate\Support\ServiceProvider;

class ResizerServiceProvider extends ServiceProvider {

    public function register()
    {
        // Register 'resizer' instance container to our UnderlyingClass object
        $this->app['resizer'] = $this->app->share(function($app)
        {
            return new Resizer;
        });

        // Shortcut so developers don't need to add an Alias in app/config/app.php
        $this->app->booting(function()
        {
            $loader = AliasLoader::getInstance();
            $loader->alias('Resizer', 'PlaneSaleing\Facades\Resizer');
        });
    }
}

最后,我在'providers' =&gt; array (...)laravel/config/app.php 文件中添加了以下行

'PlaneSaleing\ResizerServiceProvider',

任何帮助,非常感谢

【问题讨论】:

  • 您是否在 composer.json 上添加了 app/library 来自动加载类映射?如果是这样,那之后你有composer dump-autoload 吗?
  • 啊不-我现在已经这样做了。但是,我有一个新错误:Class 'PlaneSaleing\AliasLoader' not found。有什么想法吗?

标签: php laravel laravel-4 facade service-provider


【解决方案1】:

您必须将 app/library 添加到您的 composer 自动加载路径,然后使用 artisan dump-auto 重新生成自动加载器。

您遇到的第二个错误(找不到类“PlaneSaleing\AliasLoader”)是因为 ResizerServiceProvider 类位于 PlaneSaleing 命名空间中,而此类尝试调用不在同一命名空间中的 AliasLoader。

您只需在 AliasLoader 前面添加一个 \ 以指定它位于主命名空间而不是当前命名空间中。

【讨论】:

    猜你喜欢
    • 2015-12-21
    • 2014-04-20
    • 2015-05-12
    • 2013-12-24
    • 2017-01-11
    • 2019-05-29
    • 2015-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多