2017 © Pedro Peláez
 

library xpatharray

XPath Access for Arrays

image

boxblinkracer/xpatharray

XPath Access for Arrays

  • Monday, July 16, 2018
  • by boxblinkracer
  • Repository
  • 1 Watchers
  • 1 Stars
  • 11 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 3 Versions
  • 0 % Grown

The README.md

XPathArray - Easy XPath Access for your Arrays

Downloads Latest stable version PHP from Packagist GitHub stars MIT licensed, (*1)

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., (*2)

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., (*3)

With XPathArray you get the following:, (*4)

  • 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., (*5)

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., (*6)

$ composer require boxblinkracer/xpatharray

This package follows the PSR-4 convention names for its classes, which means you can easily integrate xpatharray classes loading in your own autoloader., (*7)

What now?

Here are a few examples what to do with XPathArray objects., (*8)

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., (*9)

This is perfect, if you want to simply use and validate your structure at once., (*10)

<?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., (*11)

This is perfect, if you want to work with optional nodes within your array., (*12)

<?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., (*13)

The Versions

16/07 2018

dev-master

9999999-dev

XPath Access for Arrays

  Sources   Download

MIT

The Requires

  • php >=7.0

 

The Development Requires

by Christian Dangl

php array xpath

16/07 2018

1.0.1

1.0.1.0

XPath Access for Arrays

  Sources   Download

MIT

The Requires

  • php >=7.0

 

The Development Requires

by Christian Dangl

php array xpath

03/07 2018

1.0.0

1.0.0.0

XPath Access for Arrays

  Sources   Download

MIT

The Requires

  • php >=7.0

 

The Development Requires

by Christian Dangl

php array xpath