代码之家  ›  专栏  ›  技术社区  ›  rahim asgari

共享与专用php库

  •  2
  • rahim asgari  · 技术社区  · 14 年前

    Zend Framework 申请。

    Zend Library 在服务器上,并在所有应用程序之间共享它,而不是每个应用程序上载它。

    它的利弊是什么?

    提前付款。

    3 回复  |  直到 14 年前
        1
  •  3
  •   timdev    14 年前

    正如其他人所指出的那样,有好有坏。最大的缺点是,每次升级库代码时,都需要测试每个应用程序,而不仅仅是当前需要升级的应用程序。

    最大的优点是,如果您使用的是APC之类的操作码缓存(而且您应该使用),那么在加载相同的库代码块时会浪费相当多的内存。取决于操作码缓存的大小,以及库代码实际运行的次数,这在某些时候可能会成为一个问题。如果操作码缓存的大小不够大,无法容纳所有内容,那么您最终将获得某种程度的性能影响。

    一个中间的解决方案是将所有库保存在服务器上它们所在的某个位置 可以

    附录1:配置.php

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

    附录2:配置.php

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

    免责声明 :实际上我还没有这么做,所以你可能想在理论付诸实践之前先测试一下。

        2
  •  4
  •   Bitgamma    14 年前

    我的答案一般适用于共享库,因为这不应特定于Zend库:

    分享的好处:

    • 可能更少的内存使用(取决于许多因素,包括操作系统)
    • 一次更新,全部更新(不必为每个应用程序更新库

    • 如果某个应用程序需要特定版本的库(例如出于兼容性原因),则不能通过共享库来完成此操作
        3
  •  2
  •   Michał Tatarynowicz    14 年前

    如果应用程序是独立的,我将为每个应用程序提供自己的库,以避免在需要升级其中一个应用程序上的库时出现问题,但不希望使用该库版本测试和更新所有应用程序。

    同样,如果这些应用程序共享代码,它们也应该共享库,以避免在每个站点上不同库版本下运行的共享代码出现更严重的问题。