我现在开始使用CakePHP从头开始编写自己的CMS(或者我应该使用别的东西?)来获得我的学士学位。我正在考虑需要做的各种事情。
我无法弄清楚的一件事是我是否应该使用单个文件(例如,index.php将处理所有内容,并将包含所有内容)或者我应该将我的cms分解为几个较小的文件。 / p>
所以我的主要问题是
答案 0 :(得分:3)
如果您使用的是大多数框架,则使用单个入口点或多个入口点变得没有实际意义。例如,CakePHP有一个index.php文件,你最后要做的就是为项目的不同部分定义模型,视图和控制器。我想这些天大多数框架都是这样工作的。
或者,如果你选择推出自己的框架和系统来管理这个,这是因为这是一个学士学位可能是(1)很多额外的工作,但(2)更具启发性和更有启发性,我可以说根据我发现只有一个入口点有用的经验。
它使您能够拥有设置内容的公共代码路径:诸如启用E_STRICT,E_NOTICE等,以用于调试和可靠性目的。像消毒形式的输入,以解决魔法引用设置。是的,你可以从include 'globals.php'
开始,但是:
将所有内容放在一个位置还可以让您提出标准的文件命名约定和__autoload
处理程序,它有助于删除任何include
或require
指令,除了也许一个。意味着你可以添加类等,而不必记得更新主文件。
这完全是主观的,但我发现使用它创建更简单的URL更容易。而/volunteers/communities.php?id=Hedrick_Summit
我可以做/volunteers/communities/Hedrick_Summit
而不是我更喜欢。
至于CakePHP的选择,我简单地玩弄了这个框架。我一般不喜欢框架,因为它们通常必须太一般,以至于它会导致额外的错误和较慢的页面渲染。当你必须做一些推动框架边界的事情时,你会,你最终会与框架作斗争。
但公平地说,CakePHP似乎足够且通常设计得很好。我个人对ORM层提出了问题,但那是我努力追求完美,并且实际上尝试在SQL查询中工作。它有一个缓慢的声誉,但除非你想建立下一个Facebook,你应该没事。
答案 1 :(得分:2)
使用单个文件“入口点”可以在将请求路由到各种逻辑时提供更大的灵活性 - 您只需要担心过滤请求链中的一个位置。
答案 2 :(得分:1)
这些是非常主观的问题。
我曾经在PHP中为我的第三年项目编写了一个CMS。
我所做的基本上是:
答案 3 :(得分:0)
答案是肯定的是在多个目录中使用多个文件,当你需要调试或扩展时,它会在全世界产生重大影响。
答案 4 :(得分:0)
我建议你记住MVC(模型 - 视图 - 控制器)模式。 它是CMS领域中最常用(也经常被误用)的模式之一。
另外,不要害怕看别人在做什么。阅读Joomla,Drupal和其他开源CMS的代码。请查看与PHP不同的语言,以全面了解可能性。
不要试图简单地重新发明轮子。即使这只是一个Uni任务,也可以尝试在CMS上添加新内容。有些东西会让我用你的而不是其他的CMS。
答案 5 :(得分:0)
是cakePHP的不错选择吗?
这是一个非常主观的问题,因此无法回答。但是,如果你想体验架构(比如将前端控制器与页面控制器进行比较),你可能应该从头开始构建更多,因为很多这些决策已经由所述框架的编写者做出了(还有很多其他的)框架,为此事。)。
为一切使用一个文件或使用多个文件?
它被称为前端控制器(单入口点)或页面控制器(多个入口点)。获取M. Fowler的企业应用程序架构模式的副本。
你有建设使用PHP或任何最佳实践的建议更复杂的网站,任何好的一般性的建议(我真的不明白,为什么他们不教我们这种学校)
有数十亿的CMS。找到其中的一些并分析它们,以了解它们的作用以及它们之间的区别。试图对不同方法进行分类并比较它们的优势/劣势可能会成为一篇好文章。