【问题标题】:Argument for PHP vs. DWTPHP 与 DWT 的争论
【发布时间】:2011-12-15 12:12:03
【问题描述】:

我今天与我的经理“讨论”了使用 PHP 包含和函数作为模板来更快、更有效地构建网站的优点。他多年来一直在使用 Dreamweaver 模板,并认为它确实是最好的方法。我想开始使用一些不同且更有效的方法来创建 Web,因为我们需要更快地完成我们的项目。我想详细了解什么会使 Dreamweaver dwts 比使用代码完成相同的任务更好,反之亦然。

他的理由是:

  1. 当您更改 dwt 文件上的链接时,它会更改由该 dwt 制作的每个页面的链接。
  2. 即使您在目录中移动页面,它也会保留指向图像的链接
  3. 公司里的每个人都应该做一种方式,这就是他选择的方式(我们两个人,一个刚入门的人需要从头学习网页设计,他打算教她dwt方法)
  4. 如果您编辑使用 dwt 制作的网站,则无法更改模板中的任何内容(显示为灰色),这样更安全
  5. 如果他使用 dwt 构建站点,而我使用 PHP 包含来构建站点,我们将无法编辑彼此的站点。它到处都是。当我们将来有新员工时,它会变得非常疯狂,如果他们不在办公室,人们将无法更改其他人的网站。

这些天我一直在研究 PHP,并且对它在创建动态页面方面的强大功能感到兴奋。引发此“讨论”的相关站点或多或少是静态的,因此 dwt 可以正常工作。但是,我想稍微伸展一下翅膀,随着页面的增长,代码变得非常混乱。所以我砍掉了页眉、页脚和侧边栏,并将它们带入到所有带有 php 包含的页面中,并使用在页眉中回显的变量为每个页面动态分配标题、元数据和描述。原因我更喜欢这个:

  1. 它更干净。如果每个页面都包含页眉和页脚的所有数据,以及 Dreamweaver 在其中抛出的额外标签,那么我必须筛选所有内容以找到我需要的位置。
  2. 这样更安全。这有点像上述 dwts 安全的原因,除了我在 Coda 等文本编辑器中进行所有代码编辑。因此,有时我不小心删除了受 dwt 保护的代码行,因为这些规则仅适用于 Dreamweaver。如果我看不到它,我无法切断部分标题。顺便说一句,这样可以更轻松地识别错误。
  3. 很现代。当我看到我欣赏的设计师和设计公司制作的精彩页面时,我会浏览源代码。我从未见过 dwt 标签。我相信通过使用 PHP 动态抓取文件并执行其他任务,让我不必在每个页面上浏览和更改某些内容,生活会变得更轻松,并使事情保持精简并与当前的 Web 趋势和标准保持同步。
  4. 很简单。这应该在列表的顶部。就像我说的,我们必须培训一个新人如何为网络创作。对她来说,学习一行简单的 PHP 并了解该语言的工作原理不是更好吗,而不是仅仅为了保持她的工作准确而学习一整段(不完全是用户友好的)软件和其他人一样吗?在这一点上,我相信 PHP 是网页设计师武器库中的一个强大工具,为了统一而阻止她学习它是一种罪过。
  5. 速度很快。我是否误以为带有页眉和页脚的页面构建的加载速度比包含所有内容的大页面要快?还是仅在使用 AJAX 动态加载正文时才适用?

我在 Google 和 Stack Overflow 上就这个主题进行了广泛搜索,这是我能找到的最相关的文章:

Why would one use Dreamweaver Templates over PHP or Javascript for templating?

答案很有帮助,但我真的很想更详细地了解为什么我们不应该切换到更简单且更有潜力的新方法。我的经理坚持说“结果是一样的,所以如果没有什么让我说,‘哇哦,这太棒了,好多了!’,那么我们就应该保持现在的状态。”

(对于这个问题的长度,我深表歉意,但指南要求我尽可能具体。)

