【问题标题】:Laravel PHP Global objectLaravel PHP 全局对象
【发布时间】:2017-07-08 15:01:55
【问题描述】:

我是 OOP 世界的新手,我正在尝试制作一个 Laravel 应用程序。

我正在制作的应用程序是为了促进游戏。游戏有一个开始日期和一个结束日期。然而,在我的整个应用程序中,很高兴知道游戏的周期(结束日期 - 开始日期)以及与一年相比的相对周期(周期 / 365)。我在配置文件中定义了开始日期和结束日期。

创建一个我设置周期和相对周期的类是否明智?该类应该只实例化一次......所以是一个单例?

欢迎任何指针/最佳实践!

【问题讨论】:

  • 您的游戏是否打算在浏览器中仅持续一个会话?
  • 我会把它放在会话中。
  • @McRed 不,在大约 3 周的时间内,用户必须尝试节省一些能源。所以每个注册用户的设置都是一样的。
  • 游戏是在同一日期对每个用户开放还是在用户注册后的 3 周内开放?
  • @RossWilson:每个人都一样。

标签: php laravel singleton


【解决方案1】:

您可以简单地创建一个静态类,这样就不必实例化它。

如果你想创建一个单例,你可以查看Laravel docs

$this->app->singleton('HelpSpot\API', function ($app) {
    return new HelpSpot\API($app->make('HttpClient'));
});

将其添加到服务提供者的register 方法(例如AppServiceProvider)后,您可以通过在控制器方法中键入提示或调用$api = resolve('HelpSpot\API'); 来访问它(请参阅the docs

【讨论】:

  • 太好了,创建了一个类,该类具有返回属性的方法。在 AppServiceProvider 中,我注册了单例。效果很好:)
  • 但是我可以更新它的属性吗?然后我可以得到这个具有新属性的对象吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-26
  • 2016-05-09
  • 2019-11-20
相关资源
最近更新 更多