Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
独立于数据库的SOAP接口+;MVC前端在PHP中完成-需要建议_Php_Api_Model View Controller_Soap_Orm - Fatal编程技术网

独立于数据库的SOAP接口+;MVC前端在PHP中完成-需要建议

独立于数据库的SOAP接口+;MVC前端在PHP中完成-需要建议,php,api,model-view-controller,soap,orm,Php,Api,Model View Controller,Soap,Orm,我现在正在看一个新项目,它包括一个独立于数据库的接口(或者尽可能独立于数据库的接口,比如PDO),然后可以添加一个前端,可以使用CodeIgniter之类的东西,但也可以使用其他前端,比如Windows GUI或其他任何东西 我正在考虑将PHPSOAP与PDO结合使用,以将数据库功能放在适当的位置。这是一个好方法吗?陷阱是什么?有没有人做过类似的事情?你有什么建议 根据您的描述,我知道您正在查看以下设置: 一个基于PHP SOAP和PDO的应用程序,用于处理可作为服务或通过API访问的数据库操

我现在正在看一个新项目,它包括一个独立于数据库的接口(或者尽可能独立于数据库的接口,比如PDO),然后可以添加一个前端,可以使用CodeIgniter之类的东西,但也可以使用其他前端,比如Windows GUI或其他任何东西

我正在考虑将PHPSOAP与PDO结合使用,以将数据库功能放在适当的位置。这是一个好方法吗?陷阱是什么?有没有人做过类似的事情?你有什么建议


根据您的描述,我知道您正在查看以下设置:

  • 一个基于PHP SOAP和PDO的应用程序,用于处理可作为服务或通过API访问的数据库操作
  • Codeigniter/Windows GUI/任何其他与数据库操作系统通信的前端
如果这就是你所追求的,那么这是一个很好的系统责任分离。它允许您在所有级别上保持应用程序/数据库独立于前端,这将使各种客户端的实现更加容易。它将基本上成为典型的服务器-客户机设置

网络性能和可扩展性

<> P>最重要的是要考虑的流量将是可处理的和可扩展性。如果您考虑的是不在本地、快速延迟系统内的客户机-服务器通信,那么让客户机向服务器应用程序发送请求在很大程度上会占用大量资源。我的假设是,与本地系统调用相反,通信将主要通过某种internet协议(可能是HTTP)进行。它显然要慢得多,而且资源也很重。除非您的特定项目需要通过internet进行通信(例如将移动应用程序作为客户端之一),否则我强烈建议在同一操作系统内或通过某种快速延迟网络组织客户端-服务器通信

代码性能

根据从客户端到服务器的调用量的大小,您可能需要一个非标准的PHP解决方案。使用PHP处理web应用程序最常见的方法是使用web服务器(如Apache)正确处理HTTP请求,然后将控制传递给PHP以进一步处理请求(再次使用web服务器发送响应)。对于您的案例来说,最大的缺点是web服务器(在大多数情况下)必须为每次客户端调用引导PHP解释器和数据库操作系统的所有源代码。从某种程度上讲,这可能是一个大问题,并将对项目成本产生重大影响。需要对服务器端应用程序进行适当的基准测试。如果您考虑的是一个足够大的应用程序,可以考虑这样的问题,那么您可能需要实现一个独立的PHP应用程序,该应用程序可以监听特定端口,从而转变为功能齐全的独立服务器应用程序。此解决方案不允许您利用常见的web服务器,但允许您创建一个仅引导一次且始终准备好处理客户端请求的应用程序

设计

从设计的角度来看,需要记住的最重要的事情是始终记住哪个应用程序是服务器,哪个应用程序是客户端。对于系统的每个功能,您都需要确保正确的部分承担责任。不要在服务器端实现任何特定于客户端的格式化或操作。您很可能希望以尽可能原始的形式从服务器发送数据,并让客户机应用程序根据需要处理数据。唯一的例外是,当处理部件的需求量太大,客户机无法处理它时。移动设备的一些大容量数据和客户端可能就是这种情况。在这种情况下,最好引入某种桥接子系统/应用程序,在将其发送到clinet之前在服务器端进行处理

我希望这将帮助您对解决方案做出正确的决定