Интеграция шаблона Metronic в приложение ZF2

У меня есть приложение ZF2. Я хочу интегрировать его в шаблон Metronic, потому что это красивый и профессиональный шаблон. В приложении ZF2 есть контроллер, форма и модель внутри каталога: модуль\приложение\src\application.

Формы обрабатываются в Form, и мы просто вызываем их из представления, то есть:

echo $this->form()->openTag($form);
echo $this->formLabel($form->get('email'));
echo $this->formElement($form->get('email'));

echo $this->formLabel($form->get('password'));
echo $this->formElement($form->get('password'));

echo $this->form()->closeTag();

Однако в «Метронике» формы обрабатываются с учетом того, что:

<form class="login-form" action="index.html" method="post">
<div class="form-group"> 
        <label class="control-label visible-ie8 visible-ie9">Username</label>
        <div class="input-icon">
            <i class="fa fa-user"></i>
            <input class="form-control placeholder-no-fix" type="text" autocomplete="off" placeholder="Username" name="username"/>
        </div>
    </div>
    <div class="form-group">
        <label class="control-label visible-ie8 visible-ie9">Password</label>
        <div class="input-icon">
            <i class="fa fa-lock"></i>
            <input class="form-control placeholder-no-fix" type="password" autocomplete="off" placeholder="Password" name="password"/>
        </div>
    </div>
</form>

Поэтому, когда я делаю это как «Метроник», нет необходимости использовать форму внутри каталога ZF2 module\application\src\application. Это противоречит правилам ZF2? Или как мне это сделать, чтобы интегрировать этот шаблон. Дайте свои предложения, пожалуйста.


person Skylink    schedule 15.01.2017    source источник


Ответы (1)


Zend Framework 2 и, в еще большей степени, 3 являются модульными. Нет жестких и быстрых правил. Если вы хотите использовать только часть MVC, вы можете. Если вы считаете, что вам будет полезен модуль формы, вы можете его использовать.

Если вы собираетесь использовать только определенные части фреймворка, убедитесь, что вы не вытаскиваете дополнительные зависимости, включив только те части, которые вам нужны, в файл composer.json, т.е.

Хорошо: composer.json

    "require": {
        "php": "^5.6 || ^7.0",
        "zendframework/zend-component-installer": "^1.0 || ^0.3 || ^1.0.0-dev@dev",
        "zendframework/zend-skeleton-installer": "^1.0 || ^0.1.3 || ^1.0.0-dev@dev",
        "zendframework/zend-mvc": "^3.0.1",
        "zfcampus/zf-development-mode": "^3.0"
},

Плохо: composer.json

    "require": {
        "php": "^5.6 || ^7.0",
        zendframework/zendframework
    },

Если вы хотите использовать модуль формы, вы можете сделать это, написав свои собственные классы помощников представления формы и зарегистрировав их следующим образом:

public function getViewHelperConfig() {
    return array(
        'invokables' => array(
            'element' => 'YourNamespace\Form\View\Helper\MetronicElement',
        ),                
    );
}

Я ничего не знаю о Metronic, поэтому не уверен, будет ли это полезно / осуществимо. Также не уверен, сколько работы это будет, но это позволит вам создать правильную структуру и атрибуты для HTML.

person Purple Hexagon    schedule 16.01.2017