php - 使用 PHP 的多层应用程序?

标签 php mysql database stored-procedures multi-tier

我是 PHP 的新手,但在具有 SOA 架构和多层应用程序的复杂企业环境中经验丰富的 Java 程序员。在那里,我们通常会在中间层实现具有业务逻辑的业务应用程序。

我正在编写一个替代货币系统,该系统应该易于个人和社区部署和定制;它将是开源的。这就是为什么 php/mysql 对我来说似乎是最佳选择。

用户有账户,他们有余额。此外,系统根据提供的服务总量和可用 Assets 总量计算价格。

这意味着,在购买时会发生一系列计算;余额和总数得到更新;这些是派生数字,通常不会输入数据库。

尽管如此,我求助于将触发器和存储过程放入数据库中,以便在 php 代码中不会进行任何这些更新。

人们怎么想?这是一个好方法吗?我的经验告诉我这不是最好的解决方案,并促使我实现中间层。但是,我什至不知道该怎么做。另一方面,到目前为止,我对商店过程的看法在我看来是最合适的。

我希望我把我的问题说清楚了。所有评论表示赞赏。可能没有“完美”的解决方案。

最佳答案

正如当今的趋势一样,远离数据库通常是一件好事。您可以更轻松地进行版本控制,并且可以只使用一种语言工作。不仅如此,我觉得存储过程很难走。另一方面,如果您喜欢这些东西并且对 MySql 中的 SP 感到满意,那么它们还不错,但我的感觉一直是它们更难调试和处理。

关于触发器问题,我不确定这对您的应用是否有必要。由于触发计算的事件是由用户调用的,因此这些事情可以在 PHP 中发生,即使用户同时被重定向到“等待”页面或另一个页面。显然,真正的触发器只能在数据库级别完成,但您可以使用每 X 秒运行一个 PHP 脚本的守护线程......不惜一切代价避免这种情况并尝试从用户端触发事件。

综上所述,我想在 PHP 上插入我最喜欢的数据访问层解决方案:Doctrine .它并不完美,但 PHP 就是这样,它已经足够好了。做你想做的大部分事情,让你使用对象而不是数据库过程等等。

关于您的标题,多层在 PHP 中是完全可行的,但您必须这样做并尊重它们。 PHP 代码可以调用其他 PHP 代码,现在 (5.2+) 非常适合 OO 等等。请务必忽略这样一个事实,即您将看到的许多 PHP 代码完全是垃圾,甚至不使用方法,更不用说层和体面的 OO 建模了。如果您想这样做,这一切都是可能的,包括做您自己的(或使用现有的)MVC 解决方案。

关于php - 使用 PHP 的多层应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1385612/

相关文章:

javascript - 在 WordPress 中单击即可创建新用户

php - Linux 命令从 php 脚本输出填充文件

php - 是否可以将 Doctrine2 批处理与 Twig 的 for 标签无缝使用?

mysql - 添加外键时出现问题

mysql - 使用 PHP GD 调整图像大小并保存图像。这段代码有什么问题?

php codeigniter事件记录替换功能

php - 为什么我不能使用angularjs向mysql数据库插入数据

mysql - 如何删除包含文本的重复数字?

MySql查询按多列和多个计数组合在一起

C语言使用文件操作创建数据库