새로운 프레임 워크의 Form 폴더를 Zend Framework 1의 Form 폴더와 교환하려고 시도했지만 작동하지 않았습니다.Zend Framework 1에서 Zend Form 2를 사용할 수 있습니까?
또한 ZF1이 라이브러리에 새로운 양식 2.0 폴더를 가리 키려고했지만 그 중 하나를 작동시키지 못했습니다.
누군가 어떻게하는지 알고 있습니까?
새로운 프레임 워크의 Form 폴더를 Zend Framework 1의 Form 폴더와 교환하려고 시도했지만 작동하지 않았습니다.Zend Framework 1에서 Zend Form 2를 사용할 수 있습니까?
또한 ZF1이 라이브러리에 새로운 양식 2.0 폴더를 가리 키려고했지만 그 중 하나를 작동시키지 못했습니다.
누군가 어떻게하는지 알고 있습니까?
ZF1과 함께 ZF2 구성 요소를 사용할 수 있으며 대부분의 경우 비교적 간단합니다.
library
및 유형에 당신이 당신의 라이브러리 경로에 zf2를 복제하는 데 필요한 모든 때문에 CD의
첫째 : -
git clone https://github.com/zendframework/zf2.git Zf2
이 라이브러리 아래 Zf2 폴더를 생성합니다.
이제 zf2 파일을 찾는 방법을 자동 로더에 알려줘야합니다. 부트 스트랩에 다음을 추가하십시오. -
protected function _initZf2()
{
$autoloader = Zend_Loader_Autoloader::getInstance();
$autoloader->pushAutoloader(new App_Loader_Autoloader_Zf2(), 'Zend');
}
다음으로 오토로더를 생성합니다. 나는이 라인 application.ini에 포함되어 App_라는 네임 스페이스를 가지고있다 -
autoloadernamespaces[] = "App_"
을 나는 앱/로더/자동 로더/Zf2.php에서 자동 로더 생성 : - 이제
class App_Loader_Autoloader_Zf2 implements Zend_Loader_Autoloader_Interface
{
public function autoload($class)
{
if(strstr($class, '\\')){
$zf2Class = explode('\\', $class);
$path = 'Zf2/library/' . implode('/', $zf2Class) . '.php';
include_once $path;
}
}
}
을 zf1은 올바른 네임 스페이스가 제시 될 때 zf2 클래스를 찾을 위치를 알고 있습니다. 우리는 /, Zf2.php을 예를 들어, 응용 프로그램/양식 양식을 만들 수 있습니다 - 이제
use Zend\Form\Form;
use Zend\Form\Element;
use Zend\Form\Element\Text;
class Application_Form_Zf2 extends Form
{
public function prepareElements()
{
$this->add(array(
'name' => 'name',
'options' => array(
'label' => 'Your name',
),
'attributes' => array(
'type' => 'text',
),
));
}
}
, 컨트롤러, 당신은 인스턴스화 할 수있는 zf2 양식 : -
$this->view->form = new Application_Form_Zf2();
$this->view->form->prepareElements();
우리가를 사용하는 것처럼 ZF1보기, 우리는 자동으로 ZF2 양식을 렌더링하는 데 사용되는 view helpers에 액세스 할 수없는, 그래서 우리는 우리가 필요로하는 명시 적으로보기에 그것들을 초기화해야한다 : -
$form = $this->form;
$formHelper = new \Zend\Form\View\Helper\Form();
$formText = new \Zend\Form\View\Helper\FormText();
$formLabel = new \Zend\Form\View\Helper\FormLabel();
echo $formHelper->openTag($form);
echo $formLabel($form->get('name'));
echo $formText($form->get('name'));
echo $formHelper->closeTag($form);
이 출력됩니다 FOL을 lowing의 HTML : -
<form action="" method="POST">
<label for="name">Your name</label>
<input name="name" type="text" value="">
</form>
이 방법은 양식의 출력을 통해 당신에게 컨트롤을 많이 제공하고 내가 이상 떨어진 ZF1보기 도우미에서 PHTML 파일에 넣어 한 코드의 일부를 숨기고 추천 할 것입니다.
나는 'ZF1'에서 'ZF2에서'라고 말하고 싶다고 생각합니다. – markus
감사합니다. – vascowhite
답장을 보내 주셔서 감사합니다 ... 월요일에해볼 게요. :) – Samuele
나는 그것이 불가능하다고 생각합니다! – RDK
ZF의 모든 구성 요소가 느슨하게 결합되어 있기 때문에 불가능하다고 생각하지 않습니다. 따라서 모든 구성 요소는 별도로 사용할 수 있습니다. 그러나 완전히 다시 작성 되었기 때문에 ZF1 코드를 사용하여 ZF2 양식 구성 요소에 액세스 할 수 없습니다. 또한보십시오 : http://framework.zend.com/manual/2.0/en/ref/overview.html –