On Tue, May 1, 2012 at 8:03 PM, reeze <reeze....@gmail.com> wrote:
> Hi internals:
> danko reported this bug#61422: Lack of autoload on type hinting breaks
> class_alias。
> now parmeter type hint DID NOT trying to autoload.  I think allow it
> autoloading could be helpful.
>
> BUGS&Commit for quick refer:
> - https://bugs.php.net/bug.php?id=61422
> - https://bugs.php.net/bug.php?id=39003
> - http://svn.php.net/viewvc?view=revision&revision=220906
>
> PROPOSAL(FR):
> **I'm asking if we can enable type hint autoloading?**
>
> I did some homework:
> - Before FIX for #39003, parameter type hint will try to autoload the hint
> class if not found.
>           after this fix it will not. in bug#39003: the final result was DOC
> Problem, seems we all agreed
>           that it SHOULD autoloading.
> - But in
> revision: http://svn.php.net/viewvc?view=revision&revision=220906 It was
> **FIXED**
>           I try to search RFC about typehint, I didn't find anything about
> it. It was commited really long time ago
>           almost 6 years ago, it would be very nice if Antony Dovgal still
> remember it;)
>
> REASON:
>     Here is my reason to ask whether we can enable it:
>
> 1. Autoload will only happened when function/method calling. so does any
> other autoloading,
>     I mean it wouldn't hurt performance.
> 2. Class will be used for sure, so trying to autoload it is reasonable:
>        - If we need check certain Class, then we have to use the class in
> function/method.
>        - most of time it already loaded*, so autoloading happened rarely.
> 3. If pass the wrong type and the hinted class not found  this gives
> autoloader a change to handle it
>     like the #61422's test script did. we can do something if not found.
> since we use the class in
>     function/method, autoload the class is reasonable. most of the time we
> would not use the *FEATURE*,
>     but it could make it more flexible.
>
> PATCH:
>
> 1. change zend_verify_arg_class_kind to autoload class
> 2. if class can't load, zend_fetch_class silently return (No fatal here) to
> give zend_verify_arg_class_kind a chance
>     to report previous catchable_fatal_error eg:
> Catchable fatal error: Argument 1 passed to func() must be an instance of
> AX, integer given。
>
> a simple patch attached request for comment.
>
> Finally, What do you guys think about it?
Hi:
    thanks for writing this,  but I was a little confused,  please
correct me if I mis-understand you.

    if you pass a right instance of class to a function , how can that
class not be loaded already?

    for example:
    function foo(Foo_Bar $a) {
    }

    how can you pass a Foo_Bar instance to function foo without
Foo_Bar class already defined?


thanks


>
> Thanks.
> Best,
> --
> reeze | simpie.com



-- 
Laruence  Xinchen Hui
http://www.laruence.com/

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to