1

Create a Custom Strategy

Create a class implements the Strategy interface. Doing so by extending the Extractor class is a good starting point for custom strategies as it contains some useful methods that you probably don’t want to implement yourself.

use Mateffy\Magic\Extraction\Strategies\Strategy;
use Mateffy\Magic\Extraction\Strategies\Extractor;

// Create a custom strategy
class MyCustomStrategy extends Extractor {}

// Extend an existing strategy
class MyCustomizedStrategy extends SequentialStrategy {}

// Or completely custom by doing everything yourself
class MyCompletelyCustomStrategy implements Strategy {}
2

Implement the Strategy

Implement your strategy in the run() method, which takes the artifacts as an array.

The array that the run method returns is used as the final output data.

use Mateffy\Magic\Extraction\Strategies\Extractor;

class MyCustomStrategy extends Extractor
{
    public function run(array $artifacts): array
    {
        // Implement your strategy here
    }
}
3

Register the Strategy

Call Magic::registerStrategy('my-custom-strategy', MyCustomStrategy::class) in your boot() method in the service provider.

class AppServiceProvider extends ServiceProvider
{
    public function register()
    {
        Magic::registerStrategy('my-custom-strategy', MyCustomStrategy::class);
    }
}

Now your custom strategy is usable in the Data Wizard settings UI.




Next Steps

Learn how to extract some data

Step by step guide to extract data from documents using Data Wizard.