[wp-trac] [WordPress Trac] #21401: Load packaged object cache when advanced-cache.php and object-cache.php don't implement wp_cache_init( )

WordPress Trac noreply at wordpress.org
Sat Dec 1 01:10:21 UTC 2012


#21401: Load packaged object cache when advanced-cache.php and object-cache.php
don't implement wp_cache_init( )
----------------------------+------------------------------
 Reporter:  wonderboymusic  |       Owner:
     Type:  enhancement     |      Status:  new
 Priority:  normal          |   Milestone:  Awaiting Review
Component:  Cache           |     Version:  3.0
 Severity:  normal          |  Resolution:
 Keywords:  has-patch       |
----------------------------+------------------------------

Old description:

> '''This ticket has 2 purposes:'''
>
> 1) introduces {{{wp_using_ext_object_cache()}}} - mimic
> {{{wp_suspend_cache_invalidation()}}} and disallow direct access to
> {{{$_wp_using_ext_object_cache}}}, cleans up importing of globals in
> functions and provides function to modify that global[[BR]][[BR]]
> 2) allows {{{WP_CACHE}}} to load the wp-packaged object cache when
> {{{advanced-cache.php}}} and {{{object-cache.php}}} don't implement
> {{{wp_cache_init()}}}
>
> When '''define( 'WP_CACHE', true )''':
>
> As it stands, if you declare {{{WP_CACHE}}} = true, WP will try to load
> {{{advanced-cache.php}}} without checking if the file exists (it does the
> check for {{{object-cache.php}}}). {{{advanced-cache.php}}} shouldn't be
> required. Batcache is awesome, but at its core is just a handler for an
> output buffer. You should be able to mess with {{{object-cache.php}}} and
> not worry about {{{advanced-cache.php}}}. And by worry about I mean, have
> {{{WP_DEBUG}}} on and not get a warning / error.
>
> {{{wp_start_object_cache()}}}, at its core, is on the hunt for
> {{{wp_cache_init()}}} and then sets the toggle for the external object
> cache. We only care about the external object cache if it has that
> function. Rather than throwing a fatal error if their is a missing
> method, load the default object cache.
>
> If someone installs Batcache and Memcached properly, then nothing changes
> - files load, all is good. If they install 2 blanks files, the default
> Object Cache will load. If they install an external object cache without
> {{{wp_cache_init()}}}, the default cache loads.
>
> IMO - there is no reason to turn off non-persistent caching or throw a
> fatal error if the author of a cache plugin sucks or the user made a
> mistake in moving the files.

New description:

 '''This ticket has 2 purposes:'''

 1) introduces {{{wp_using_ext_object_cache()}}} - mimic
 {{{wp_suspend_cache_invalidation()}}} and disallow direct access to
 {{{$_wp_using_ext_object_cache}}}, cleans up importing of globals in
 functions and provides function to modify that global[[BR]][[BR]]
 2) load the wp-packaged object cache when {{{object-cache.php}}} doesn't
 implement {{{wp_cache_init()}}}
 3) adds file_exists for advanced-cache.php

 {{{wp_start_object_cache()}}}, at its core, is on the hunt for
 {{{wp_cache_init()}}} and then sets the toggle for the external object
 cache. We only care about the external object cache if it has that
 function. Rather than throwing a fatal error if their is a missing method,
 load the default object cache.

 If someone installs Memcached properly, then nothing changes - file loads,
 all is good. If they install a blanks file, the default Object Cache will
 load. If they install an external object cache without
 {{{wp_cache_init()}}}, the default cache loads.

 IMO - there is no reason to turn off non-persistent caching or throw a
 fatal error if the author of a cache plugin sucks or the user made a
 mistake in moving the files.

--

Comment (by wonderboymusic):

 I chatted with Jaquith earlier and he pointed out that half of this ticket
 made no sense - edited!

-- 
Ticket URL: <http://core.trac.wordpress.org/ticket/21401#comment:10>
WordPress Trac <http://core.trac.wordpress.org/>
WordPress blogging software


More information about the wp-trac mailing list