[wp-trac] [WordPress Trac] #22921: Allow get_users() to return array of values via 'fields' parameter
WordPress Trac
noreply at wordpress.org
Sat Dec 15 15:47:35 UTC 2012
#22921: Allow get_users() to return array of values via 'fields' parameter
-------------------------------------+------------------------------
Reporter: chipbennett | Owner:
Type: enhancement | Status: new
Priority: normal | Milestone: Awaiting Review
Component: Users | Version: 3.5
Severity: normal | Resolution:
Keywords: has-patch needs-testing |
-------------------------------------+------------------------------
Comment (by chipbennett):
Replying to [comment:5 DavidAnderson]:
> dd32: Yes, that's right - it'll break code that uses the existing
function. I've written such code. The existing function does something
useful, and works whilst doing it, and people are using it. There's a
real-world cost to breaking that.
Let's consider the purpose of the `'fields'` array parameter: to return
''only the fields specified'', instead of ''all'' user data. The code
provides two forms of output, based on the type of input:
1. An array of ''objects'' comprised of one or more values, if
'''`'fields' => array( $fields )`''' is passed
2. An array of ''values'', if '''`'fields' => $field`''' is passed
Thus, the only way this patch would break existing code is if someone
passed a field other than `'ID'` for `'fields'`, e.g.:
{{{
$user_IDs = get_users( array( 'fields' => 'user_email' ) );
}}}
...and then used the output as if an array of '''IDs''' was the expected
return value.
That just doesn't make logical sense. Why would someone pass
'''`'user_email'`''' as the value for `'fields'`, and then subsequently
use the output as if '''`'ID'`''' had been passed?
Any normal developer would look at that output and do one of two things:
1. Change the function call to '''`'fields' => 'ID'`''', if the
''desired'' return value is `'ID'`
2. Change the function call to pass '''`'fields' => array( 'user_email'
)`''' if the ''desired'' return value is `'user_email'`
I contend that if a developer leaves the code as-is, the ''user code'' is
at fault, and such a use case shouldn't be something that keeps the core
function itself from being improved.
--
Ticket URL: <http://core.trac.wordpress.org/ticket/22921#comment:6>
WordPress Trac <http://core.trac.wordpress.org/>
WordPress blogging software
More information about the wp-trac
mailing list