2010-07-25 2 views
1

MVC가 PHP 애플리케이션에 대해 높은 평가를 받고 있음을 알고 있지만, JavaScript에 적합하다는 것이 확실하지 않습니다. 그렇지 않다면 AJAX 요청, 데이터 저장 (오프라인 저장), 프리젠 테이션, 컨트롤러 로직 처리 방법 (전면 컨트롤러가 있습니까?) 등과 같은 일반적인 시나리오를 처리하는 방법과 장소를 설명하십시오.거의 완전한 JavaScript 기반 웹 응용 프로그램을위한 아키텍처입니까?

모델 -보기 - 프레젠테이션은 어떻게됩니까?

저는 ExtJS를 사용하며 서버는 영구적 인 데이터 저장에만 사용합니다.

+0

우리는 서버 측 JS도 이야기하고 있습니까? –

+0

PHP는 서버에, JavaScript는 클라이언트에 있습니다. PHP는 V가 없다는 것을 제외하면 MVC를 기반으로합니다. JavaScript로 무엇을해야하는지 알아 내려고하고 있습니다. – Tower

답변

1

, 당신은 웹 서비스의 이상 또는 API 사물의 당신의 PHP의 끝을 생각 할 수있다.

기본적으로보기는 JS에서 작성하는 Ext JS 항목입니다. 데이터로 작업하기 위해 Ext 프론트 엔드는 "서비스"에 대한 요청을 수행합니다. 기본적으로 컨트롤러의 작업은 요청을 처리하고 JSON (Ext 프론트 엔드로 소비)을 출력하는 일종의 모델 컨트롤러 아키텍처를 갖습니다.

기본적으로 백엔드의 "보기" 단순히 json_encode에서 출력 될 것이고, 이것은 실제 Ext 기반 뷰에 의해 소비됩니다.

JS에서는 컨트롤러의 종류에 따라 컨트롤러를 사용할 수 있습니다. 서버에서 데이터를 표시하는 경우 별도의 로직이 필요하지 않을 수 있습니다. 좀 더 복잡한 처리를 수행하는 경우 코드를 별도의 컨트롤러 및보기로 분리하는 것이 유용 할 수 있습니다.

논리를 얼마나 많이 분리 할 것인지는 대부분 다릅니다.

+0

네, 저도 알지만 JavaScript는 무엇입니까? 컨트롤러, 모델, 뷰 또는 다른 것을 가지고 있습니까? – Tower

+0

편집 된 답변, 도움이 되길 바랍니다 =) –

0

나는 당신이 당신의 질문에 어디로 가고 있는지 잘 모르겠다. 그러나 나는 그것을 시도 할 것이다.

MVC는 본질적으로 가능한 한 데이터 모델, 컨트롤러 및 UI를 느슨하게 결합한 아키텍처 패턴입니다.

기술 수준까지 낮추고 자하는 중입니다. 아무런 의미가 없습니다. 좋은 프레임 워크로 적절한 MVC를 할 수 있습니다. 그냥 물건을 분명히하기 위해, 일반 바닐라 PHP 좋은 MVC 지원을 제공하지 않습니다. CakePHP 나 CodeIgniter 같은 좋은 프레임 워크가 가능합니다.

JS는 클라이언트 측 경험을 풍부하게하는 좋은 방법입니다. 서버 측 JS를 수행하지 않는 한, JS를 가질 유일한 장소는 뷰 자체에 있다는 것입니다. AJAX 요청은 MVC와 관련이 없습니다. 또한 데이터 지속성도 없습니다. 자신 만의 컨트롤러를 구현하지 않는 한 (그리고 스스로 그렇게하는 것이 더 낫다), 내부 로직에 대해 걱정할 필요가 없다.

적절한 MVC를 원할 경우 적절한 프레임 워크를 사용하면 모든 것이 중단됩니다.

자바 스크립트로 순전히 당신의 UI 코딩에 계획하는 경우
+0

JavaScriptMVC 또는 다른 프레임 워크를 사용 하시겠습니까? 서버에서 모델과 컨트롤러를 사용할 예정이지만 클라이언트 측에서 아키텍처에 대한 올바른 결정을 내릴 수는 없습니다. 아시다시피 현재 내 응용 프로그램은 수백 개의 JavaScript 파일이 일부 폴더와 파일로 분리되어 있습니다. 정말 편리하지는 않지만 서버 측 언어에 MVC가있는 것처럼 JavaScript 용 아키텍처도 있어야합니다. – Tower

1

당신이로 MVC 생각할 수있는 거의 완전한 자바 스크립트 응용 프로그램을 작성 :

  • 보기 : DOM을
  • 컨트롤러 : 자바 스크립트
  • 모델 : 자바 스크립트 아약스의 조합은 호출과 PHP (또는 무엇이든) backend counterparts

PureMVC은 매우 멋진 MVC 프레임 워크입니다. 그것을 확인해야합니다.

1

동일한 아키텍처를 사용하고 있습니다 : 주로 PHP 백엔드 위에 ExtJS가 있습니다.

내 솔루션 : 서버와

  • 엄격한 JSON-RPC 통신. 서버 측 API는 제 3 자 인터페이스 API이기 때문에 충분히 깨끗합니다. 타사 인터페이스와 동일한 API를 사용하도록하면 서버 측 코드를 깨끗하고 최소한으로 유지할 수 있으므로 보안 및 성능에 좋습니다.
  • 구성 요소가 많이 포함 된 아키텍처로 구성 요소를 그룹화하는 모듈 (일반적으로 Ext.Panel 파생 요소)로 나눕니다. 각 구성 요소는 JSON-RPC 호출을 통해 초기 구성 및 데이터를 요청하고 자체 렌더링하고 필요한 경우 상태를 저장하는 방법을 알고 있습니다. 나는 구성 요소 사이의 통신을 깨끗하고 문서화 된 상태로 유지하려고 노력합니다.
  • 필요에 따라 자바 스크립트 파일을 통해 추가 구성 요소를로드하는 주문형 아키텍처. 전체 코드는 콜백을 통해 초기화되므로 구성 요소가 서버에서 종속성을로드하고 초기화하기 전에 빈 자리 표시 자만 렌더링 할 수 있습니다.

개별 구성 요소는 MVC 패턴을 사용할 수 있습니다. Ext는 어쨌든 MVC를 장려하는 경향이 있습니다. 데이터를 상점으로 분리하고 별도의 렌더링 인프라를 사용합니다 (컨트롤러 로직을 렌더링 된 구성 요소와 섞어도).

관련 문제