-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Just to support your proposal: yes. Even as a long term PHP user I found
exactly this problem some months ago. Since I'm familiar with the PHP
source and usually have a checkout around somewhere I can quickly check
functions and I was lazy not reporting it; but still it costs me time also.

So, +1 for this idea.

- - Markus

Richard Lynch wrote:
> This may not be sexy enough for Summer of Code, so I thought I'd ask
> for feedback on this idea, and invite some help to formalize it
> better...
> 
> [abstract]
> PHP Docmentation should be even more concise than it already is about
> what is returned in boundary conditions and error conditions.
> 
> The Project will consist of examining virtually all PHP functions and
> their documentation to find under-documented error conditions and
> boundary conditions.
> [/abstract]
> 
> Here's an example that cropped up today on PHP-General:
> 
> set_error_handler is very well-documented, and obviously somebody
> worked very very hard to write the "Return Values" section.  (Yay!)
> 
> "Returns a string containing the previously defined error handler (if
> any), or NULL on error."
> 
> Alas, for the case of no previously defined error handler (and no
> error in setting the handler), it's not really well-defined.
> 
> It might return FALSE for no previously defined error handler.
> 
> Or maybe 0, since it's an "old" function.
> 
> Or it could be '', since it's usually the name of a function being
> returned.
> 
> Or, to be pedantic, it could conceivably even be an empty array if the
> presumption is that "most" users use class/method for error_handler. 
> Obviously, I'm reaching "too" far here to drive home a point, which is
> that it's not actually documented, and this COULD be a valid
> interpretation of the docs.
> 
> So without running a test script, one doesn't know which return value
> to test for to detect no previously defined error_handler, if one
> cares for some reason.
> 
> Worse, one can't be 100% certain that, for reasons not immediately
> apparent, set_error_handler might return FALSE in some PHP release
> versions and 0 in others, as the function got updated/debugged over
> time and release versions.
> 
> Or maybe it could even return FALSE in CGI but '' in other SAPIs, for
> reasons not apparent without reading PHP source.
> 
> Again, this is too far of a reach for this specific example, but there
> are other examples of functions with inherent CGI/SAPI dependencies
> where it's right on target.
> 
> So, one has to write code that is either equally imprecise and relies
> on PHP type juggling for error-handling and boundary conditions, or
> one has to test under many multiple platforms which is impractical, or
> one must read CVS source, with diffs, and hope one can correctly
> stumble through the logic in some cases, to find out what the return
> value really will be.
> 
> Again, I'm pretty sure it's a no-brainer for THIS function to find out
> what the return value is, at least in any given version of PHP -- But
> some more complex functions will not be so obvious.
> 
> So I'm proposing a potential Summer of Code project to seek out these
> boundary conditions and document the behaviour, with PHP release
> version changes as needed.
> 
> In particular, I'm hoping for a more "formal" layout in the Manual of
> some kind of table of error/boundary conditions, and the return
> values, rather than the rather "loose" English statements that
> currently seem to be the norm.
> 
> I know this is a huge task in scale, especially as the paradigms for
> returning 0/1 and TRUE/FALSE changed when TRUE/FALSE were introduced
> to PHP.
> 
> It's also rather large in scope, as determining what are/aren't
> boundary conditions for various functions is possibly beyond the
> experience of a Summer of Code project for a truly complete job to be
> done.
> 
> But what I consider the best documentation on the planet has this
> "hole" I keep falling into:
> 
> What are the return values REALLY going to be in boundary and error
> conditions, as documented behaviour?
> 
> I realize that HUGE strides have been made in this regard, and I am
> *NOT* trying to demoralize nor devalue those efforts!
> 
> I can remember the days when almost NOTHING was documented for return
> types, much less values under error conditions, and adding the
> prototype and mucho documentation has been done.
> 
> I'm proposing a SoC project to "finish off" the last of this long-term
> effort, as much as Docs are ever "finished"
> 
> I also realize that there is nothing (other than my own stupidity and
> lack of time) to stop me from just doing this myself.
> 
> That said, I think it could be a good SoC project, in that it will
> expose the Student to a LOT of the features of PHP, will have them
> writing small but interesting snippets of code using all the
> extensions (.phpt files perhaps), and will make a significant
> worthwhile improvement to the most excellent PHP Documentation.
> 

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.1 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFEWx0I1nS0RcInK9ARApyKAJ9orUkk3aGvsOkt9ho67zI06Dc2iQCgxk/Q
7g6z5OEyLLnumvYEXYOf/ak=
=Y6I7
-----END PGP SIGNATURE-----

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

Reply via email to