如果使用命名空间

时间:2015-04-22 10:23:09

标签: php namespaces laravel-5 view-helpers

我已经按照一些教程创建了一些全局帮助函数,以便在刀片视图中使用。

我在App \ Helpers文件夹中创建了ViewHelpers.php文件。该文件包含以下代码:

<?php namespace App\Providers;

use Illuminate\Support\ServiceProvider;

class HelperServiceProvider extends ServiceProvider {

    public function register()
    {
        foreach (glob(app_path().'/Helpers/*.php') as $filename){
            echo $filename; // for debugging - yes, I see it is getting called
            require_once($filename);
        }
    }
}

这是我的服务提供商,它加载我的助手(目前只有一个文件):

'App\Providers\HelperServiceProvider',

我已将其添加到&p;提供商的配置\ app.php中。部分:

{{ViewHelpers::bah()}}

现在我在刀片视图中调用我的助手:

<?php namespace App\Helpers;

class ViewHelpers {

  // omitted for brevity

现在它工作正常。

但是,如果我将ViewHelper名称空间更改为:

Class 'ViewHelpers' not found

我的观点因use App\Helpers而失败。

如果ViewHelpers类位于不同的命名空间中,如何查看ViewHelpers类?我在哪里添加VH:bah()

另一个相关的问题 - 我可以为ViewHelpers类创建一个别名,让它看起来像我的视图中的\n吗?

我更喜欢以简单的方式做到这一点,如果可能的话(没有Facades,什么不是),因为这些只是静态助手而不需要类实例和IoC。

我正在使用Laravel 5.

0 个答案:

没有答案