为我的学士学位建立cms并需要一些建议

时间:2010-02-20 23:12:49

标签: php content-management-system

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

我无法弄清楚的一件事是我是否应该使用单个文件(例如,index.php将处理所有内容,并将包含所有内容)或者我应该将我的cms分解为几个较小的文件。 / p>

所以我的主要问题是

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

6 个答案:

答案 0 :(得分:3)

如果您使用的是大多数框架,则使用单个入口点或多个入口点变得没有实际意义。例如,CakePHP有一个index.php文件,你最后要做的就是为项目的不同部分定义模型,视图和控制器。我想这些天大多数框架都是这样工作的。

或者,如果你选择推出自己的框架和系统来管理这个,这是因为这是一个学士学位可能是(1)很多额外的工作,但(2)更具启发性和更有启发性,我可以说根据我发现只有一个入口点有用的经验。

  1. 它使您能够拥有设置内容的公共代码路径:诸如启用E_STRICT,E_NOTICE等,以用于调试和可靠性目的。像消毒形式的输入,以解决魔法引用设置。是的,你可以从include 'globals.php'开始,但是:

  2. 将所有内容放在一个位置还可以让您提出标准的文件命名约定和__autoload处理程序,它有助于删除任何includerequire指令,除了也许一个。意味着你可以添加类等,而不必记得更新主文件。

  3. 这完全是主观的,但我发现使用它创建更简单的URL更容易。而/volunteers/communities.php?id=Hedrick_Summit我可以做/volunteers/communities/Hedrick_Summit而不是我更喜欢。

  4. 至于CakePHP的选择,我简单地玩弄了这个框架。我一般不喜欢框架,因为它们通常必须一般,以至于它会导致额外的错误和较慢的页面渲染。当你必须做一些推动框架边界的事情时,你会,你最终会与框架作斗争。

    但公平地说,CakePHP似乎足够且通常设计得很好。我个人对ORM层提出了问题,但那是我努力追求完美,并且实际上尝试在SQL查询中工作。它有一个缓慢的声誉,但除非你想建立下一个Facebook,你应该没事。

答案 1 :(得分:2)

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

答案 2 :(得分:1)

这些是非常主观的问题。

我曾经在PHP中为我的第三年项目编写了一个CMS。

我所做的基本上是:

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

答案 3 :(得分:0)

答案是肯定的是在多个目录中使用多个文件,当你需要调试或扩展时,它会在全世界产生重大影响。

答案 4 :(得分:0)

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

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

不要试图简单地重新发明轮子。即使这只是一个Uni任务,也可以尝试在CMS上添加新内容。有些东西会让我用你的而不是其他的CMS。

答案 5 :(得分:0)

  

是cakePHP的不错选择吗?

这是一个非常主观的问题,因此无法回答。但是,如果你想体验架构(比如将前端控制器与页面控制器进行比较),你可能应该从头开始构建更多,因为很多这些决策已经由所述框架的编写者做出了(还有很多其他的)框架,为此事。)。

  

为一切使用一个文件或使用多个文件?

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

  

你有建设使用PHP或任何最佳实践的建议更复杂的网站,任何好的一般性的建议(我真的不明白,为什么他们不教我们这种学校)

有数十亿的CMS。找到其中的一些并分析它们,以了解它们的作用以及它们之间的区别。试图对不同方法进行分类并比较它们的优势/劣势可能会成为一篇好文章。