boxblinkracer/xpatharray
最新稳定版本:1.0.1
Composer 安装命令:
composer require boxblinkracer/xpatharray
包简介
XPath Access for Arrays
README 文档
README
Why XPathArrays instead of Arrays?
...small and simple, but still powerful...
If you use basic Arrays in PHP you are familiar with the array_key_exists function.
And yes, this does really blow up your code if you have multiple levels within your array.
If you check for existing keys, the only thing you get is a PHP Notice Error, and that obviously doesn't
result in an Exception.
With XPathArray you get the following:
- Easy XPath Selection in multiple levels, e.g. "/customer/address/street"
- Real XPathKeyNotFound Exceptions instead of PHP Notices
- Default Values for missing keys or values
- ...and a more lightweight code... :)
Installation
This package uses Composer, please checkout the composer website for more information.
The following command will install xpatharray into your project.
It will also add a new entry in your composer.json and update the composer.lock as well.
$ composer require boxblinkracer/xpatharray
This package follows the PSR-4 convention names for its classes, which means you can easily integrate
xpatharrayclasses loading in your own autoloader.
What now?
Here are a few examples what to do with XPathArray objects.
With Exceptions
In the first example, we access the content of our customer array using XPath syntax.
If a key is not found, we will get a XPathNotFoundException.
This is perfect, if you want to simply use and validate your structure at once.
<?php //... $customer = array(...) # xpath array with / as our delimiter $xCustomer = new XPathArray('/', $customer); # object/array access with XPathNotFoundException /** @var array @address */ $address = $xCustomer->get('/address'); # multi level access $phoneMobile = $xCustomer->get('/contact/phone/mobile'); # type safe access with internal conversion $street = $xCustomer->getString('/street'); $streetNumber = $xCustomer->getInt('/streetNr'); $isCompany = $xCustomer->getBool('/isCompany'); $customerRevenue = $xCustomer->getFloat('/revenue/total');
Without Exceptions
In the next example, we want to access the same keys, but we do not want to get any exceptions. So we just provide a default value, that will be returned if the key is either NULL or has not been found at all.
This is perfect, if you want to work with optional nodes within your array.
<?php //... $customer = array(...) # xpath array with / as our delimiter $xCustomer = new XPathArray('/', $customer); # multi level access $phoneMobile = $xCustomer->get('/contact/phone/mobile', '-'); # type safe access with internal conversion $street = $xCustomer->getString('/street', '-'); $streetNumber = $xCustomer->getInt('/streetNr', 0); $isCompany = $xCustomer->getBool('/isCompany', false); $customerRevenue = $xCustomer->getFloat('/revenue/total', 0.0);
Copying / License
This repository is distributed under the MIT License (MIT). You can find the whole license text in the LICENSE file.
统计信息
- 总下载量: 37k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 3
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 未知