Adds check for minimum Twig version loaded by external plugins
This commit is contained in:
@@ -13,6 +13,7 @@ class RequirementsChecker {
|
|||||||
const TEST_XML_EXTENSION = 'XmlExtension';
|
const TEST_XML_EXTENSION = 'XmlExtension';
|
||||||
const TEST_ZIP_EXTENSION = 'ZipExtension';
|
const TEST_ZIP_EXTENSION = 'ZipExtension';
|
||||||
const TEST_VENDOR_SOURCE = 'VendorSource';
|
const TEST_VENDOR_SOURCE = 'VendorSource';
|
||||||
|
const TWIG_MINIMUM_VERSION = '1.26.0';
|
||||||
|
|
||||||
public $display_error_notice;
|
public $display_error_notice;
|
||||||
public $vendor_classes = array(
|
public $vendor_classes = array(
|
||||||
@@ -140,13 +141,28 @@ class RequirementsChecker {
|
|||||||
$dependency_path
|
$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;
|
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) {
|
private function getDependencyPath($namespaced_class) {
|
||||||
try {
|
try {
|
||||||
$reflector = new \ReflectionClass($namespaced_class);
|
$reflector = new \ReflectionClass($namespaced_class);
|
||||||
@@ -162,4 +178,4 @@ class RequirementsChecker {
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
Reference in New Issue
Block a user