【问题标题】:html, php: Need suggestions how simplified the working html codehtml, php:需要建议如何简化工作的 html 代码
【发布时间】:2020-08-18 15:10:24
【问题描述】:

我想把 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 改进,或者有什么更好的方法?

另一个将区域分成两部分的示例(在 Materialise 中)

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

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

我需要一些想法来简化它

【问题讨论】:

  • 停下!你做错了。了解模板
  • 有什么办法可以简化吗?
  • @legopart 是的,模板。

标签: php html function structure echo


【解决方案1】:

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

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

您的模板可能如下所示:

{% 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 %}

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

【讨论】:

  • 这种语言在这一点上对我来说太复杂了 :(,我在服务器上安装东西确实有问题(我不知道如何)
【解决方案2】:

如果您真的只想使用 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', 'Put item desctiption', 'message') ?>
</div>

tl;dr:短标签是编写&lt;?php echo 的便捷方式,控制结构的替代语法删除了很多花括号。

【讨论】:

    猜你喜欢
    • 2014-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 2013-01-14
    • 1970-01-01
    相关资源
    最近更新 更多