Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel在Laravel 4中的项目中使用自定义函数_Php_Laravel 4 - Fatal编程技术网

Php Laravel在Laravel 4中的项目中使用自定义函数

Php Laravel在Laravel 4中的项目中使用自定义函数,php,laravel-4,Php,Laravel 4,我有一些自定义函数,我正在尝试将其用于项目中,例如: function makeText($str1, $str2){ return $str1 . ' '. $str2; } 我想在如下情况下使用此函数: <div style='float:left;'>MakeText : {{makeText("Hello","World");}}</div> MakeText:{{MakeText(“你好”,“世界”);} makeText只是一个示例函数,witc

我有一些自定义函数,我正在尝试将其用于项目中,例如:

function makeText($str1, $str2){
    return $str1 . ' '. $str2;
}
我想在如下情况下使用此函数:

<div style='float:left;'>MakeText : {{makeText("Hello","World");}}</div>
MakeText:{{MakeText(“你好”,“世界”);}

makeText
只是一个示例函数,witch folder必须是put functions方法,例如
UF.php
包含所有函数,以及如何将此文件定义为laravel并使用它?

laravel为您提供了一些选项。您可以将函数定义包含在自动包含的任何文件中,以获得所需的结果,例如
/app/start/global.php
/bootstrap/start.php
/app/routes.php
或其他许多文件。这种方法的问题在于,根据函数的名称,该名称与已使用的名称(或以后使用的名称)发生冲突的可能性不容忽视。此外,如果您需要调试此函数,您需要能够在以后找到它

您可以通过将函数放在类中,然后将该类称为服务来解决这个问题。然后,您可以通过依赖项注入将该类注入控制器,然后将该数据传递给视图:

class MyService
{
    public function makeText($param1, $param2)
    {
        return $param1 . ' ' . $param2;
    }
}

class AController extends BaseController
{
    public function __construct(MyService $serv)
    {
        $this->serv = $serv;
    }

    public function aRoute()
    {
        return View::make('some.view')
            ->with('serv', $this->serv);
    }
}
<div style='float:left;'>MakeText : {{ $serv->makeText("Hello","World"); }}</div>
在你看来:

class MyService
{
    public function makeText($param1, $param2)
    {
        return $param1 . ' ' . $param2;
    }
}

class AController extends BaseController
{
    public function __construct(MyService $serv)
    {
        $this->serv = $serv;
    }

    public function aRoute()
    {
        return View::make('some.view')
            ->with('serv', $this->serv);
    }
}
<div style='float:left;'>MakeText : {{ $serv->makeText("Hello","World"); }}</div>
MakeText:{{$serv->MakeText(“你好”,“世界”);}
这将帮助您防止命名冲突,因为您可以轻松地将
MyService
放入任何有意义的命名空间中。它还将帮助您更好地组织代码


这么简单的事情可能不需要一个,但当你给你的项目增加复杂性时,一旦你需要,这将是一个简单的步骤。

你可以遵循Laravel的惯例,在你的应用程序目录中创建一个helpers.php文件。但请确保使用Composer自动加载它:

"autoload": {
    "classmap": [
        //
    ],
    "files": [
        "app/helpers.php"
    ]
},
然后,您可以在应用程序中的任何位置(包括视图)使用该函数