有没有人写过很长很复杂的PHP应用程序?

时间:2008-10-06 02:31:49

标签: php

我很难想象一个超过几百行代码的PHP脚本。看来,对于非持久性环境,基于Web的脚本通常是小块,并且用于将一部分网站提供给最终用户。我想知道人们是否正在使用php开发任何类型的大型,持久性或复杂应用程序,以及您正在研究的是什么。我只为小型网站做过小型项目,所以我不知道可以在更大范围内完成什么。了解您正在使用的库以及您正在集成的其他技术也很好。请赐教,这样我才能开始梦想更大的事情!

10 个答案:

答案 0 :(得分:12)

我会看一些使用PHP的知名开源Web应用程序,以便更好地了解可以实现的目标,以及如何在每个应用程序中使用PHP。优点是,由于它们都是开源的,您实际上可以查看PHP代码以了解各种功能的实现方式。

要看的一些好例子包括:

另请参阅一些流行的框架,了解它们提供的功能类型(这可以让您更好地了解PHP最常用的类型):

答案 1 :(得分:2)

对于我的日常工作,我们运行PHP中的所有内容 - 我们的前端网站,代理和员工的后端,库存,服务器控制界面等。这些都是从新的支持AJAX的Zend Framework应用程序到遗留代码的所有内容我们还没有移植过。最重要的是,我们使用Mantis(PHP内置的错误跟踪),MediawikiphpMyAdmin等内容。

唯一不是PHP的是供应商应用程序,因为供应商喜欢Java。我们拥有的一个ASP.NET应用程序在项目期间实际上被供应商放弃了(实际上并不是对ASP.NET的打击,该应用程序只是一个失控项目的完美定义,并且无论用什么语言编写它都会失败)。

使用成熟的框架,例如Zend FrameworkCodeIgnitorCakePHP,可以在PHP中创建任何内容。

答案 2 :(得分:2)

开发大型项目的最大问题是长期保持可维护性。最初,一个程序开始时都充满了理想的方法和想法,但在我看来,随着时间的推移,保持完整性不会失败。

此外,范围蔓延是你的敌人。你必须尽快统治这一点。

就大型项目而言,我所工作的公司有一些内部项目在不断发展。一个例子是我们的专有网站引擎。它是一个非常庞大的代码库,包括十几个模块(用户管理,调查系统,博客,用户画廊等),使我们能够快速构建我们的客户站点。

我们还制定了自己的内部项目管理计划,以管理客户的工作。

从长远来看,你绝对应该考虑规模。在我所参与的几乎每个项目中,都有一个用户参与的权限/组元素。您可能希望开始考虑其中涉及的可能性和问题,并尝试更复杂的功能。

答案 3 :(得分:1)

MediaWiki是最大的公共PHP应用程序之一,它的代码非常好。 。我知道一些较大的,但它们非常可怕,你通过阅读它们什么也学不到。

答案 4 :(得分:1)

复杂的OpenSource php应用程序有很多。例如,Drupal CMS,它本身可以被视为开发其他网站的平台。

您可以在线浏览源代码:http://cvs.drupal.org/viewvc.py/drupal/drupal/

答案 5 :(得分:1)

威尔科的+1 我有一些软件用于我的一些客户,它是一个CMS,博客,电子商务野兽,代码库是巨大的,但一切都很好地相互配合。

答案 6 :(得分:1)

我的公司致力于教育软件。我们最近开始使用基于Web的内容交付,包括视频和音频,后端使用MySQL完全用PHP编写。我们有两个主要应用程序,一个存在于我们的服务器上,另一个交付给客户。一个时钟约为42,000行代码(使用物理行数),另一个时钟约为68,000行。

我们广泛使用PEAR,最近启动的项目正在使用Zend Framework

答案 7 :(得分:1)

我们在公司使用PHP。 (我们进行在线语言学习:http://www.livemocha.com。你应该去看看这个网站。是的,这是一种无耻的插件,但它也是热门话题。:-))

我不能给你一个确切数量的用户,但我们推出了一段时间的新闻稿,庆祝达到300万大关。随着网络应用的发展,这是一个非常大的规模。

我们构建了CakePHP框架,它基于MVC架构......至少在理论上是这样。在实践中,它们为模型自动生成某些方法,这些方法倾向于将一些模型代码(缓存,决定使用哪个DB)推入控制器。他们在1.2中也有一些本地化问题让我觉得框架的这一部分还没有真正达到成熟。也就是说,我发现CakePHP非常适合整体使用,如果你正在考虑用PHP实现一个大型的Web应用程序,你至少应该看看它。它也提供了一些优秀的文档(google为“CakePHP面包店”)。

答案 8 :(得分:0)

获取CodeIgniter并重建Amazon或Ebay。如果您可以梦想它,您可以使用PHP构建它,但您可能无法维护它,因为它很容易创建有效的错误代码。 PHP.net是你的朋友。无论您使用何种框架,请务必阅读用户指南并告知您。

答案 9 :(得分:0)

我无法相信没人提到过MVC模式。 IMO,它是您可以用来帮助维护大型代码库的最佳方法之一。