【发布时间】:2012-01-30 07:57:09
【问题描述】:
我想在我的 Web 应用程序中使用 SPLEnum,它是 PECL 扩展 SPL 类型的一部分。
现在,我从来没有使用过扩展,所以我不知道它们是如何工作的。我已经要求我的托管商安装该软件包,但由于服务器上的安全原因,他们无法安装。
是否可以手动包含文件,就像在 Java 中一样(手动将文件复制到网络服务器并包含它们)?
感谢您的回答
问候,弗洛
【问题讨论】:
我想在我的 Web 应用程序中使用 SPLEnum,它是 PECL 扩展 SPL 类型的一部分。
现在,我从来没有使用过扩展,所以我不知道它们是如何工作的。我已经要求我的托管商安装该软件包,但由于服务器上的安全原因,他们无法安装。
是否可以手动包含文件,就像在 Java 中一样(手动将文件复制到网络服务器并包含它们)?
感谢您的回答
问候,弗洛
【问题讨论】:
PECL 包含用于编译成 PHP 的 C 扩展。因此,您需要在运行 PHP 的服务器上拥有适当的权限,而您永远无法在共享主机上获得这些权限。尝试找到一个类似的 PEAR 扩展,它们是用 PHP 编写的,并且行为与任何其他 PHP 文件一样。
【讨论】:
我使用 Ubuntu 14.04 和 Apache 而不是 nginx。使用来自here 的脚本有效。
sudo apt-get install libpcre3-dev php5-dev php-pear -y
sudo pecl install SPL_Types
echo extension=spl_types.so | sudo tee /etc/php5/mods-available/spl_types.ini
sudo php5enmod spl_types
sudo service apache2 reload
这与 Michael Noyb 的回答之间的主要区别在于,它继续使用 php5enmod 系统将扩展加载到 Apache 中,您可以read about here。
CodeZombie 的答案是共享主机不允许您这样做,但您可以在 DigitalOcean 之类的东西上以每月 5 美元的价格启动自己的虚拟专用服务器 (VPS),这与共享主机计划。
【讨论】:
Ubuntu 12.04+安装顺序:
sudo apt-get install libpcre3-dev
sudo apt-get install php5-dev
sudo apt-get install php-pear
sudo pecl install SPL_Types
【讨论】:
Ubuntu 14.04 使用 php5-fpm 和 nginx 和 php 5.5+
sudo apt-get install libpcre3-dev
sudo apt-get install php5-dev
sudo pecl install SPL_Types
然后转到/etc/php5/fpm/php.ini并添加此行
extension=spl_types.so
注意:您可能必须对 /etc/php5/cli/php.ini 执行相同操作
然后
sudo service nginx restart
sudo service php5-fpm restart
然后你可以编写这样的类(我的真实例子):
<?php
namespace Metronic\Lib;
use SplEnum;
class PortletColor extends SplEnum {
const __default = self::YELLOW;
const YELLOW = 'yellow';
}
当需要调用常量黄色时,使用\Metronic\Lib\PortletColor::YELLOW;
【讨论】: