在laravel 5中放置HTML宏的位置?

时间:2015-02-05 13:21:29

标签: macros laravel-5

在laravel 4中,我曾经有过在多个视图中使用的HTML宏,例如:

HTML::macro('minipics', function($pic)
{
    //
}

为此我在macros.php文件夹中有一个/app文件。我无法找到将宏放在laravel 5中的哪个位置。我应该使用' macroable'这个功能?

编辑:

我最终使用@include(),为其提供所需的值。

@include('shared.minipics', $mpics = $ppics)
@include('shared.minipics', $mpics = $randpics)

2 个答案:

答案 0 :(得分:23)

我已将我的宏移动到“resources / macros / ...”目录中,因为我认为它们属于所有其他与视图相关的代码。要加载它们,我使用的服务提供程序看起来像这样:

<?php namespace App\Providers;

use Illuminate\Support\ServiceProvider;

class MacroServiceProvider extends ServiceProvider {

    /**
     * Bootstrap the application services.
     *
     * @return void
     */
    public function boot()
    {
        require base_path() . '/resources/macros/macro1.php';
        require base_path() . '/resources/macros/macro2.php';
        // etc...
    }

    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        //
    }

}

答案 1 :(得分:0)

你可以像在Laravel 4中那样做。

macros.php文件放在/app文件夹中。

然后在composer.json中执行此操作

"autoload": {
        "classmap": [
            "database"
        ],
        "psr-4": {
            "App\\": "app/"
        },
        "files": [
            "app/macros.php"  <-- Put this here
        ]
    },