Php 包:从多个控制器调用方法

Php 包:从多个控制器调用方法,php,laravel,package,laravel-5.2,helper,Php,Laravel,Package,Laravel 5.2,Helper,我正在从应用程序中的多个控制器调用一个方法。我不想在我的项目中有重复的代码,所以我正在寻找一种方法将该方法放在某个地方,这样我就可以从每个控制器调用它 我做了一些研究,偶然发现了“助手”。(我不知道这是否是解决这个问题的正确方法。其他方法也很受欢迎)我已经阅读了这篇文章,并完全按照杰弗里·韦(Jeffrey way)在文章中所说的做了,但我仍然发现以下错误: 调用未定义的函数initFb() 我已经尝试了composer dump autoload 这是我的helpers.php: <?p

我正在从应用程序中的多个控制器调用一个方法。我不想在我的项目中有重复的代码,所以我正在寻找一种方法将该方法放在某个地方,这样我就可以从每个控制器调用它

我做了一些研究,偶然发现了“助手”。(我不知道这是否是解决这个问题的正确方法。其他方法也很受欢迎)我已经阅读了这篇文章,并完全按照杰弗里·韦(Jeffrey way)在文章中所说的做了,但我仍然发现以下错误:

调用未定义的函数initFb()

我已经尝试了
composer dump autoload

这是我的
helpers.php

<?php

if (! function_exists('initFb'))
{
    function initFb()
    {
        $fb = new \Facebook\Facebook([
            'app_id' => getenv('FACEBOOK_APP_ID'),
            'app_secret' => getenv('FACEBOOK_APP_SECRET'),
            'default_graph_version' => 'v2.5',
        ]);

        return $fb;
    }
}
重要


这是我正在开发的一个包。

要注册自己的
helpers.php
文件,请将这些行添加到Laravel的
composer.json

"autoload": {
        ...
        "files": [
            "app/some_path/helpers.php"
        ]
对于课程,请使用psr-4部分:

"psr-4": {
            "App\\": "app/",
            "YourName\\PackageNamespace\\": "packages/yourname/package-name/src"
        },
然后运行
composer-dumpauto
(如果没有帮助,请尝试
composer-dumpauto-o

另外,尝试使用一些简单的帮助程序来测试它是否有效,请执行以下操作:

if (! function_exists('helpersTest'))
{
    function helpersTest()
    {
        return 'It works!';
    }
}

如果您在使用
composer
安装包后试图使用这些帮助程序(来自
Packagist
),则应将这些行添加到包的
composer.json
文件中。

要注册您自己的
helpers.php
文件,请将这些行添加到Laravel的
composer.json

"autoload": {
        ...
        "files": [
            "app/some_path/helpers.php"
        ]
对于课程,请使用psr-4部分:

"psr-4": {
            "App\\": "app/",
            "YourName\\PackageNamespace\\": "packages/yourname/package-name/src"
        },
然后运行
composer-dumpauto
(如果没有帮助,请尝试
composer-dumpauto-o

另外,尝试使用一些简单的帮助程序来测试它是否有效,请执行以下操作:

if (! function_exists('helpersTest'))
{
    function helpersTest()
    {
        return 'It works!';
    }
}

如果您在安装了带有
composer
(来自
Packagist
)的软件包后试图使用这些帮助程序,您应该将这些行添加到软件包的
composer.json
文件中。

您是否将这些行添加到了Laravel的
composer.json
?哦,对不起。你是说它应该在主应用程序的composer.json中?是的。试着把这些行放到应用程序的
composer.json
噢,这背后的逻辑是什么?我想这不应该是我的包的用户必须做的事情,所以我把它放在composer.json中?是否有一种方法可以让包的用户不必自己做这件事?双重检查路径。另外,尝试手动删除自动加载文件,然后运行
composer dumpauto
来生成它们。您是否将这些行添加到Laravel的
composer.json
?哦,对不起。你是说它应该在主应用程序的composer.json中?是的。试着把这些行放到应用程序的
composer.json
噢,这背后的逻辑是什么?我想这不应该是我的包的用户必须做的事情,所以我把它放在composer.json中?是否有一种方法可以让包的用户不必自己做这件事?双重检查路径。另外,尝试手动删除自动加载文件,然后运行
composer dumpauto
生成它们。