Development

Documentation/ko_KR/book/forms/1_1/01-Form-Creation (diff)

You must first sign up to be able to contribute.

Changes between Version 12 and Version 13 of Documentation/ko_KR/book/forms/1_1/01-Form-Creation

Show
Ignore:
Author:
withrain (IP: 203.236.3.245)
Timestamp:
03/06/09 09:51:39 (9 years ago)
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Documentation/ko_KR/book/forms/1_1/01-Form-Creation

    v12 v13  
    5454 
    5555setWidgets 메소드는 폼에서 사용할 위젯들을 정의하는데 사용한다. 이 setWidgets 메소드는 키가 필드 이름이고 값이 해당 위젯인 연관(associative)배열을 인자로 받는다. 각 위젯은 sfWidget 클래스로 부터 상속된다. 예제에서는 두 종류의 위젯이 사용되었다.[[BR]] 
    56 (역주: sfWidget 클래스는 심포니 소스의 lib/widget/sfWidget.class.php 안에 정의되어 있습니다) 
    57 sfWidgetFormInput : input 필드 위젯 
     56(역주: sfWidget 클래스는 심포니 소스의 lib/widget/sfWidget.class.php 안에 정의되어 있습니다)[[BR]] 
     57sfWidgetFormInput : input 필드 위젯[[BR]] 
    5858sfWidgetFormTextarea : textarea 필드 위젯 
    5959 
    6969$ php symfony generate:module frontend contact 
    7070}}} 
     71contract 모듈에서 리스팅 1-2에서와 같이 폼 인스턴스를 템플릿으로 전달할 수 있도록 index 액션을 수정한다. 
     72 
     73리스팅 1-2 contract 모듈의 Actions 클래스 
     74{{{ 
     75// apps/frontend/modules/contact/actions/actions.class.php 
     76class contactActions extends sfActions 
     77{ 
     78  public function executeIndex() 
     79  { 
     80    $this->form = new ContactForm(); 
     81  } 
     82} 
     83}}} 
     84 
     85폼을 생성하면 위에서 언급된 configure() 메소드가 자동으로 호출된다. 
     86 
     87우리는 리스팅 1-3 에서와 같이 폼을 나타내기 위한 템플릿을 생성하여야 한다. 
     88 
     89리스팅 1-3 폼 디스플레이 템플릿 
     90{{{ 
     91// apps/frontend/modules/contact/templates/indexSuccess.php 
     92<form action="<?php echo url_for('contact/submit') ?>" method="POST"> 
     93  <table> 
     94    <?php echo $form ?> 
     95    <tr> 
     96      <td colspan="2"> 
     97        <input type="submit" /> 
     98      </td> 
     99    </tr> 
     100  </table> 
     101</form> 
     102}}} 
     103 
     104심포니 폼은 유저에게 정보를 전달하기 위해 위젯들을 관리한다. indexSuccess 템플릿에서 <?php echo $form ?> 라인은 세개의 폼 필드를 디스플레이한다. <form> 태그나 submit 버튼등은 개발자가 추가해 주어야 한다. 처음에는 이것이 어색할 수 있으나 나중에 이것이 유용하며 특히 임베디드 폼을 쉽게 해주는 것을 보게 될 것이다. 
     105 
     106프로토타입 폼을 만들때 <?php echo $form ?> 은 매우 유용하다. 개발자가 비주얼 측면면을 고민하지 않고 비즈니스 로직에 집중하게 해주기 때문이다. 챕터 3 에서 어떻게 폼과 템플릿을 커스터마이징 하는지 설명한다. 
     107 
     108* <?php echo $form ?> 을 사용해서 오브젝트를 나타낼 때 PHP 는 실제로 $form 의 텍스트 표현을 나타낸다. 오브젝트를 스트링으로 변환하기 위해 PHP 는 매직 메소드인 __toString() 를 호출한다. 각 위젯은 오브젝트를 HTML 코드로 변환하기 위해 이 매직 메소드를 구현해야 한다. 즉 <?php echo $form ?> 는 <?php echo $form->__toString() ?>와 동일하다. 
    71109 
    72110 
     111 
     112