[Flow] getters for option arrays (Surf)
    Helmut Hummel 
    helmut.hummel at typo3.org
       
    Sun Nov  2 16:50:29 CET 2014
    
    
  
Hi Martin!
On 02.11.14 14:47, Martin Kutschker wrote:
> public function getOption($key) {
>     return $this->options[$key];
> }
>
> If you ask for an option that has not been set, PHP will issue a notice
> which in turn be changed by Flow into an exception. I know I can fiddle
> around with the PHP configs (and Flow configs?), but shouldn't be the
> code changed to avoid this?
 From what I know from the Surf code, this is on purpose!
> A  simple solution:
>
> public function getOption($key) {
>     return isset ($this->options[$key]) ? $this->options[$key] : NULL;
> }
Instead, the code that evaluates the options should decide if an option 
is required or not.
If an option is optional, the code (e.g. in a task) must call 
->hasOption() first and act accordingly.
It is also possible to use ->hasOption() for required options to give 
reasonable error messages instead of having an exception thrown because 
of a notice.
But in any case this is better to throw an exepction instead of 
proceeding and accidently using a NULL value which could lead to 
unexpected results.
Kind regards,
Helmut
-- 
Helmut Hummel
Release Manager TYPO3 6.0
TYPO3 CMS Active Contributor, TYPO3 Security Team Member
TYPO3 .... inspiring people to share!
Get involved: typo3.org
    
    
More information about the Flow
mailing list