小编Mar*_*jía的帖子

Laravel:在哪里存储全局数组数据和常量?

我刚开始和Laravel合作.我需要重写几年前制作的整个系统,使用Laravel 4作为基础框架.在我的旧系统中,我使用一个带有一些常量声明的constant.php文件,以及一个包含大量数组的globals.php文件(例如,类别状态,事件类型,lang等).通过这样做,我可以使用类似的东西

foreach ( $langs as $code => $domain ) {
    // Some stuff
}
Run Code Online (Sandbox Code Playgroud)

我应用中的任何地方.

我的问题是,如何以所谓的"laravel方式"存储该信息.我尝试使用某种对象来存储此信息,将其设置为服务并为其创建一个外观:

应用程序/库/项目/ Constants.php

namespace PJ;

class Constants {

    public static $langs = [
            'es' => 'www.domain.es',
            'en' => 'www.domain.us',
            'uk' => 'www.domain.uk',
            'br' => 'www.domain.br',
            'it' => 'www.domain.it',
            'de' => 'www.domain.de',
            'fr' => 'www.domain.fr'
        ];

}
Run Code Online (Sandbox Code Playgroud)

应用程序/库/项目/ ConstantsServiceProvider.php

namespace PJ;

use Illuminate\Support\ServiceProvider;

class ConstantsServiceProvider extends ServiceProvider {
    public function register() {
        $this->app->singleton('PJConstants', function() {
            return new Constants;
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

应用程序/库/项目/ ConstantsFacade.php

namespace PJ; …
Run Code Online (Sandbox Code Playgroud)

php global-state laravel laravel-4

74
推荐指数
5
解决办法
7万
查看次数

Laravel:外观和别名的区别

再会!

我读得越多,我就越对此感到困惑。Facade 和 Aliases 有什么区别?

我有这个类:

/app/libraries/Project/Data.php

namespace PJ;

class Data {

    // It is much like a data container, with static methods and properties for saving info

}
Run Code Online (Sandbox Code Playgroud)

以及相应的外观,因此我可以仅使用PJD::进行访问。

根据一些网页:

... Laravel Facades 是代理。它们环绕并调用代码的底层真实实现上的函数。此外,在 Laravel 应用程序的上下文中,通过将它们分配给别名来访问这些 Facade。这种依赖注入容器的使用允许你通过简单地调用 File 来引用像 Illuminate\Support\Facades\Filesystem 这样的东西。( http://ryantablada.com/post/proxies-service-locators-alias-facades-and-war )

但是,我还发现并成功测试了添加以下内容:

__app/config/app.php__

'aliases' => array(
    //....,
    'PJD'             => 'PJ\Data',
),
Run Code Online (Sandbox Code Playgroud)

我也可以用同样的方式访问我的班级。

那么,有什么区别呢?

谢谢

编辑#01

我在/app/libraries/Project/Data.php 中创建了一个名为 Data 的类

namespace PJ;

class Data {
    // It is much like a data container, with …
Run Code Online (Sandbox Code Playgroud)

php laravel laravel-4 laravel-facade

5
推荐指数
1
解决办法
3246
查看次数

标签 统计

laravel ×2

laravel-4 ×2

php ×2

global-state ×1

laravel-facade ×1