Adds check for minimum Twig version loaded by external plugins

This commit is contained in:
Vlad
2017-09-16 11:32:56 -04:00
parent ceb5ce850c
commit 994935d4ae

View File

@@ -13,6 +13,7 @@ class RequirementsChecker {
const TEST_XML_EXTENSION = 'XmlExtension';
const TEST_ZIP_EXTENSION = 'ZipExtension';
const TEST_VENDOR_SOURCE = 'VendorSource';
const TWIG_MINIMUM_VERSION = '1.26.0';
public $display_error_notice;
public $vendor_classes = array(
@@ -140,13 +141,28 @@ class RequirementsChecker {
$dependency_path
);
return $this->processError($error);
$return_error = true;
// if a Twig dependency is loaded by another plugin, check for valid version
if(strpos($dependency, '\Twig_') === 0) {
$return_error = ($this->isValidTwigVersion()) ? false : $return_error;
}
if($return_error) return $this->processError($error);
}
}
return true;
}
function isValidTwigVersion() {
return (
class_exists('\Twig_Environment') &&
defined('\Twig_Environment::VERSION') &&
version_compare(\Twig_Environment::VERSION, self::TWIG_MINIMUM_VERSION, '>=')
);
}
private function getDependencyPath($namespaced_class) {
try {
$reflector = new \ReflectionClass($namespaced_class);
@@ -162,4 +178,4 @@ class RequirementsChecker {
}
return false;
}
}
}