【问题标题】:PHP Extensions versus SPLPHP 扩展与 SPL
【发布时间】:2013-11-17 02:49:02
【问题描述】:

我不断听说 php 扩展、标准 php 库和内置类。有什么区别?让我解释一下我的意思,

http://us3.php.net/manual/en/extensions.membership.php 该页面被标记为 php 核心扩展,但随后提到以下类不是实际的扩展。会是标准库吗?什么是php的标准库?它们是 php 附带的类吗?

谢谢

【问题讨论】:

  • PHP 具有始终启用的函数/类;通常称为“核心”扩展。可以在编译 PHP 二进制文件时启用和禁用其他功能,或者通过在php.ini 中启用/禁用extension=,以便根据.dll.so 提供该功能是否可用。浏览php.net/manual/en/install.windows.extensions.php 以获得一般解释。
  • 我的问题不是关于启用/禁用扩展。它更多地是关于我列为链接的扩展,他们称之为 spl 库吗?还是它们只是扩展?什么是 spl 库,它有什么不同。我已经在使用 mamp,所以这些东西中的大部分都可供我使用。
  • SPL 是一组类,它们是普通的核心/内置功能,只是带有不必要的花哨标题(以避免标识符冲突)。
  • 那么反射类会被认为是 spl 的一部分吗?由于它在扩展页面上列出

标签: php spl


【解决方案1】:

核心

无论如何,PHP 都有一些函数是 PHP 的一部分。这些被认为对所有 PHP 都很重要。这些被视为核心

捆绑

某些函数(如 BC Math)是您必须选择将其作为 PHP 的一部分。您可以使用或不使用这些库来编译它,让您可以灵活地决定您需要什么和不需要什么。您可以使用预编译的库来添加这些功能(即在 CentOS 中您可以安装包 php-bcmath获得 BC 数学)。在 Windows 中,这些将位于单独的 DLL 中。

外部

Bundled 非常相似,只是这些函数还依赖 PHP 以外的程序才能工作(即,您不能在未安装 MySQL 的情况下使用 MySQL 函数)。

PECL

这些完全在 PHP 项目之外(因为扩展的作者负责而不是 PHP 团队)。它们必须针对 PHP 进行编译,但幸运的是,您不必费尽心机地这样做,因为 PEAR 系统包含一个可以下载项目源代码并对其进行编译的方法。了解如果您将 PHP 核心升级到主要版本(即 5.4 到 5.5),您将必须重新编译您自己编译的任何 PECL 库。一些库(尤其是 Windows)也提供预编译版本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-06
    • 2010-11-12
    • 1970-01-01
    • 2012-09-09
    • 2012-07-05
    • 1970-01-01
    • 2020-12-11
    • 2014-06-19
    相关资源
    最近更新 更多