共享vs专用php库 - php

我有一个由几个Zend Framework应用程序组成的服务器。

我想知道在服务器上上传Zend Library并在所有应用程序之间共享而不是按应用程序上传是一个好主意。

例如,多个应用程序同时请求或不请求一个库,是否会影响速度。

它的优点和缺点是什么?

提前谢谢。

参考方案

正如其他人指出的那样,有其优点和缺点。最大的缺点是,每次您要升级库代码时,都需要测试每个应用程序,而不仅仅是现在需要升级的应用程序。

最大的优点是,如果您正在使用像APC这样的操作码缓存(应该这样做),那么您浪费大量的内存来加载相同的库代码块。根据操作码缓存的大小以及实际运行了多少库代码,这有时可能会成为问题。如果操作码缓存的大小不足以容纳所有内容,那么最终将导致性能下降。

一种中间解决方案是将所有库在服务器上的某个位置保留可以共享的位置。构建您的应用程序以使用一些配置值进行加载。

APP1:config.php

<?PHP
define('ZEND_LIB_PATH','/path/to/ZendFramework-1.9/library');
set_include_path(ZEND_LIB_PATH . PATH_SEPERATOR . get_include_path());

APP2:config.php

define('ZEND_LIB_PATH','/path/to/ZendFramework-1.10.1/library');
set_include_path(ZEND_LIB_PATH . PATH_SEPERATOR . get_include_path());

这样,如果两个应用碰巧使用相同版本,则它们可以共享该版本的操作码缓存,但您不受其束缚。

免责声明:我实际上还没有做过,所以您可能要在实践之前先对理论进行测试。

PHP Zend Controller插件被调用两次 - php

我注意到我的插件被调用了两次。我知道这个事实是因为在我的ViewSetup插件中它注册了标题,并且标题两次包含相同的内容。有任何想法吗? 参考方案 您最有可能将呼叫复制到preDispatch或postDispatch。对于尚未调度的每个请求,在Zend_Controller_Front::dispatch的循环内调用这些方法。这意味着将分派设置为false…

PHP-将日期插入日期时间字段 - php

我已在数据库中使用datetime字段存储日期,使用PHP将“今天的日期”插入该字段的正确方法是什么?干杯, 参考方案 我认为您可以使用php date()函数

PHP getallheaders替代 - php

我正在尝试从服务器上的apache切换到nginx。唯一的问题是我在PHP脚本中使用的getallheaders()函数,该函数不适用于Nginx。我已经尝试过用户在getallheaders函数上的php站点上提供的注释,但这并不返回所有请求标头。请告诉我如何解决这个问题。我真的想切换到Nginx。 参考方案 您仍然可以使用它,但是您必须像这里一样重新定义…

PHP mysqli获取查询返回的第一行的值 - php

我正在使用mysqli从数据库中获取某些数据。我正在使用的查询已设置为仅从数据库返回一行。有没有一种方法可以在不使用while循环的情况下获取该行的值?我知道一个while循环对于返回多于一行的行很有用,但是如果不需要while循环,我想避免这种情况,因为不必要的代码是不好的编程。 参考方案 是的-您可以使用:$row = $result->fetch…

php Singleton类实例将在多个会话中保留吗? - php

举一个简单的例子,如果我想计算一个不使用磁盘存储的脚本的命中次数,我可以使用静态类成员来执行此操作吗?用户1:<?php $test = Example::singleton(); $test->visits++; ?> 用户2:<?php $test = Example::singleton(); $test->visits+…