包装中的Laravel 4静态外墙设置

时间:2013-03-24 03:52:41

标签: php laravel laravel-4

我正在玩软件包,当我这样做时,我能够使用我的代码(在我的控制器中):

App::make('Assets')->js('bla');

现在我想设置一个静态外观,以便我可以这样做:

Assets::js('bla');

为此,我遇到了错误。我一直关注this blog entry并且到目前为止没有遇到任何麻烦。但是现在我遇到了“调用未定义方法”错误。

我不确定您需要查看哪些代码,所以这里是一切:https://github.com/JoeCianflone/msl/tree/jc-working

具体来说,这是我的工作台:https://github.com/JoeCianflone/msl/tree/jc-working/workbench/Joecianflone/Assets

这是控制器,我正在搞乱它:https://github.com/JoeCianflone/msl/blob/jc-working/app/controllers/HomeController.php

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

看起来这是命名空间的一个问题,我通过改变它来实现它:

<?php namespace Joecianflone\Assets\Facades;

use Illuminate\Support\Facades\Facade;

class Assets extends Facade {

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

}

到此:

class Assets extends \Illuminate\Support\Facades\Facade {

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

}

我不确定的是为什么教程中的代码有效但我的代码没有。我一定是跳过了一步。

答案 1 :(得分:0)

请注意,如果您打算与社区分享您的代码(请这样做),我建议您使用5.3语法。 Laravel的要求是5.3,所以不要在你的包装中使用5.4。