了解PHP库安装

时间:2010-12-09 18:47:52

标签: php installation pear

我正在尝试理解与在系统上安装PHP库相关的选项和术语(Linux / OSX)

以下是我试图涵盖的一些具体要点:

  1. 与PHP库相关时,“install”是什么意思?
  2. 库和扩展之间有什么区别?
  3. php.ini如何适应?
  4. PEAR如何适应?
  5. 如何导入/包含库?
  6. 如果我创建自己的库,那么打包和分发它的最佳方法是什么?
  7. 谢谢 - 抱歉多部分......

2 个答案:

答案 0 :(得分:13)

几点......

PHP没有本地“导入”基础结构,如python,java或.net。有几种方法可以在PHP中使用库。

  1. 将它们编译成PHP二进制文件。这是最先进的方式,除非您有非常特殊的需求,否则通常不可取。

  2. 在服务器上将它们安装为PHP模块,并将它们包含在PHP.ini中。从PHP程序员的角度来看,这些扩展是PHP的一部分 - 始终可用。添加和删​​除它们更容易,而无需重建PHP本身。

  3. 在某处的服务器上安装PHP代码,并将()包含在PHP脚本中。

  4. 将库的副本保存到项目中,并将其包含在PHP脚本中。

  5. -
    在基本级别,代码是解释器的一部分(静态或动态),或者是包含()到项目中的普通旧PHP代码。

    出于您的目的,我只能建议您坚持使用行业标准的PHP发行版(选择一个好的Linux操作系统,并使用它的PHP)。然后,几乎所有在解释器级别需要的库都可以作为附加软件包使用,其复杂性由每天都可以使用。

    在RedHat / Centos上,您可以运行:

    yum install php php-memcached php-gd php-pecl

    -
    关于您可能想要使用的所有其他类型的库,最有可能采用一个良好的PHP框架来处理所有这些问题。

    一些例子是:

    1. Zend Framework
    2. CakePHP的
    3. http://www.phpframeworks.com/
    4. 等等...
    5. (不是任何顺序,只是想到的那些)

      如果您已采用使用RPM或类似方法的标准方法来管理PHP和扩展方面的编译,那么一个良好的可靠框架将负责包含您需要的所有其他PHP库代码。

      最终结果是,您专注于交付产品,而不是放在原本必须学习和发明的所有基础架构上。

      -
      在PHP启动时解析并运行 php.ini (每次命令行,每个服务器在apache启动一次)。它定义了很多设置,包括很多模块,配置这些模块等等......

      您实际上可以使用PHP中的ini_set()函数覆盖php.ini中的某些设置。但是,这仅对某些设置有效。其他人需要在脚本启动之前设置。

      在apache下运行时,可以向.htaccess<VirtualHost>指令添加行,这些指令完全覆盖该目录/虚拟主机的PHP.ini。

      (如果错误,请更正我的语法并删除此说明)

      <VirtualHost *>
          ServerName www.example.com       
          DocumentRoot /home/joe/site/docroot
          php_value include_path "/home/joe/site/php-code"
      </VirtualHost>
      

      -
      为了回答您关于自己的库的#6问题以及打包它的最佳方法,我建议您首先评估库的需求。如果你真的想要做某事,那么找出人们最常见的做法。如果它是一个简单的库,那么带有一个不错的网站的.php文件就足够了。

      -
      也许有点漫无边际,但我希望这能指出你正确的方向。

答案 1 :(得分:4)

所有与PHP直接相关:

  1. 通常只是复制并确保想要使用它的东西知道它在哪里。
  2. 扩展名通常用C语言编写并由解释器加载,而库通常表示本机PHP库。
  3. 不知道,你想知道什么。 ini加载扩展并设置一些设置。它与安装没有直接关系,......你可以在这里设置你的包含路径(或其他东西)。
  4. 你可以用它安装库;)不知道你想知道什么。
  5. 通常为require(_once)include(_once)。对于课程,您可以设置自动加载器。请参阅PHP手册。
  6. 包/存档(zip,gz,tarball,..)它并制作下载链接?另外:不知道,你想要什么。
  7. 如果您想编写PHP库并想要一种简单的打包和分发方式,那么请查看PEAR。