zzal/cakephp-hash

使用令人惊叹的 cakePHP 的 Hash 类的 XPath-like 路径语法处理复杂数组

dev-master 2013-05-22 18:04 UTC

This package is not auto-updated.

Last update: 2024-09-23 13:06:29 UTC


README

请注意,此包处于 beta 开发阶段。

这是一个简单的包装包,帮助您在非 cakePHP 项目(使用 composer)中使用令人惊叹的 cakePHP 的 Hash 类。此辅助类允许您使用 XPath-like 语法操作复杂 PHP 数组。

请参阅 cakePHP 文档。

安装

通过 Composer 安装此包。为此,编辑您的项目 composer.json 文件,以要求 zzal/cakephp-hash

"require": {
	"zzal/cakephp-hash": "*"
}

然后,在此文件的 "autoload" 部分添加以下内容

"autoload": {
	"classmap": [
		…
	],
    "psr-0": {
    	"CakePHP\\Utility\\": "vendor/zzal/cakephp-hash/Hash"
    }

最后,从终端使用 Composer

composer install

基本用法

由于 Laravel 4 已经有一个名为 Hash 的类,我建议您使用 cakePHP 的 Hash 类并使用别名,如下面的示例(routes.php)所示:

<?php

use CakePHP\Utility\Hash as ArrayXPath;

Route::get('/', function()
{
	$records = array(
		array(
		    'pages' => array(
		    	array('id' => 1, 'title' => 'One'),
		    	array('id' => 2, 'title' => 'Two'),
		    	array('id' => 3, 'title' => 'Three'),
			)
		)
	);
	
	$result = ArrayXPath::extract($records, '{n}.pages.{n}[id=2]');

	var_dump($result);
});

结果将是

array(1) {
  [0]=>
  array(2) {
    ["id"]=>
    int(2)
    ["title"]=>
    string(3) "Two"
  }
}