php - 了解 PHP 库安装

标签 php installation pear

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

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

  1. 在涉及 PHP 库时,“安装”是什么意思?
  2. 库和扩展有什么区别?
  3. php.ini 如何适应?
  4. PEAR 如何适应?
  5. 如何导入/包含库?
  6. 如果我创建自己的库,打包和分发它的最佳方式是什么?

感谢和抱歉多部分...

最佳答案

几点...

PHP 没有本地“导入”基础设施,如 python、java 或 .net。可以通过多种方式在 PHP 中使用库。

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

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

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

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

--
在基本层面上,代码要么是解释器的一部分(静态或动态),要么是被 include() 到您的项目中的普通旧 PHP 代码。

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

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

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

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

一些例子是:

  1. Zend 框架
  2. CakePHP
  3. 代码点火器
  4. http://www.phpframeworks.com/
  5. 等等...

(排名不分先后,先想到的)

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

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

--
php.ini 在 PHP 启动时被解析和运行(每次对于命令行,每台服务器在 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 文件就足够了。

--
可能有点乱,但我希望这能为您指明正确的方向。

关于php - 了解 PHP 库安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4401907/

相关文章:

php - cPanel Pear Mail : failed to open stream 错误

php - Slim 3 - 斜杠作为路由参数的一部分

php - PHP 中 V8 的用例是什么?

php - 一般编程知识?

R - 尝试安装软件包 : InternetOpenUrl failed 时

python - Django 说 - 没有名为 'blog' 的模块

php - Mysql 查询使用 OR 条件进行全文搜索

windows - 将文件添加到 Windows 中的所有用户 'My Documents' 文件夹

php - Plesk - 添加 Pear

php - : pear mail package 验证失败