当前位置: 首页 > 知识库问答 >
问题:

Laravel加载并初始化自定义帮助器类

郭远
2023-03-14

在Laravel中加载自定义助手类有很多问题。然而,它们都没有专注于通过适当的初始化加载它们。

从Laravel 5.3版开始,我们可以使用psr-4自动加载,即自动加载整个app/目录。但是,类正在加载,但从未初始化。

我在app/helpers/support中有我的helper类。php。这个类有一个构造函数,我想在其中加载一些重要的配置,以使助手可用。

那么,如何在加载助手的同时在Laravel中正确初始化它呢?现在我只是使用new\App\Helper\Support()来解决这个问题 内部AppServiceProvider。php

编辑:我使用以下方法来维护我的助手类:

Laravel 5上自定义助手的最佳实践


共有1个答案

司徒俊雄
2023-03-14

看起来你所拥有的是一种服务。您可以在应用程序服务提供商中声明实例,并在需要时将其作为依赖项注入,而不是创建实例

在您的注册方法中:

$this->app->bind(\App\Helper\Support::class);

现在可以使用依赖项注入来获取类的实例。您还可以创建如下示例:

app()->make(\App\Helper\Support::class);

如果在任何给定时间只希望存在一个实例,请使用singleton而不是bind

我建议阅读服务容器留档:

https://laravel.com/docs/5.5/container

 类似资料:
  • 如何向Swift中的子类添加自定义初始化器? 我创建了的一个子类,它看起来如下所示: 如果我加上这个,Xcode会抱怨处初始化。所以我想这也不是解决办法。所以我想知道如何在Swift中将自定义初始化器正确地添加到子类中(因为在Objective-C中这似乎不是问题)?

  • 我的自定义助手类如下所示: 位于app/bootstrap/ACL. php 现在,我需要访问所有项目控制器中的这个ACL类。所以我在app.php文件中require_once'ACL. php';。 然后在我的控制器内,我可以执行以下操作: 这个代码工作,但我觉得应该有一个Laravel 5适当的方法来做到这一点。我想知道: 1) 这种方法行吗,还是有更好的方法来实现这一点? 2) 不执行

  • Swift 5.x String初始化、定义 1. 字面量初始化字符串 1.1 单行字面量字符串 let str = "some string" 1.2 字面量初始化多行字符串 let str = """ The white Rabbit put on his spectacles. "Where shell I begin, please your Majesty?" he asked. "

  • 本文向大家介绍Swift使用参数自定义初始化,包括了Swift使用参数自定义初始化的使用技巧和注意事项,需要的朋友参考一下 示例 请注意,您不能省略参数标签: 为了允许省略参数标签,请使用下划线_作为标签: 如果参数标签使用一个或多个属性共享名称,请使用self显式设置属性值:            

  • 我是Spring MVC的新手,我正在做一些测试。我试图找到一些关于这个问题的答案,但大多数都引用了Spring3.11,我使用的是上一个版本:4.1.6。 我希望在应用程序启动时加载一个“.properties”文件,并使用其中的信息创建一个bean,以便在应用程序的所有上下文中访问它。 我认为(不确定)我在root-context.xml中正确地声明了bean: 我也认为我正确地制作了bean

  • 我想创建helper函数,以避免在Laravel 5中的视图之间重复代码: view.blade.php 它们基本上是文本格式化函数。我可以在哪里以及如何用这些函数创建一个文件?