중복 코드를 줄이기 위해 함수에 단편을로드하는 방법은 무엇입니까?코드 조각을 함수로로드
예를 들어 다음 코드를 사용하면; site_loader.php이 포함로
public function site()
{
command $this->load->model('site_loader');
//Function specific code
}
:
public function site()
{
$this->load->model('model_get');
$data["results"] = $this->model_get->getData(__FUNCTION__);
$this->load->view('view_head', $data);
$this->load->view('view_nav');
$this->load->view('view_content_' . __FUNCTION__, $data);
$this->load->view('view_footer');
}
어떻게 같은 것을 빛으로 줄일 수
$this->load->model('model_get');
$data["results"] = $this->model_get->getData(__FUNCTION__);
$this->load->view('view_head', $data);
$this->load->view('view_nav');
$this->load->view('view_content_' . __FUNCTION__, $data);
$this->load->view('view_footer');
totymedli 제안에 따라 코드 작업. 당신이 정말로 이렇게 할 경우
Controller
public function site()
{
$pagename = __FUNCTION__;
include 'resources/scripts/site_loader.php';
}
Site Loader
<?php
$this->load->model('model_get');
$data["results"] = $this->model_get->getData($pagename);
$this->load->view('view_head', $data);
$this->load->view('view_nav');
$this->load->view('view_content_' . $pagename, $data);
$this->load->view('view_footer');
?>
코드를 파일로 분리하여 downvote하려고합니다. 'include'에 의존하는 것은 실제 코드를 함수/클래스/메소드를 분리하여 필요에 따라 호출하는 것에 가깝지 않습니다. 어떤 사람들은 코드를 하나의 PHP 파일로 컴파일하는 접근법을 취합니다. 이것이 여러분의 접근 방식이 실패하게되는 곳입니다. 왜 전체 파일을 함께 실행하지 않고 코드를 논리적 인 조각으로 분리 할 수있을 때 인생을 복잡하게 만듭니다. 예, 파일의 값을 _return_하여 변수에 할당 할 수 있지만 매개 변수로 확장하는 것은 지옥처럼 추악합니다. – Tadeck
@Tadeck 내가 알기에, 내가 '왜 이걸 정말로하고 싶으면'으로 시작했는지. 나는 방금 해결책을 제시했다. 어쩌면 나는 이것이 최선의 해결책은 아니라는 것을 조금 더 강조해야 할 것이다. 그러나 만약 당신이 그 질문에 기초한 오해가 있다면, 당신은 여전히 새로운 대답으로 이것을 쓰고 나의 것보다 나은 해결책을 줄 수있다. – totymedli
위의 작은 코드 조각을 각 뷰에 대해 반복해야하기 때문에 현재 약 40 개가 필요하며 약 30 개가 더 필요합니다.이 메서드를 사용하면 라이브러리 및 모델이 codeigniter에서 수행 할 수없는 작업을 수행했거나 적어도 어떤 방식 으로든 내가 할 수 없었고, 제 컨트롤러의 대량을 상당히 많이 줄였습니다. –