2011-01-25 2 views
2

컨트롤러가 모델, 라이브러리 또는 도우미를 호출하는 동안 모델을 db 만 호출하도록 제한하려면 으로 지정하고 싶습니다.컨트롤러와 모델 사이의 레이어 이름을 지정하는 방법 codeigniter MVC

뷰의 데이터를 준비하기 위해 컨트롤러 나 모델에 논리를 넣고 싶지 않습니다. 뷰에 대한 모든 배열을 준비하는 논리는 컨트롤러에서 수행됩니다. 나는이 부분을 분리하기 위해 라이브러리를 만들 때 때로는 컨트롤러에 과부하가 걸리는 것처럼 느껴진다.

따라서 라이브러리 클래스를 만들고 컨트롤러가 뷰에 투영하기 전에 뷰 데이터를 작성하려고한다. 그것은 정확히 templating되지 않습니다.

나는 그것을 어떻게 명명 해야할지 모르겠다. 좋은 제안이 있습니까? view_builder, ui_builder, ui_components를 생각하고 있습니까?

  • 컨트롤러
  • 서비스
  • 지속성
  • 보기는 중 바탕 화면이나 브라우저 또는

    1. 보기 :

      건배

      다음

    답변

    3

    내가 응용 프로그램 레이어 줄 방법 모바일 기반.

    컨트롤러가보기에 단단히 묶여 있습니다. 모델 객체에 대한 입력의 유효성 검사 및 바인딩, 유스 케이스 충족을위한 서비스 호출, 응답을 다음 뷰로 라우팅하는 일을 담당합니다.

    서비스가 사용 사례를 충족시킵니다. 그들은 작업 단위, 소유 트랜잭션, 데이터베이스와 같은 자원에 대한 연결을 관리합니다. 이들은 모델 객체, 다른 서비스 및 지속성 객체를 사용합니다. 그것들은 인터페이스 기반의 객체이지만 RPC-XML, SOAP, REST 또는 기타와 같은 원격 웹 서비스 또는 웹 서비스로 노출 될 수 있습니다.

    지속성은 다른 인터페이스 기반 개체입니다. 구현은 관계형 또는 NoSQL 일 수 있습니다. 중요한 것은 인터페이스가 모델 객체에 대한 CRUD 연산을 표현한다는 것입니다. 제네릭을 사용한다면, 모두를 위해 작동하는 하나의 인터페이스를 작성할 수 있습니다.

    모델 개체를 유지할 필요가 없습니다. 저는 "빈혈 모델"이라는 경각심을 알고 있습니다 만, 저는보다 흥미 진진한 행동이 CRUD 작업이 아닌 사업 목적을 중심으로 이루어져야한다고 생각합니다.

    0

    양호한 설정. 또한 때로는 CI 라이브러리를 사용하여 반환 된 데이터 배열의 꼬임 문제를보기에 전달하기 전에 해결합니다. 때로는 모델을 사용하기도합니다.

    이름에 대해 생각해 보는 것이 좋습니다. 나는 당신이 언급 한 모든 것이 훌륭하다고 생각합니다. data_structure 나 array_to_object와 같이 뭔가를 라이브러리 이름을 짓거나 friend_map이나 tag_cloud와 같이 자신 만의 문제에 더 구체적으로 지정할 수도 있습니다.

    내 충고 : 이름을 선택하고 더 자세한 설명이 나오거나 라이브러리 기능이 다른 것으로 바뀌면 그것을 바꾸는 것을 두려워하지 마십시오. 찾기 + 바꾸기는 친구입니다.

    관련 문제