在包中设置Laravel 4静态facade


Laravel 4 Static Facades Setup in Packages

我正在玩包,我能够我的代码工作(在我的控制器),当我这样做:

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

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

Assets::js('bla');

,我得到了错误。我一直在关注这个博客条目,到目前为止还没有遇到任何麻烦。但现在我被"调用未定义的方法"错误卡住了。

我不确定你需要看到什么代码,所以这里是所有的: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

感谢您的帮助。

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

<?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'; }
}

我不确定的是为什么教程中的代码有效,而我的代码却没有。我一定是漏了一步。

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