[wp-trac] [WordPress Trac] #22538: 'wp_image_editor_class' vs. 'wp_image_editors'
WordPress Trac
noreply at wordpress.org
Sat Nov 24 00:11:16 UTC 2012
#22538: 'wp_image_editor_class' vs. 'wp_image_editors'
-------------------------+--------------------
Reporter: scribu | Owner:
Type: enhancement | Status: new
Priority: normal | Milestone: 3.5
Component: Media | Version: trunk
Severity: normal | Resolution:
Keywords: has-patch |
-------------------------+--------------------
Comment (by nacin):
I'd really like to see what we can do to model this after WP_Http as much
as possible, as it has served us well, and it is good to have consistency.
Check it out:
{{{
public static function test( $args = array() ) {
if ( ! function_exists( 'curl_init' ) || !
function_exists( 'curl_exec' ) )
return false;
$is_ssl = isset( $args['ssl'] ) && $args['ssl'];
if ( $is_ssl ) {
$curl_version = curl_version();
if ( ! (CURL_VERSION_SSL &
$curl_version['features']) ) // Does this cURL version support SSL
requests?
return false;
}
return apply_filters( 'use_curl_transport', true, $args );
}
}}}
Note how SSL is tested, based on $args. This would be equivalent to
checking mime types in test(). In our case, the filter outside test() does
make more sense.
I actually like our existing filters. I would not tweak much, given the
chance. But:
* image_editors should be a simple array of available editors. $args
should not be desired here, as it allows us to be able to always figure
out all registered editors, regardless of conditionals. Better for
forwards compatibility.
* We should probably have a variable filter on the result of test(),
which *should* receive $args. Think about the use case of *removing* a
single editor from the rotation based on a certain situation. You don't
want to force a particular one, you just want to remove it. Also great for
unit testing.
* A image_editor_class filter probably makes more sense as the return
value of _wp_image_editor_choose(), not in wp_get_image_editor(), so
supports() uses that information to know whether an editor is available.
Alternatively, there should be a filter on supports().
* image_editor_class should be on the class name — I don't really see the
reason for it to be on the object. If anything, we should fire an *action*
with the instantiated object to allow triggers to happen then.
--
Ticket URL: <http://core.trac.wordpress.org/ticket/22538#comment:26>
WordPress Trac <http://core.trac.wordpress.org/>
WordPress blogging software
More information about the wp-trac
mailing list