我的理解是,在为joomla构建MVC组件时,我们应该将自定义函数保存在该视图的控制器PHP文件中。我正在快速构建组件的视图,并在视图中使用以下功能来查找两点之间的最短距离:
function distance($a, $b)
{
list($lat1, $lon1) = $a;
list($lat2, $lon2) = $b;
$theta = $lon1 - $lon2;
$dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($theta));
$dist = acos($dist);
$dist = rad2deg($dist);
$miles = $dist * 60 * 1.1515;
return $miles;
}
我稍后在视图中使用其他基于变量的信息来调用此函数:
$distances = array_map(function($items) use($ref) {
$a = array_slice($items, 0);
return distance($a, $ref);
}, $items);
asort($distances);
当我将距离函数移动到控制器文件中时,当我尝试加载视图时出现以下错误:
Fatal error: Call to undefined function distance()
我应该在调用中更改什么或以其他方式正确格式化MVC架构的功能?