Download the PHP package lorenzoferrarajr/lfj-dehydrator without Composer
On this page you can find all versions of the php package lorenzoferrarajr/lfj-dehydrator. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package lfj-dehydrator
lfj-dehydrator
Created By Lorenzo Ferrara Junior
Introduction
LfjDehydrator is a tool to speed-up development of data extraction from text using PHP. Please consider that some parts of this project will change.
Installation
LfjDehydrator can be installed via composer
adding "lorenzoferrarajr/lfj-dehydrator": "dev-master"
to the composer.json
file or running
php composer.phar require lorenzoferrarajr/lfj-dehydrator:dev-master
Usage
To illustrate the basic usage please refer to the following code:
The Dehydrator
object delegates to plugins the actual data extraction from the content. Plugins are added using the ::addPlugin() method and are instantiated one at a time only when the ::dehydrate() method is called. The YouTubeTitlePlugin
plugin used in the previous code can be found below.
Plugins
A plugin holds the code responsible of extracting data from the content. Each plugin must implement Lfj\Dehydrator\Plugin\AbstractPlugin class.
The important methods to implement are:
getKey()
must return a string representing the key of the result array holding the data extracted by the pluginisEnabled()
must return ´true´ or ´false´ depending on if the plugin should be used or not. As an example, one could create a plugin to extract data from a particular website and useisEnabled()
to check if the current URL is correct or notrun()
should extract the data from the content and populate the result
Normally, the result of two plugins having the same key gets appended to the final result. As an example we can take two plugins having the ::getKey()
method returning title
. One plugin extracts the text form the <title>
tag in the <head>
, the other plugin extracts the text from the content
attribute of <meta property="og:title">
tag. The final result of the Dehydrator
class will be something like:
Below, an example plugin that extracts the title of a YouTube video from a YouTube URL:
Adding Plugins
The Dehydrator::addPlugin
method accepts as a second argument a plugin type expressed as a string. Currently two types of plugins are supported: replaceable
and null
(for non replaceable).
Results of plugins added as replaceable
replace results of plugins having the same key
. This means that if two plugins are extracting the title of a page and are returning the same key, if added as non replaceable the result will be something like:
if added as replaceable
the result of the second plugin will replace the result of the first: