AW: [PHP-DEV] Method check - Can someone create a RFC for it?
| From: | Frank Liepert | Date: | Wed, 20 Mar 2013 19:09:08 +0000 |
| Subject: | AW: [PHP-DEV] Method check - Can someone create a RFC for it? | ||
| References: | 1 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-66729@lists.php.net to get a copy of this message | ||
> -----Ursprüngliche Nachricht-----
> Von: Carlos Rodrigues [mailto:carlos.vini@gmail.com]
> Gesendet: Mittwoch, 20. März 2013 19:08
> An: internals@lists.php.net
> Betreff: [PHP-DEV] Method check - Can someone create a RFC for it?
>
> Hi,
>
> I'd like to suggest a new functionality for PHP. I don't know the
> internals, and i can't create a patch implementing this. I'm writing
> here in case someone likes this idea and write a RFC.
>
> We've had a problem recently where one of our developers forgot an
> "if".
>
> So instead of writing
> if ($obj->image) {
> echo $obj->image->getUrl();
> }
>
> He wrote:
> echo $obj->image->getUrl();
>
> Here, locally, it was working cause we had the image. But when we
> updated the online version we got a "Fatal error: Call to a member
> function getUrl() on a non-object" cause someone didn't upload the
> image in one of the records that we're on the home page.
>
> Fatal errors like this can't be catched by a try/catch. And since this
> getUrl() was not essential for the page, we'd better output an empty
> string then having the site offline.
>
> One might say: "you guys should have tested it better", or "The image
> field should be mandatory in the back end."
> And it's true, he should have written that extra "if {}".
>
> Examining this problem we happened to stumble open Ruby's and
> Coffescript's method check.
> Something like this:
>
> $obj->image?->getUrl()?;
>
> So my suggestion is:
>
> Create something like $foo->bar?() or $foo->bar()?, where you don't
> care whether the function exists, or if $foo is an object. If it
> doesn't exist you just return null.
> I guess there are plenty of systems out there where it's better to
> output an empty string than having your site offline, just cause the
> programmer couldn't test it completely.
>
> Thanks for reading it.
>
> Carlos Rodrigues
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
Just one question: Is your developer a template designer?