> The implementation should be simpler and more efficient than using
declare().

This can't really be correct, if a call to

function mine(int $one, double $two) {

}

results in three function calls then that's going to cost considerably.

I don't like the idea of user function being called, but don't hate the
idea of an internal
API that allows an extension to implement a type system.

It could be much simpler, like turning zend_verify_arg_type into a pointer
to a function like
we did with gc function.

All of this is inferior to dual mode, in my opinion.

Cheers
Joe

On Thu, Feb 26, 2015 at 10:34 AM, Benjamin Eberlei <kont...@beberlei.de>
wrote:

> On Thu, Feb 26, 2015 at 11:10 AM, Dmitry Stogov <dmi...@zend.com> wrote:
>
> > Hi Anthony,
> >
> > What do you think about using a user level callback for strict type
> checks
> > instead of declare(). It won't allow changing behavior per file, but this
> > has its own cons and pros.
> >
> > <?php
> > set_strict_type_checker(function ($class_name, $function_nume, $arg_num,
> > $expected_type, $value, $file, $line) {
> >   ...
> >   return false;
> > });
> > include("orig_index.php");
> > ?>
> >
> > If callback is not set, arguments are converted according to standard
> > rules, if set and returns false - fatal error or exception is thrown.
> >
> > The implementation should be simpler and more efficient than using
> > declare().
> >
> > Thanks. Dmitry.
> >
>
> This ruins portability with third party libraries completely.
>

Reply via email to