Hi :

I have searched achieves , but did not find any topics related to this problem.

I am use zend framework, PHPTal as my template engine.

function phptal_path($base, $path, $nothrow=false) in class PHPTAL_Context uses
"method_exists" to check if a method exists in a object or not.

for example:

 // look for isset (priority over __get)
            if (method_exists($base, '__isset')){
                if ($base->__isset($current)){
                    $base = $base->$current;
                    continue;
                }
            }
            // ask __get and discard if it returns null
            else if (method_exists($base, '__get')){
                $tmp = $base->$current;
                if (NULL !== $tmp){
                    $base = $tmp;
                    continue;
                }
            }
above code is copied from PHPTAL_Context.
if that __isset is a protected function , then
PHP throws a fatal error since method_exists does not check method's visibility.

zend framework has a Zend_Config class, in that class, __isset is a
protected function.
so if i am pass a Zend_Config object to PHPTal, and try to do some thing like
<a href="www.foo.com" tal:attributes="href config/webhost" >here</a>

PHP throws this error:
Fatal error: Call to protected method Zend_Config::__isset() from
context '' in e:\php\PEAR\PHPTAL\Context.php on line 269.

regards.

_______________________________________________
PHPTAL mailing list
PHPTAL@lists.motion-twin.com
http://lists.motion-twin.com/mailman/listinfo/phptal

Reply via email to