PHP 계의 유명한 Zend Framework과 따로 말할 필요도 없이 유명한 JavaScript 프레임웍인 Dojo가 만나 통합본을출시했습니다. 각자 서버사이드 프레임웍의 정상과 프론트엔드의 정상을 목표로 하고 있어 서로 힘을 합치기로 했다고 합니다.

첫 버전에서 볼 수 있는 것들은 다음과 같습니다:
  • JSON-RPC 서버: 우리는 Zend-Json_Server를 다시 작업하고 있습니다. 이건 0.2.0 때부터 인큐베이터에만 있었고 JSON-RPC 명세를 실제로 따라서 출시된 적은 없었습니다. 이것이 JSON-RPC 클라이언트 구현체를 가진 다른 툴킷들 뿐 아니라, Dojo와도 매끄럽게 작업할 수 있도록 도와줄 것입니다. 그 제안이 아직 승인을 기다리고 있기는 하나 기실 이 작업은 이미 끝났습니다; 확인하고 싶으시면 ZF svn을 참고하세요.

    원래의 Zend_Json_Server는 버려질 것입니다. 제대로 테스트되거나 문서화가 되어있지도 않아 출시를 방해하고 있었습니다. 게다가, 자신만의 주먹구구식 표준을 사용하고 있었기때문에, 진정한 JSON-RPC 서버가 제공해야할 상호운용성을 제공하지 않았습니다. 저는 비로소 범용적 이용에 맞는 표준 호환 솔루션을 제공할 수 있게 되어 무척 흥분했습니다.

    One final note: JSON-RPC 스펙은 1.0과 2.0 의 서로 다른 두 종류가 있습니다. 현재 제가 구현한 결과물은 요청에 적재할 포맷을 전환할 수 있으며, 서로 다른 적합한 SMD 포맷을 잘 전달합니다.

  • dojo() View Helper: 페이지에 Dojo를 사용가능하게 하는 것은 단순히 dojo.js 스크립트를 로딩하는 것만큼 사소하진 않습니다 -- AOL CDN 이나 로컬 경로 중 어디에서 읽어들일 것인지 선택해야하고, dojo 추가기능인 dijit나 dojox 모듈을 읽어들이려 하거나 필요할 수도 있고, 커스텀 모듈과 경로를 지정해야하며, onLoad()에서 실행할 코드도 정해주고, dijits를 꾸밀 스타일시트도 정해야 합니다. 이들 위에서, 이 정보는 페이지에서 페이지에서 변경될 수 있고, 일부 페이지에서만 필요해질 수도 있습니다. dojo() view helper는 placeholder 로서 작동하고, 상기 작업을 용이하게 할 뿐만 아니라 페이지에서 필요한 style과 script 엘리먼트의 렌더링을 관리합니다.
  • Form 엘리먼트 구현: 개발자들이 javascript와 ajax 툴킷을 제대로 사용하는 곳 중 하나는 폼form입니다. 특히, 다양한 형태의 폼 입력 컨트롤들은 JavaScript 만이 제공할 수 있는 개선되고 풍부한 사용자 인터페이스의 이점을 취할 수 있습니다: 달력 날짜 선택기, 시간 선택기, 기타 등등. 게다가, 많은 개발자들은 사용자에게 즉각적인 유효성 검사 피드백을 제공하기 위해 (서버를 거치는 대신) 클라이언트측 유효성 검사를 사용하는 것을 좋아합니다. 우리는 대부분의 관련된 사용문제를 해결할 수 있을 것 같은 폼 엘리먼트의 소그룹을 정의하고, Zend_Form과 활용될 수 있는 Dojo 특화 버전을 작성할 것입니다(중요사항 하나: Zend_Form의 설계는 이미 Dojo와 잘 작동하도록 되어있습니다. 간단히 적절한 엘리먼트 속성attribute를 설정하는 것만으로도 많은 위젯과 클라이언트측 유효성검사를 사용할 수 있습니다.)
  • dojo.data 호환성: dojo.data는 표준 스토리지 인터페이스를 정의합니다; 이 포맷으로 데이터를 제공하는 서비스는 사용자 인터페이스를 위한 고유연성과 동적 컨텐트를 제공하기 위한 다양한 Dojo 기능에서 사용됩니다. 우리는 XmlHttpRequest에 응답하는 dojo.data 호환 자료를 작성할 컴포넌트를 작성할 것입니다; 간단히 데이터를 사용하고 그것과 관련된 메타데이터를 제공하기만 하면 됩니다.
물론, Dojo 대신 다른 Ajax 라이브러리도 Zend 프레임웍과 함께 사용할 수 있습니다. 이번 일이 어떻게 해서 가능했을까요?

두 개의 프로젝트들과 커뮤니티들 사이에는 시너지와 유사성이 많습니다:

  • 라이센스와 IP: 두 프로젝트 모두 매우 비즈니스 친화적입니다.
  • 설계 유사성: "use-at-will(의도할 때 사용)" 아키텍처에 대한 강력한 강조 등의 유사한 철학을 가지고 있습니다.
  • 둘 다 JSON 포맷을 강력히 사용합니다
  • 종합 Ajax 솔루션: Dojo에 다 있습니다
  • 표준: "Dojo는 공개된 표준을 구현할 뿐 아니라 표준을 이끕니다"
  • 커뮤니티와 지원: 강력한 커뮤니티와 그에 대한 지원
에.. 다음은 JSON-RPC 데모의 일부 코드입니다:
[code:js]
<h2>Dojo JSON-RPC Demo</h2>
<input name="foo" type="button" value="Demo" onClick="demoRpc()"/>
<?
$this->dojo()->setLocalPath('/js/dojo/dojo.js')
             ->addStyleSheetModule('dijit.themes.tundra')
             ->requireModule('dojo.rpc.JsonService');
$this->headScript()->captureStart(); ?>
function demoRpc()
{
    var myObject = new dojo.rpc.JsonService('/json-rpc.php');
    console.log(myObject.bar());
}
<? $this->headScript()->captureEnd() ?>

from Dojo and Zend Framework Integration Released on Ajaxian
Posted by 행복한고니 트랙백 0 : 댓글 0

댓글을 달아 주세요