At 10:03 PM 6/30/2002 +0200, Sascha Schumann wrote:
>On Sun, 30 Jun 2002, Andi Gutmans wrote:
>
> > My only problem with this patch is that I don't like API's which pass
> > around structs. I always find it cumbersome to have to create and fill the
> > struct and then pass it.
> > Can you think of something similar without using structs?
>
> If you look at the main body of the function, you will see a
> number of variables which script authors might want to
> overwrite in the future.
>
> Everytime an addition occurs, the main interface would have
> to change. You might end up with something like
>
> sapi_add_header12("Test: X", 7, 1, 0, 404, 8372383, 123,
> "", "utf8", "filter_code", 0, -1);
>
> We are almost half way there.
>
> With the new interface of sapi_header_op(), we won't have
> this problem. It will continue to exist unchanged,
> regardless of how many variables it might accept. Extension
> developers will be happy about this, because it avoids BC
> issues. The interface is also less bug prone because of its
> improved semantics.
>
> And thus, I conclude that passing in a struct is the most
> versatile way for this kind of API.
I understood the rational of using a struct from the beginning. I still in
general don't like using structs very much because as I mentioned it's not
as easy to use. I prefer having 2-3 methods then having one method which I
need to pass a struct to. (There is the option of var_args btw, but I agree
that that is probably a worse option).
If enough people think this change is a good thing then go ahead and commit
it. It's no as if I think this is the end of the world. Then again, I'm
sure we can work out the 2-3 function prototypes we need which would do the
same and would be easier to use.
Andi
--
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, visit: http://www.php.net/unsub.php