Download the PHP package fabiomez/data-extractor without Composer
On this page you can find all versions of the php package fabiomez/data-extractor. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download fabiomez/data-extractor
More information about fabiomez/data-extractor
Files in fabiomez/data-extractor
Package data-extractor
Short Description Library for data extraction from common resources like string or a CSV row from files
License MIT
Informations about the package data-extractor
PHP Data Extractor
Why
Everytime that I had to parse a file like a CNAB, EDI or any CSV file, the process became very similar and always returning an array that I could not ever trust on what kind of index they will bring back. Some times breaking the application because some data did not come. So, I decided to write this library that works with objects like models for extracted data. The way the data will be extracted is wrote on models attributes docblock, and this will grant to developers an auto-complete on models attributes with a proper description on how the extraction was made, and optionaly, a descrition of the meaning of this data. What I really missed on arrays.
Instalation
Execute composer require fabiomez/data-extractor
Or add fabiomez/data-extractor: "*"
to required section of your composer.json file.
Usage
The Data Extractor works above models attributes. A model can be any class with public attributes that have the @stractable
tag on its docblock.
At version 1, Data extractor brings 3 types of data getters, being: substring, array and regex.
Each type of value getter require its own docblok tags that must be a subtag from @extractable
tag.
Substring
The substring value getter works just like substr PHP function where,
{@start}
is the initial position, based on 0 index.{@length}
is the length of the desired text
Array
The index is a simple array index tha must be extracted (say, from an CSV file). Both numeric or associative index.
Regex
Regex uses patterns to match the desired data, where:
{@pattern}
must be any valid pattern tha must match the desired data{@index}
is a numeric index of the matched data from pattern
The Model
Write a class with public attributes with docblock description to guide the Extractor
Getting the extractor
The extractor can be directly instantiated or created via factory
Directly
Via Factory
Extracting the data from source
The extraction process can use the model namespace or an instance;
Optionaly a callback can be provided on third paramenter to touch the model after the extraction