【问题讨论】:

  • 我个人反对DW的理由是:专有产品锁定;生成代码的质量通常很差;网站对于所见即所得的工具来说太复杂了;如果你不使用 DW 的 WYSIWYG 功能,它并不是最好的编辑器。我尽可能远离 DW。话虽如此,您可以在 DW 中制作体面的网站。如果这对您的公司来说是最有效的方式,那就去吧。没有绝对的答案。
  • 关于 PHP 的最后一点是错误的。 PHP 在服务器端运行,完成后返回 HTML。因此,就 Web 浏览器而言,所有包含都将进入同一个 HTML 文档。由 DWT 完成的静态页面要快得多(对于“很多”的某些定义)。
  • @EmilVikström:明白了,这就是为什么我问“我是不是弄错了......”。我怀疑是这种情况,但你已经为我澄清了。谢谢!这仍然留下了实际创建的问题,但现在我知道了客户端加载速度。干杯!
  • 鉴于 PHP 是一种合法的、独立于平台的、服务器端编程语言,而 DWT 只是一种专有方法来维护单独的每个页面的 html 文件(一种 Web 开发方法,它本身很不方便,而且开始时过时......)。是的,PHP 的 include() 很好,但在涉及 PHP 的可能性时,它甚至连冰山一角都算不上。问题是,我不知道您究竟需要 PHP 提供哪些功能,哪些功能与您相关,哪些不相关。
  • 梦想...什么?没想到 DreamWeaver 还存在。 WOAH .. How You Remind Me, Nickelback 在我上次听说 DW 时很受欢迎。我知道这条评论没有用...但只想对怀旧的感觉表示感谢..

标签: php templates dreamweaver dwt


【解决方案1】:

我会说使用 DWT 模板而不是 PHP 确实有一些优势。

  • 它不需要任何额外的服务器端进程,如 PHP 来处理服务器上的文件。
  • 您可以将所有文件作为 .html 文件而不是 .php 文件提供给用户,但我怀疑可以隐藏 .php 扩展名。为什么任何用户都应该看到 .html 以外的任何内容?
  • 您不必学习 PHP 语法/编程。确实,您可以使用 PHP 做更多的事情,而不是普通的 .dwt 文件,但是对于普通的模板化 .dwt 文件可以同样干净。
  • .dwt 文件不属于锁定技术。该功能也由其他网络编辑器实现,例如Microsoft Expression Web。

【讨论】:

  • 感谢您提到 DWT 没有被锁定!我来这里是为了决定是否为我在 Expression Web 4 中制作的网站使用 PHP 或 DWT。我不知道其他编辑器支持它,但我确信有一些。虽然我不同意扩展位。为什么用户需要看到任何扩展?许多许多网站都隐藏了扩展,用户似乎更喜欢这样。但是如果你不小心,有些人可以攻击 PHP,如果它只是 DWT 就无法攻击。
【解决方案2】:

就像我在 cmets 中所说的那样,如果不知道您正在使用的具体网站是什么,就很难判断哪些 PHP 功能最重要。但是,我可以尝试描述我正在处理的最简单的网站类型,以及 PHP 在何处以及如何派上用场。如果您使用更复杂的东西,对编程语言的需求可能只会增加。

简单的网站可能有几个不同的页面,其中包含文本和图像。我假设没有任何交互(即没有查询表格),没有大量结构化数据(即没有产品目录),每个页面都使用一个设计模板,没有任何差异。这是典型的结构:

  • 一个 PHP 文件 (index.php) 用于处理各种 php-ish 内容
  • 一个设计文件(例如 template.php),用于存储所有 html 风格的内容(包括页眉、页脚等。基本上所有的 html 都带有文本和菜单的占位符)
  • 网站 CSS 的一个 CSS 文件
  • 大部分文本都存储在数据库中,或者(最坏的情况)只是 txt 文件。菜单(导航)也存储在数据库中
  • 包含所有所需图像的图像文件夹

这里的主要特点是:

  • 简单。您只有真正需要的文件和代码才能保持井井有条和清晰
  • 可重用性。您基本上可以复制/粘贴您的 php 代码,几乎不需要更改新的类似网站
  • 没有任何重复。
  • 数据和设计分离。想更改文本,修正错别字吗?您无需接触设计 (html) 文件即可完成此操作。想为您的网站进行全新的设计吗?您甚至可以在不知道这些文本是什么或保存在哪里的情况下执行此操作。
  • 就像 deceze 所说,没有锁定。使用您喜欢的任何软件。 (包括 Dreamweaver)

PHP 负责获取文本、菜单、设计并将它们全部呈现到网页中。如果网站使用超过 1 种语言,PHP 代码会为访问者选择的语言选择正确的文本。

