지난주 부터 CI 시작했습니다. 간단한 Blog 만들어 보고있는데 이런식으로 하는게 맞는지 궁금해서 질문드립니다.
그냥 blog.php란 controller를 만들었고, 모델 파일도 하나 만들어 봤구요. blog.php에는 여러 메서드를 같이 너어놨습니다.
예를들어
class Blog extends CI_Controller
{
public function __construct()
{
parent::__construct();
session_start();
}
public function index()
{
$this->load->library(array('jsclass_util','jsclass_paging'));
$this->load->helper('url');
$this->load->model('Blog_model');
$this->load->view('blog_header');
$this->load->view('blog_navi');
$data['total_rows'] = $this->Blog_model->CountAll();
$data['result'] = $this->Blog_model->GetLimit(50, 0);
$this->load->view('blog_lists', $data);
$this->load->view('blog_footer');
}
public function view()
{
$this->load->library(array('jsclass_util','jsclass_paging'));
$this->load->helper('url');
$this->load->view('blog_header');
$this->load->view('blog_navi');
$this->load->database();
$data['query'] = $this->db->get('posts');
$this->load->view('blog_view', $data);
$this->load->view('blog_footer');
}
public function post()
{
$this->load->library(array('jsclass_util','jsclass_paging'));
$this->load->helper('url');
$this->load->view('blog_header');
$this->load->view('blog_navi');
$this->load->view('blog_post');
$this->load->view('blog_footer');
}
public function postSubmit()
{
$this->load->model('Blog_model');
$data['result'] = $this->Blog_model->WritePost();
}
public function login()
{
$this->load->library(array('jsclass_util','jsclass_paging'));
$this->load->helper('url');
$this->load->view('blog_header');
$this->load->view('blog_navi');
$this->load->view('blog_login');
$this->load->view('blog_footer');
}
....
}
근데, 각 메서드마다 헤더, 메뉴, 푸터를 넣고, custom class도 같이 넣어사용하는데, 이게 맞는 방법인가요? 제가 CI사용하는 방향이 맞는지도 몰라서 질문드립니다.
view단의 header, contents, footer 를 해도 무방하지만 layout으로 검색해보시면 껍데기 만들고 알맹이만 어싸인하게 용이한 라이브러리도 있고요.
아니면 인클루드 방식으로 하시는 것도 본적 있고요..
library, helper 는 거의 모든 페이지(?)에서 이용되는 부분이라면 autoload에서 한방으로 호출해도 되겠고, 해당 컨트롤러에서만 거의 모든 함수에 이용되는거라면 상단 생성자부분에서 한방만 해줘도 될것 같고요.
제 개인적으로는 객체생성을 줄이기 위해서 아주아주 공용인거만 한방 선언하고 아니면 함수마다 선언하지만,
해당 컨트롤러에서 사용하는 라이브러리, 모델, 헬퍼등 생성자에서 몰아서 한방에 불러와도 됩니다.
즉, 정답이란 없지만.. 제 경험을 그냥 말씀드려봅니다. 결론은 탁주나한잔님 마음껏 소신껏이실듯합니당~ㅋ