Skip to content
A migration framework to move content from source to destination
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src/NMC/Migration
tests
.gitignore
.travis.yml
CONTRIBUTING.md
LICENSE.md
README.md
composer.json
phpunit.xml.dist

README.md

Migration

This mini-framework is designed to migrate content from a source to a destination using a source (that provides iterable content), filters (to manipulate the content), and actions (to do something with the content).

How to install

Use Composer to install this framework. In your composer.json file:

{
    "require": {
        "nmcteam/migration": "~0.1.0"
    }
}

Then run composer install.

Getting Started

In this example, we create a job that echoes the HTML content from a set of URLs. Our "source" is a custom iterator that returns instances of \NMC\Migration\Object. We use a filter to reduce the source HTML to only the markup within the <body> tags. We use an "action" to echo the HTML content.

<?php
// Source
$source = new \NMC\Migration\Source\UrlArray(['http://www.apple.com', 'http://www.php.net']);

// Job
$job = new \NMC\Migration\Job($source);

// Filter
$filter = new \NMC\Migration\Filter\MatchReduce('#<body[^>]+>(.+)</body>#', 1);
$job->addFilter($filter);

// Action
$action = new \NMC\Migration\Action\Imitate();
$job->addAction($action);

// Run job
$job->run();

What is a job?

A "job" is a collection of a source, filters, and actions. It will iterate the source, and apply its filters and actions to each object provided by the source.

What is a source?

A "source" is an iterator whose current() method returns an instance of \NMC\Migration\ObjectInterface. What the source iterates, and how, is entirely up to you.

What is a filter?

A "filter" is an object that receives an instance of \NMC\Migration\ObjectInterface and manipulates the object's content. Changes to the object are performed by reference.

What is an action?

An "action" is an object that receives an instance of \NMC\Migration\ObjectInterface and does something with the object. An action could be as simple as echo, or it could use the object to create new database objects, insert new pages into a CMS, or generate new data in a variety of formats (e.g. CSV or JSON).

How to Contribute

  1. Fork this repository.
  2. Create a separate branch for each new feature.
  3. Submit a pull request from each feature branch.

All pull requests must adhere to the PSR-2 code styleguide. Each pull request must also be accompanied by passing PHPUnit tests.

Author

Copyright © 2014 New Media Campaigns.

License

MIT Public License.

You can’t perform that action at this time.