Przeglądaj źródła

Restrict the callable lambda to object calls and anonymous functions.

Damien Tournoud 15 lat temu
rodzic
commit
ac418ad876
2 zmienionych plików z 1 dodań i 8 usunięć
  1. 1 5
      Mustache.php
  2. 0 3
      test/MustacheHigherOrderSectionsTest.php

+ 1 - 5
Mustache.php

@@ -847,17 +847,13 @@ class Mustache {
 	 *  1. an anonymous function.
 	 *  2. an object and the name of a public function, i.e. `array($SomeObject, 'methodName')`
 	 *  3. a class name and the name of a public static function, i.e. `array('SomeClass', 'methodName')`
-	 *  4. a static function name in the form `'SomeClass::methodName'`
 	 *
 	 * @access protected
 	 * @param mixed $var
 	 * @return bool
 	 */
 	protected function _varIsCallable($var) {
-		if (is_string($var) && (strpos($var, '::') == false)) {
-			return false;
-		}
-		return is_callable($var);
+	  return !is_string($var) && is_callable($var);
 	}
 }
 

+ 0 - 3
test/MustacheHigherOrderSectionsTest.php

@@ -40,9 +40,6 @@ class MustacheHigherOrderSectionsTest extends PHPUnit_Framework_TestCase {
 	public function testStaticSectionCallback() {
 		$this->foo->trimmer = array(get_class($this->foo), 'staticTrim');
 		$this->assertEquals($this->foo->name, $this->foo->render('{{#trimmer}}    {{name}}    {{/trimmer}}'));
-
-		$this->foo->trimmer = 'Foo::staticTrim';
-		$this->assertEquals($this->foo->lorem, $this->foo->render('{{#trimmer}}    {{lorem}}    {{/trimmer}}'));
 	}
 
 	public function testViewArraySectionCallback() {