리튬 PHP를 멋지게 확장하려고합니다. 리튬 헬퍼에 대한 액세스를 허용하는 내 스마트 플러그인을 제외한 모든 기능이 작동합니다.call_user_func_array의 올바른 사용
나의 현명한 기능은 리튬 도우미에게 "잡동사니"를 의미합니다. 내가 고민하는 부분은 콜백에 도우미 매개 변수를 동적으로 추가하는 것입니다.
간체 코드
$params = array('Google', 'http://www.google.com');
$helper = function($args){
return $this->html->link($args);
};
return call_user_func_array($helper, $params);
이 일부 추가 검사 위는 이상한 콜백에 $의 PARAMS 배열 ...의 첫 번째 항목을 통과 것으로 나타났다 <a href="/Google">Google</a>
으로 발생합니다. 그래서 나는 그것을 자체 배열로 감쌌다. 가져 가라. 설명 할 수없는 일!
return call_user_func_array($helper, array($params));
이 그러나 도우미 개별 매개 변수로 배열에서 배열이 아닌 번역 인수를 전달되는 것 같습니다, 나는 습관에 들어갈 리튬 오류가 발생합니다.
오류 코드 '(0 => 'Google', 1 => 'http://www.google.com', 'controller' => 'pages', 'action' => 'index')
에 매개 변수 일치 항목을 찾을 수 없습니다.
그래서 나는 call_user_func_array 메소드를 사용하고 있지 않다는 것을 모았습니다.
내 최종 목표를 달성하는 유일한 해결책이 아니라면 언제든지 여러 가지 인수를 동적으로 전달하는 더 좋은 방법을 생각해 보면 좋을 것입니다.
참고 : $ this->
html
->link
내 문제를 설명하는 간단한 방법이다, 그 객체의html
및link
부분이 실제로 동적으로 변경됩니다, 완전히 동적 함수 인수에 따라서 요구 사항.
완벽하게 작동했습니다! 내 영웅! – joseym