in src/Facebook/InstantArticles/Transformer/Transformer.php [450:493]
public function loadRules($json_file)
{
$configuration = $this->validateJSON($json_file);
// Treats the Rules configuration
if ($configuration && isset($configuration['rules'])) {
foreach ($configuration['rules'] as $configuration_rule) {
$class = $configuration_rule['class'];
try {
$factory_method = new \ReflectionMethod($class, 'createFrom');
$this->addRule($factory_method->invoke(null, $configuration_rule));
} catch (\ReflectionException $e) {
try {
$factory_method = new \ReflectionMethod(
'Facebook\\InstantArticles\\Transformer\\Rules\\' . $class,
'createFrom'
);
$this->addRule($factory_method->invoke(null, $configuration_rule));
} catch (\ReflectionException $e) {
$this->addWarning("$class was not found");
$this->addLog(
TransformerLog::ERROR,
"$class was not found"
);
}
}
}
}
// Treats the ADS configuration
if ($configuration && isset($configuration['ads'])) {
$this->loadAdsConfiguration($configuration['ads']);
}
// Treats the Analyticds configuration
if ($configuration && isset($configuration['analytics'])) {
$this->loadAnalyicsConfiguration($configuration['analytics']);
}
// Treats the Style configuration
if ($configuration && isset($configuration['style_name'])) {
$this->setDefaultStyleName($configuration['style_name']);
}
}