From 6847b0080fb07a03873878209fb21fa939a24889 Mon Sep 17 00:00:00 2001 From: Loz Calver Date: Mon, 27 Jul 2015 14:03:24 +0100 Subject: [PATCH] Deprecate ViewableData magic caching logic --- view/ViewableData.php | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/view/ViewableData.php b/view/ViewableData.php index 93fcd88b0..c47aba93e 100644 --- a/view/ViewableData.php +++ b/view/ViewableData.php @@ -177,13 +177,32 @@ class ViewableData extends Object implements IteratorAggregate { foreach($this->allMethodNames() as $method) { if($method[0] == '_' && $method[1] != '_') { $this->createMethod( - substr($method, 1), "return \$obj->cachedCall('$method', \$args, '" . substr($method, 1) . "');" + substr($method, 1), + "return \$obj->deprecatedCachedCall('$method', \$args, '" . substr($method, 1) . "');" ); } } parent::defineMethods(); } + + /** + * Method to facilitate deprecation of underscore-prefixed methods automatically being cached. + * + * @param string $field + * @param array $arguments + * @param string $identifier an optional custom cache identifier + * @return unknown + */ + public function deprecatedCachedCall($method, $args = null, $identifier = null) { + Deprecation::notice( + '4.0', + 'You are calling an underscore-prefixed method (e.g. _mymethod()) without the underscore. This behaviour, + and the caching logic behind it, has been deprecated.', + Deprecation::SCOPE_GLOBAL + ); + return $this->cachedCall($method, $args, $identifier); + } /** * Merge some arbitrary data in with this object. This method returns a {@link ViewableData_Customised} instance