1

我有 ZF2 应用程序。我想将它集成到 Metronic Template 中,因为它是一个好看又专业的模板。在 ZF2 Application 中,目录中有 Controller、Form 和 Model:module\application\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();

然而,在“Metronic”表格中处理视图,即:

<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>

所以当我像“Metronic”那样做的时候,就不需要在ZF2目录module\application\src\application中使用Form了。是不是违反了ZF2的规则?或者我应该如何集成这个模板。请提出您的建议。

4

1 回答 1

0

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 创建正确的结构和属性。

于 2017-01-16T12:39:19.600 回答