2017-02-28 42 views
2

我使用的是Laravel 5.2,我在1控制器中使用幫助函數,我應該在哪裏放置這樣的功能我正在使用Laravel 5.2,是否有一些最好的建議在哪裏把幫助器功能正在使用1控制器,

/** 
* trim all elements of array 
* 
* @param $elements 
* @param string $delimiter 
* @return array 
*/ 
private function trimArrayElements($elements, $delimiter = '|') 
{ 
    return array_map('trim',explode($delimiter, $elements)); 
} 
+0

不管你是否只使用它一次,只要把它放到helper.php。 – darthsoup

回答

2

如果您僅在該控制器中使用該函數,我會將該函數保留在控制器本身中,只是將該函數聲明爲私有函數。

+0

我在控制器中做了相同的私人功能,我的問題是關於單個責任,似乎這種功能不能在控制器中 –

+1

如果您詢問一般編程原理,將該功能放在自定義helpers.php文件中,@phaberest的答案很好。用這個文件你可以定義你需要的其他幫助函數。我認爲你的函數具有足夠的通用性,足以成爲全球幫手。恕我直言,如果你使用它只有在該控制器使用私人功能沒有那麼錯。 – dparoli

0

我通常會創建一個app/helpers.php讓我在任何地方使用這些小函數。

然後將部分的composer.json更改爲自動加載該文件,而不使用命名空間。

"autoload": { 
    "classmap": [ 
     "database" 
    ], 
    "psr-4": { 
     "App\\": "app/" 
    }, 
    "files": [ 
     "app/helpers.php" 
    ] 
}, 
+0

在應用程序級別可用的情況下,但我只需要它在單個控制器中,而不是在任何地方 –

+0

如果您想保持控制器清潔,那麼使用帶公共功能的外部類(或公共靜態事件)方法。 – phaberest

相關問題