2010-05-27 48 views
1

我目前有一个AJAX沉重(几乎所有)Intranet Web应用程序的业务。它高度模块化(组件和模块ala Joomla),有大量的文件夹和文件。根据最后一次计数,有80-100个不同的查看页面(每个页面都有自己独特的意义),并且在不久的将来可能会增加。PHP OO vs使用AJAX的过程

我基于围绕命令和屏幕的设计,客户端请求命令并发送所需数据并接收通过屏幕上的javascript显示的数据。

这就是说,通常有两种类型的文件,一个带html的显示文件,javascript和一些用于模板化的php。还有一个php后端文件,其中包含一个单一的switch语句,其中包含诸如保存,更新和删除以及其他功能等操作。几个页面/屏幕可能会使用相同的php后端。

最近,我一直在添加一个服务器端撤消功能,需要我重用一些代码。所以,我有机会尝试OOP,但我注意到一些函数非常简单,创建一个类,检索所有数据,然后更新数据库上的所有相关行看起来对于一个简单的动作来说是过度的,因为速度非常关键。另外我注意到整个文件中只有一个类。

那么,如果整个php是一个类,该怎么办。所以,在创建类和方法之间,以及使用全局变量和函数之间。哪个更快?

+0

你可以发布样本类吗? – Gutzofter 2010-05-27 05:33:43

回答

1

这个问题是错误的。问题不在于速度,而在于代码组织。只使用全局函数和变量以及其中的很多变量,避免命名冲突并使所有事情保持组织化将变得越来越困难。类可以帮助你打包和抽象事物。执行速度是次要问题,并且在大多数情况下,如果完全不会显着提高。尽管发展速度会随着时间的推移而显着增加,因为您必须减少冲突。

+0

我同意他们包装和抽象的东西,它确实使它看起来更简单,但我最终注意到,我做了2-3次更多的SQL调用(通常在构造函数方法中)。 1.5倍以上的代码。所以,最好的方法是混合使用类和静态方法 – vener 2010-05-27 03:49:52

+2

@vener然后你就不能正确地使用OOP。说纯粹的代码明智的做法,你可以做与程序化完全相同的事情,只需要管理对象('class {}','$ this','self',' - >',': :','new')。当然,它不应该增加你正在做的“实际工作”。 SQL查询不会通过将它们包装在对象中而奇迹般地相乘。由于更好的可重用性,正确的OOP实际上应该会降低您的LOC。 – deceze 2010-05-27 03:57:06

1

编写面向对象的PHP不会影响你的性能。如果你使用Zend Optimizer等扩展,它甚至可以更快地工作。

因此,真的没有理由不使用PHP中更清洁,更易于维护的面向对象的范例。

编写纯粹的过程代码甚至可能导致性能下降,因为优化可能会更加困难,而消耗执行时间的小细节更可能发生在如此混乱的环境中。