【问题标题】:Building cms for my bachelor degree and need some advice为我的学士学位建立 cms 并需要一些建议
【发布时间】:2010-02-20 23:12:48
【问题描述】:

我目前正开始使用 CakePHP(或者我应该使用其他东西吗?)从头开始编写我自己的 php CMS 以获得我的学士学位。我正在考虑需要做的各种事情。

我想不通的一件事是我是否应该使用单个文件(例如,index.php 将处理所有内容,并将包含所有内容)或者我应该将我的 cms 分解为几个较小的文件。

所以我的主要问题是

  • cakePHP 是个不错的选择吗?
  • 使用一个文件处理所有事情还是使用多个文件?
  • 您对使用 php 构建更复杂的网站有什么好的一般建议或任何最佳实践建议(我真的不明白他们为什么不在学校教我们这个)

【问题讨论】:

    标签: php content-management-system


    【解决方案1】:

    如果您使用大多数框架,使用单个入口点或多个入口点将成为一个有争议的问题。例如,CakePHP 有一个 index.php 文件,您最终所做的只是为项目的不同部分定义模型、视图和控制器。我想现在大多数框架都是这样工作的。

    或者,如果您选择推出自己的框架和系统来管理它,考虑到这是学士学位,可能 (1) 需要做很多额外的工作,但 (2) 更具启发性和指导性,我可以说根据我发现单一入口点很有用的经验。

    1. 它使您能够拥有用于设置内容的通用代码路径:启用 E_STRICT、E_NOTICE 等以用于调试和可靠性目的。诸如清理表单输入以解决魔术引号设置之类的事情。是的,您可以通过include 'globals.php' 执行此操作,但是:

    2. 将所有内容放在一个地方还可以让您提出标准文件命名约定和__autoload 处理程序,这将有助于删除任何includerequire 指令,可能除了一个。意味着您可以添加类等,而无需记住更新主文件。

    3. 这完全是主观的,但我发现使用它创建更简单的 URL 更容易。我可以用/volunteers/communities/Hedrick_Summit 代替/volunteers/communities.php?id=Hedrick_Summit,这让我更满意。

    关于 CakePHP 的选择,我已经简单地玩弄过这个框架。我一般不喜欢框架的地方是它们通常必须过于通用,以至于导致页面渲染更加笨拙和速度变慢。当你必须做一些突破框架边界的事情时,你会,你最终会与框架作斗争。

    但公平地说,CakePHP 似乎已经足够了,而且设计得很好。我个人对 ORM 层提出了质疑,但那是我力求完美,实际上是在尝试在 SQL 查询中工作。它以速度慢着称,但除非您尝试构建下一个 Facebook,否则应该没问题。

    【讨论】:

      【解决方案2】:

      在将请求路由到各种逻辑时,使用单个文件“入口点”可为您提供更大的灵活性 - 您只需担心过滤请求链中的一个位置。

      【讨论】:

        【解决方案3】:

        这些都是非常主观的问题。

        我曾经为我的第三年项目从头开始用 php 编写了一个 CMS。

        我所做的基本上是:

        • 检查其他人是如何做到的(Plume CMSCMSmadesimple 是一个好的开始)
        • 我没有使用任何框架(这是一项要求)
        • 是的,我使用带有多个参数的 index.php 来处理不同的页面。

        【讨论】:

        • 我也会从现有的 cmses 中获得一些灵感。幸运的是,我可以使用任何框架。直到今天,我还使用 inex.php 作为我的项目的入口点......但我只是想知道其他人对此有何看法和/或是否有更好的方法
        【解决方案4】:

        答案是肯定的,在多个目录中使用多个文件,当您需要调试或扩展时,这将大有不同。

        【讨论】:

        • 哦,关于 cackePHP,我个人不会使用任何框架,很难了解 PHP 是如何使用框架实际工作的,这为您完成了大部分基础工作。
        • 因为我非常了解 php 的工作原理(在其中编程了 3 年),而且我从未使用过任何类型的框架,我想尝试一下,看看它会如何工作
        【解决方案5】:

        我建议您牢记MVC(模型-视图-控制器)模式。 它是 CMS 领域中最常用(也经常被误用)的模式之一。

        另外,不要害怕看别人在做什么。阅读来自 Joomla、Drupal 和其他开源 CMS 的代码。查看不同于 PHP 的语言,全面了解各种可能性。

        不要试图简单地重新发明轮子。即使这只是一项 Uni 作业,也请尝试在您的 CMS 上添加一些新内容。会促使我使用你的而不是其他 CMS 的东西。

        【讨论】:

        • 由于各种原因(大多数软管支持 php 等),我想坚持使用 php,当然我不会重新发明轮子。但正如你所说,我想创造一些可能会吸引人们的东西。我也计划将它作为开源发布
        【解决方案6】:

        cakePHP 是一个不错的选择吗?

        这是一个非常主观的问题,因此无法回答。但是,如果您想尝试架构(例如,将前端控制器与页面控制器进行比较),您可能应该从头开始构建更多内容,因为上述框架的作者已经做出了很多决定(还有很多其他的框架)。

        使用一个文件处理所有事情还是使用多个文件?

        它被称为前端控制器(单个入口点)或页面控制器(多个入口点)。获取 M. Fowler 的企业应用程序架构模式的副本。

        您对使用 php 构建更复杂的网站有什么好的一般建议或任何最佳实践建议(我真的不明白他们为什么不在学校教我们这个)

        有数十亿个 CMS。找到其中一些并分析它们以找出它们的作用以及它们之间的不同之处。尝试对不同的方法进行分类并比较它们的优势/劣势可能会成为一篇好论文。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2022-07-31
          • 1970-01-01
          • 2021-12-11
          • 2012-04-22
          • 2017-09-28
          • 2014-08-30
          • 2011-01-17
          • 2012-12-09
          相关资源
          最近更新 更多