html,php:需要建议如何简化工作的html代码

问题描述

我想将HTML编写为PHP函数

例如

function input_textarea($inputid,$lablevalue,$materializeicon){ 
    echo '
        <div class="input-field">
            <textarea id="'.$inputid.'" name="'.$inputid.'" dir="rtl" class="materialize-textarea right-align" cols="20" rows="20"></textarea>
            <label for="'.$inputid.'">'.$lablevalue.'</label>
            <i class="material-icons prefix right">'.$materializeicon.'</i>
        </div>  
        ';
}//end echo  

我在以下几个文件上运行它:

<?PHP input_textarea('description','Put item desctiption','message') ?>

还是问ho进行改进,还是有什么更好的方法

一个将区域分为2个部分的实例(在Materialize中)

function row2cols_start($leftside){
            
    echo '
       <div class="row"><!-- row start//-->
        <div class="col s'.$leftside.'">';
}

function row2cols_middle($leftside){
    $rightside=12-$leftside;
    echo '
        </div>
        <div class="col s'.$rightside.' ">';
}

function row2cols_end($rightside){echo '
        </div> 
        </div><!-- row end//-->';
}

执行者

<?PHP row2cols_start(8); ?>
<div><!-- row start//-->
text1
</div><?PHP row2cols_middle(8); ?>
<div><!-- row middle//--> 
text2
</div><?PHP row2cols_end(8); ?>
<!-- page row end//-->

看起来更好,但记住您设置的所有内容仍然很复杂

我需要一些简化的方法

解决方法

用PHP编写模板是一种不好的做法。您应该尝试使用twig之类的模板引擎(PHP最常用的模板引擎之一,但还有许多其他的模板引擎)。

使用细枝,您可以将宏用于重复使用的片段。还有许多其他功能,例如,值的转义,模板层次结构,包括……,甚至可以消除将所有内容放在单独的函数中的必要。

您的模板可能如下所示:

{% extends "layout_base.html.twig" %}
{% import "forms.html" as forms %}

{% block content %}
    <div class="row"> 
        <div class="col s8">
            text 1
        </div>
        <div class="col s8">
            {{ forms.textarea('description','Put item desctiption','message') }}
        </div>
    </div>
{% endblock %}

这将增强模板的可读性,并防止将业务逻辑放入模板中。

,

如果您真的只想使用PHP,请查看对模板真正有用的alternate syntax for control structuresshort tags

<div class="col s8">
    <?php if(!empty($user)): ?>
        Welcome <?= $user ?>!
    <?php endif; ?>
</div>

<div class="col s8">
    <?= input_textarea('description','message') ?>
</div>

tl; dr:短标签是编写<?php echo的便捷方法,控制结构的备用语法消除了许多花括号。