对于基于 Web 的应用程序,为什么 PHP 不需要中间件来运行 - 而 Java、C# 等语言却需要?
更新:
重新措辞:为什么 PHP 不需要中间层或将其与数据库分开的业务层,而其他的却需要。
对于基于 Web 的应用程序,为什么 PHP 不需要中间件来运行 - 而 Java、C# 等语言却需要?
更新:
重新措辞:为什么 PHP 不需要中间层或将其与数据库分开的业务层,而其他的却需要。
假设“中间件”一词的意思是“中间层”或“业务层”,答案是它们都不需要它。
例如,没有什么可以阻止您在 C# 中(或者更准确地说,在 .Net Framework“堆栈”上)在直接访问数据库的网页中编写代码。事实上,很多原型都是这样开始的。
这里的问题更多的是关于良好实践 - 通常认为编写直接访问数据库的网页(坚持相同的示例)是一件坏事(tm),其原因有很多。可测试性、安全性、良好的解耦代码——所有这些都需要您将代码分开,而拥有多个层是实现此目的的自然方式。
为什么您在 PHP 中看不到这么多呢?我认为Jeff 的最新博客文章很好地涵盖了这一点:)
我想说的是 C#(语言)、.Net(框架)、ASP.NET(尤其是 ASP.NET MVC)以及许多文档和教程都鼓励你做正确的事情而不是打拳从网页到数据库的一个整体。
但实际上没有什么能阻止你这样做。
可能出现的用例如下:
您有多个 Web 应用程序提供存储在数据库中的数据。假设网络应用程序是:
假设每个前端都直接访问数据库。 然后,您的工程团队决定更换当前数据库。现在你遇到了在每个前端重写代码的问题。
如果你有一个中间层来抽象实际的数据存储,你只需要重写一层代码。此外,对该中间层进行单元测试将确保中间层公开数据的方式保持一致,无论数据存储平台如何。