The goal of this PR is to create a configuration system for the individual PXE tools, that can be provided via the PX Engine when it is instantiated. With this system we can create our own configuration and provide it to the Engine like this,
<?php
use PageExperience\Engine;
use PageExperience\Engine\Tool\DefaultConfiguration;
class MyConfiguration extends DefaultConfiguration
{
// extend the default configuration...
}
$pxEngine = new Engine(null, null, new MyConfiguration());
Then in a tool class we can use the configuration like following,
<?php
use AmpProject\RemoteGetRequest;
use PageExperience\Engine\Tool\Configurable;
use PageExperience\Engine\Tool\OptimizationTool;
use PageExperience\Engine\Tool\ToolConfiguration;
final class MyPXETool implements OptimizationTool, Configurable
{
public function __construct(RemoteGetRequest $remoteRequest, ToolConfiguration $configuration)
{
$this->remoteRequest = $remoteRequest;
$this->configuration = $configuration;
}
}
Fixes #18
The goal of this PR is to create a configuration system for the individual PXE tools, that can be provided via the PX Engine when it is instantiated. With this system we can create our own configuration and provide it to the Engine like this,
Then in a tool class we can use the configuration like following,
Todo: