我在StringTools
命名空间下定义了以下Clanmovil\PlatformBundle\Tools
类:
namespace Clanmovil\PlatformBundle\Tools;
class StringTools
{
/**
* Generate as many unique permutations of letters for a given word
* @param string $input
* @return array
*/
public static function permutationWords($input)
{
$input = strtolower($input);
$results = [];
$length = strlen($input);
$counter = pow(2, $length);
for($i=0; $i<$counter; $i++) {
$binaryStr = str_pad(decbin($i), $length, '0', STR_PAD_LEFT);
$variant = '';
for($j=0; $j<$length; $j++) {
$variant .= ($binaryStr[$j] == '1') ? strtoupper($input[$j]) : $input[$j];
}
$results[] = $variant;
}
return $results;
}
}
现在我想使用该函数的输出让我们通过AJAX调用,这将是正确的方式:
permutationWords()
函数然后通过路由调用控制器函数的函数?答案 0 :(得分:2)
嗯,你可以用几乎没有控制器代码完成任务,并且控制器是专为Web请求设计的,所以它是最好的选择。几乎没有任何代码:
use Clanmovil\PlatformBundle\Tools\StringTools;
public function someAction (Request $request) {
// this could be a JSON response etc
return new Response(StringTools::permutationWords($request->get('someParam')));
}