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

如何在Laravel而不是Facade上创建帮助器方法

朱海超
2023-03-14

我已经阅读了很多关于如何在Laravel5.1中创建helper方法的问题。但我不想通过门面来实现这一点。

HelperClass::methodName();

我想让助手方法就像这些方法Laravel助手方法一样:

myCustomMethod();

我不想把它变成门面。这有可能吗?怎样?

共有2个答案

庾才
2023-03-14

如果你想走“Laravel之路”,你可以创建助手。带有自定义帮助程序的php文件:

if (! function_exists('myCustomHelper')) {
    function myCustomHelper()
    {
        return 'Hey, it\'s working!';
    }
}

然后将此文件放在某个目录中,将此目录添加到应用程序的composer.json的自动加载部分:

"autoload": {
    ....
    "files": [
        "app/someFolder/helpers.php"
    ]
},

运行作曲家Dumpauto命令,您的助手将通过所有的应用程序,如Laravel的工作。

如果需要更多示例,请查看原始Laravel帮助程序,网址为/vendor/Laravel/framework/illumb/Support/helpers。php

司徒茂实
2023-03-14

首先,我在我的应用程序目录中创建了一个名为Helpers的文件夹。然后在Helpers文件夹中,我为我想要添加的函数添加了文件。拥有一个包含多个文件的文件夹可以避免一个大文件过长且无法管理。

接下来,我通过运行artisan命令创建了一个HelperServiceProvider.php:

在寄存器方法中,我添加了这个片段

public function register()
{
    foreach (glob(app_path().'/Helpers/*.php') as $filename){
        require_once($filename);
    }
}

最后,在提供者数组中的配置/app.php中注册服务提供者

'providers' => [
    'App\Providers\HelperServiceProvider',
]

之后,您需要运行composer dump autoload,您的更改将在Laravel中可见。

现在,Helpers目录中的任何文件都已加载,可以使用了。

希望这行得通!

 类似资料:
  • 问题内容: 我已经阅读了很多有关如何在Laravel 5.1中制作辅助方法的问题。但是我不想通过Facade实现这一目标。 我想像这些方法上那样制作辅助方法Laravel辅助方法,例如: 我不想使其成为立面。这可能吗?怎么样? 问题答案: 如果要采用“ Laravel方式”,则可以使用自定义帮助程序创建文件: 然后将此文件放在某个目录中,将此目录添加到应用程序的autoload部分: 运行命令,您

  • 问题内容: 我目前有一个从mysql查询中使用json_encode的json,如下所示: 我怎样才能让json是帖子数组(“ post_2”,“ post_1”)而不是字典?JSON将在iPhone上使用SBJSON解码,并且必须将JSON制成后端的数组。 提前致谢。 问题答案: 为提供非关联数组。最简单的方法通常是简单地调用(关联)数组,并对结果进行编码。

  • 我在应用程序中创建了Helpers文件夹,然后我创建了php文件amchelpers。php--- amchelpers.php代码: 然后加上这些线条composer.json 然后运行以下命令: 然后添加了'Helper'= 在我的控制器中,我有以下操作(此操作在route.php中定义): 什么时候运行页面http://localhost:8080/easy_marketing/public

  • 看起来让它静态化可能会起作用,但我想要的方法会触及类的@shared变量,所以我不确定静态是最好的选择。

  • 我想创建帮助函数以避免在Laravel中的视图之间重复代码。例如: 看法刀身php 它们基本上是文本格式函数。我应该如何定义全局可用的助手函数,如fooFormatText()?

  • 这篇文章我们开始讲laravel框架中的门面Facade,什么是门面呢?官方文档:   Facades(读音:/fəˈsäd/ )为应用程序的服务容器中可用的类提供了一个「静态」接口。Laravel 自带了很多 facades ,几乎可以用来访问到 Laravel 中所有的服务。Laravel facades 实际上是服务容器中那些底层类的「静态代理」,相比于传统的静态方法, facades 在提