Hi,
-- I've been having problems with how return values and success bools are getting mixed throughout the code, first here are some examples:
1. The default bootstrap.php suggests, that Configure::config() and Configure::load() have no return values, but throw exceptions.
The truth is, load() returns a bool, config() returns void, and both don't throw any exceptions.
2. Functions like Configure::write() or Configure::clear() have a bool return value, thus suggesting me that I have to check it and apply error handling.
However, they can't possibly ever fail and should both return void.
3. As already mentioned in https://github.com/cakephp/cakephp/issues/3284, using one variable for both return value and success checking leads to trouble.
Another example here: https://github.com/cakephp/cakephp/blob/3.0/src/Cache/Engine/ApcEngine.php#L85
The phpdoc says "false if the data doesn't exist" which is wrong. Correct would be using a referenced $success variable, see http://www.php.net/manual/de/function.apc-fetch.php.
The success value would have to propagate down through the base classes in the same way: mixed Cache::read($key, &$success)
4. Another possibilty would be using exceptions, but this is a choice of design.
To sum it up: Nice would be having some consistency, so it's always clear by looking at the function declaration what really happens. I was also surprised finding the handling of "display_errors" setting in Configure::write(), without being mentioned in phpdoc. This implied, that Configure::load() *had* to use Configure::write() in order to set display_errors in order to work (see https://github.com/pschiel/cakephp/commit/d7f5cc08de1c15cea1ec0ac762ed4cbe389e7248 )
What are your thoughts?
Regards,
Patrick
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP
---
You received this message because you are subscribed to the Google Groups "CakePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cake-php+unsubscribe@googlegroups.com.
To post to this group, send email to cake-php@googlegroups.com.
Visit this group at http://groups.google.com/group/cake-php.
For more options, visit https://groups.google.com/d/optout.
No comments:
Post a Comment