我如何构建我的PHP项目?

时间:2011-02-16 03:22:06

标签: php javascript ajax project structure

我即将开始另一个大型PHP项目。这一次,我打算让项目文件夹整洁!所以我有一些关于保持我的项目干净和干燥的问题:

  • 如何区分浏览器应该访问的PHP源文件和PHP文件?换句话说,我如何清楚哪些PHP文件提供输出以及哪些提供函数或类定义?

  • 我打算将我的PHP函数分成静态类,按主题分隔,例如database :: create()或editor :: write()。你对此有何看法?

  • 我打算创建一个PHP文件“core.php”,它将包含在项目中每个单个PHP文件的顶部。此文件将处理身份验证并包含基本功能。想法?

  • 该项目将基于Ajax。这引出了一个问题:我的PHP函数应该是实际的PHP函数,还是应该是需要GET或POST输入的单个PHP文件?我的计划是两者。我为PHP源文件创建了一个文件夹,为PHP“ajax”文件(或其他东西)创建了一个文件夹,后面的文件夹由他们将执行的函数填充文件名。然后,PHP文件将只包含对函数的调用和Ajax的写入输出。想法?

开始这个项目之前的任何其他评论或提示都会很棒!


修改

我可能没有强调基于Ajax的Web应用程序的重要性。 Codeigniter似乎是创建网页或简单Web应用程序(如博客)的绝佳工具。我的申请会有所不同。与uTorrent WebUI非常相似,我的Web应用程序将在一个页面上保持静态,让Ajax执行所有隐藏的操作。使用Codeigniter进行这样的项目似乎有点尴尬。

在考虑这种应用程序的情况下,是否存在不同的架构?

4 个答案:

答案 0 :(得分:3)

您是否考虑使用Codeigniter等框架?您熟悉任何类型的设计模式,例如MVC吗?这两个都有助于规定文件的位置和项目中逻辑的分离。

编辑:Codeigniter使用MVC,这只是一个很好的网络编程模式。查看这两个视频,以获取教程。只有大约30分钟的组合,并且绝对充满了良好的知识,既可以看看他们的框架的工作方式,也可以看看他们的文件夹结构提供的洞察力。

EDIT2:http://codeigniter.com/tutorials

答案 1 :(得分:3)

如果您希望这是一个大型项目,我强烈建议您使用Symfony或Zend之类的许多已建立的框架之一。你会:

  • 大幅减少您必须编写的代码数量
  • 避免组件中的错误
  • 学习最佳实践

但是如果你坚持自己这样做的话。

  

我打算创建一个PHP文件“core.php”,它将包含在项目中每个单个PHP文件的顶部。此文件将处理身份验证并包含基本功能。想法?

我不能强调'不要这样做'。经验丰富的PHP开发人员中有一条规则,即任何具有大型core.php文件的项目都是开发不良的警告标志,应该最好避免。

其次,当谈到数据库摘要时,没有必要重新发明轮子,看看梨MDB2或Doctrine项目。

大量静态类也是构思不佳的一个标志。由于静态类很难测试,因此通常不需要使用静态类。

答案 2 :(得分:1)

为什么没有一个index.php来处理所有的执行,然后有一个.htaccess文件将url指向正确的位置。这意味着您可以让所有人登录并签入一个文件。

然后,您可以在所有其他文件的顶部放置条件,以便不能直接访问它们:

<?php if(FROM_INDEX!="true") die("<b>ACCESS_ERROR</b><br /><br />Please use the main page instead of accessing this file directly.");

我也推荐Codeigniter,因为它已经具有很多这样的功能,并且会大大加快你的开发时间。

答案 3 :(得分:0)

我不确定您正在寻找的系统有多复杂。但是我最近发现了一个可以在网址上运行的小框架。 https://github.com/ivorychicken/sammy

如果你不介意花时间玩它,你可能会把它作为一个起点并建立起来。