joomla/compat

Joomla 兼容包

1.2.0 2015-02-24 00:21 UTC

This package is auto-updated.

Last update: 2024-09-18 16:06:56 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License

这是一个简单的包,其中包含注册到全局命名空间的前向兼容类和接口

已弃用

由于 joomla/compat 包已被弃用,因此不再计划进行更新。

JsonSerializable

JsonSerializable 是 PHP 5.4 接口,允许您在将实现该接口的对象 json_encode 编码为 JSON 时指定要序列化的数据。

用法

由于这是一个 PHP 5.4 接口,当在 5.3 中使用时,jsonSerialize() 方法在将类的实例 json_encode 编码时不会自动调用。为了解决这个问题,只需在将其传递给 json_encode 时直接调用 jsonSerialize() 方法。这与 PHP 5.4 兼容。

注意,在某些 Debian 版本的 PHP 5.5 中,接口也缺失(见 http://stackoverflow.com/questions/18239405/php-fatal-error-call-to-undefined-function-json-decode),这也需要包含此接口。

class MyClass implements \JsonSerializable
{
	/**
	 * @var  array  Holds the data this class uses.
	 */
	protected $data;

	public function __construct(array $data)
	{
		$this->data = $data;
	}

	public function jsonSerialize()
	{
		return $this->data;
	}
}

$obj = new MyClass(array('sample', 'data', 'to', 'encode'));

$encoded = json_encode($obj->jsonSerialize());

通过 Composer 安装

"joomla/compat": "~1.0" 添加到 composer.json 中的 require 块,然后运行 composer install

{
	"require": {
		"joomla/compat": "~1.0"
	}
}

或者,您可以直接从命令行运行以下命令

composer require joomla/compat "~1.0"