如果文本存储在数据库中,您甚至不需要记事本和 ftp。您只需要,即 phpMyAdmin(存储在服务器中),因此您可以直接连接到数据库并仅使用 Web 浏览器编辑您喜欢的任何文本;来自世界任何地方。 (我假设没有真正的 CMS)。如果您需要再添加一个页面,请使用 myAdmin 和浏览器连接到数据库,输入 1 种或多种语言的页面名称(菜单),输入新页面的文本(1 种或多种语言),完成!创建新页面,将名称放在菜单中,为您生成所有超链接。如果您需要删除页面,请连接到数据库并单击删除。如果您需要隐藏页面一段时间(即在发布前进行校对),请连接到数据库并取消选中“已发布”框。

当然,这一切不仅仅来自于使用数据库,您还需要使用 PHP 来编写这些功能。根据经验,这可能需要大约 1 - 3 个小时,并且代码可以完全重复用于将来的每个类似网站。基本上,您只需复制/粘贴 php 文件,复制/粘贴数据库表,在数据库中输入新文本和菜单,将占位符放入您的 html 文件并完成!创建了全新的网站。

这立即使 DWT 的大部分推理变得无关紧要。您不会移动文件,因为您只有一个 html 文件并且没有目录,您不需要灰显模板,因为文本/图像(内容)和模板甚至不在同一个文件中,没有更改链接之类的事情在 dwt 文件中,因为是 PHP 动态生成它们(这些不是指向真实 html 文件的真正链接,而是带有参数的链接,以告诉 PHP 必须呈现哪个页面。因为请记住我们只有 1 个文件)。底线是,并排比较两者的特征就像比较剑与机枪的特征。在机枪的情况下,刀片概念的锋利度和长度是没有意义的;而一生的剑用户在尝试使用机枪之前不会真正理解速度和口径的含义。然而,虽然你无法一一比较它们的功能,但没有人会因为某种原因将剑带入枪战:)

至于#3,目前使用 PHP 的人比使用 DWT 的人多得多(以防您将来需要更多员工,或者其他人以后需要使用您的网站等)至于#5,您可以像编辑 DWT 网站一样使用 Dreamweaver 编辑 PHP 网站。

这只是我的想法。我在午休时间写了这篇文章,所以我可能忘记或错过了很多东西。我希望您也能通过详细的 DWT 与 PHP 比较得到正确的答案。

【讨论】:

  • @Sejanus 哇。我非常感谢你从午餐时间抽出时间来写这篇文章。刚才我试着对你高五,但这只是让我的展示变得肮脏。与我的经理开始对话的情况是我使用 PHP 的 include() 为一个杂乱的站点制作了一个“模板”。我说“模板”只是将页眉、页脚和侧边栏等部分与主要代码分开以便于更新等。但是你是对的,PHP 比这更深,你的描述让地狱兴奋我想了解更多。
  • 出于好奇,Sejanus,我一直在寻找好地方来学习 PHP 中更高级的模板制作技术,就像你描述的过程一样,但还没有找到类似的东西。我认为我没有使用正确的搜索词。你认为你能指出我可以研究 PHP 使用领域的大致方向吗?再次感谢!
  • @DesignUtensil:你可以尝试谷歌搜索模型-视图-控制器(MVC)架构。不过,它确实需要一些 PHP 知识。如果您是初级程序员,我建议您先学习 PHP 基础知识(从 mySQL 或其他数据库存储/检索数据、条件、编写自己的函数、OOP 等)。在此过程中,您会发现许多不同的方法可以使模板更高效,而不仅仅是包含“header.html”;别管那个 DWT 废话了。
【解决方案3】:

您根本无法将 PHP 与 DWT 进行比较。
PHP 是一种编程语言,其中模板只是它众多功能之一,而 DWT 只是用于构建简单网页的愚蠢的专有系统。

实际上没有什么可比较的。

【讨论】:

  • 首先,它不是专有的。其次,选择 PHP 作为网站的基础是因为它非常擅长模板化,并且选择如何模板化网站是需要在工作开始之前决定的主要步骤。 PHP 确实有更多功能,但在模板能力方面肯定有一些可比较的地方。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-20
  • 1970-01-01
  • 1970-01-01
  • 2015-03-28
  • 2014-03-18
  • 2021-06-23
  • 1970-01-01
相关资源
最近更新 更多