Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
您觉得PHP框架中的视图实现方便吗?_Php_Frameworks_View_Template Engine - Fatal编程技术网

您觉得PHP框架中的视图实现方便吗?

您觉得PHP框架中的视图实现方便吗?,php,frameworks,view,template-engine,Php,Frameworks,View,Template Engine,现在所有流行的PHP框架都使用自己的视图层实现,该实现基于纯PHP模板和许多帮助程序。我试过其中一些方法,总是发现这种方法会给非常简单的事情带来巨大的复杂性。例如,在Zend框架中,表单和分页使用它们自己的解决方案来定制这些项的外观。助手们重新发明了循环,也提供了相当慢的解决方案,在我看来,整个视图层并不是作为一个部分存在的,但它的许多功能被委托给脚本的其他部分。Symfony和admin generator中也出现了相同的配置问题,在Kohana,我被迫在所有表单上复制相同的代码。PHP真的是

现在所有流行的PHP框架都使用自己的视图层实现,该实现基于纯PHP模板和许多帮助程序。我试过其中一些方法,总是发现这种方法会给非常简单的事情带来巨大的复杂性。例如,在Zend框架中,表单和分页使用它们自己的解决方案来定制这些项的外观。助手们重新发明了循环,也提供了相当慢的解决方案,在我看来,整个视图层并不是作为一个部分存在的,但它的许多功能被委托给脚本的其他部分。Symfony和admin generator中也出现了相同的配置问题,在Kohana,我被迫在所有表单上复制相同的代码。PHP真的是视图层的好选择吗?您是否也觉得这些实现不方便?或者,为什么尽管存在这些问题,它们仍然很好,并且无法被智能模板引擎(我不是说Smarty:)所取代?

还有其他一些模板引擎。然而,我总是发现纯php是最方便的。我只是觉得比较舒服


我不喜欢ZF中的视图帮助程序,因为它通常会使我的代码更加臃肿,而不是更干净。我特别谈论$this->url()helper:)

现在我喜欢PHP,但归根结底,首先,它是一种模板语言,而不是一种通用编程语言。不要反抗。拥抱它

我看过一些不同的MVC框架,比如Symfony、CakePHP和Zend,我很难理解这些例子。通常他们是“有了这17个文件,你就可以制作一个‘Hello world’程序!”哈

存在这样一种情况,即为了it而变得复杂,在出现问题之前解决问题,我还不能确信这些重量级(它们是重量级的)框架真的增加了价值

我更喜欢看电影。这真的是“你自己滚”,但我认为这会导致最精简、最干净的最终结果

我对Smarty也有同样的感觉。SO上的很多人都是Smarty的忠实粉丝,但我觉得你为什么要在你的。。。模板语言

最终,我大部分时间都在编写这种PHP脚本

<?
require 'config.h'; // set up constants, DB connections and so on
page_header('My Page'); // page header, site menu and so on
deny_unregistered(); // security
if (/* user submitted page */) {
  $valid = validate_form(/* validation rules */);
  if ($valid === true) {
    // do db changes
    // redirect user ie POST+REDIRECT+GET
  } else {
    // output error messages
  }
}
?>
// display page
<? page_footer(); ?>

//显示页
通过明智地使用助手函数(例如分页链接),上述内容非常容易阅读和调试。与此车型相比,我更喜欢它:

URL:/index.php?inc=blah

index.php:

<?
require "$inc.php"; // hopefully you sanitize this but so many don't
?>