WordPress.org

Plugin Directory


Ignore:
Timestamp:
08/31/11 01:53:26 (6 years ago)
Author:
fredericktownes
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • w3-total-cache/trunk/lib/W3/Db.php

    r420800 r430980  
    6969 
    7070    /** 
    71      * PHP5 constructor 
    72      * 
     71     * Request-global cache reject reason 
     72     * null until filled 
     73     * 
     74     * @var string 
     75     */ 
     76    var $cache_reject_reason = null; 
     77 
     78    /** 
     79     * Result of check if caching is possible at the level of current http request 
     80     * null until filled 
     81     * 
     82     * @var boolean 
     83     */ 
     84    var $_can_cache_once_per_request_result = null; 
     85 
     86    /* 
    7387     * @param string $dbuser 
    7488     * @param string $dbpassword 
     
    325339    function _can_cache($sql, &$cache_reject_reason) { 
    326340        /** 
    327          * Skip if disabled 
    328          */ 
    329         if (!$this->_config->get_boolean('dbcache.enabled')) { 
    330             $cache_reject_reason = 'Database caching is disabled'; 
    331  
    332             return false; 
     341         * Skip if request-wide reject reason specified.  
     342         * Note - as a result requedt-wide checks are done only once per request 
     343         */ 
     344        if (!is_null($this->cache_reject_reason)) { 
     345            $cache_reject_reason = 'Request-wide ' . $this->cache_reject_reason; 
     346 
     347            return false; 
     348        } 
     349        
     350        /** 
     351         * Do once-per-request check if needed 
     352         */ 
     353        if (is_null($this->_can_cache_once_per_request_result)) { 
     354            $this->_can_cache_once_per_request_result = $this->_can_cache_once_per_request(); 
     355            if (!$this->_can_cache_once_per_request_result) { 
     356                $cache_reject_reason = 'Request-wide ' . $this->cache_reject_reason; 
     357                return false; 
     358            } 
    333359        } 
    334360 
     
    337363         */ 
    338364        if (defined('DONOTCACHEDB') && DONOTCACHEDB) { 
    339             $cache_reject_reason = 'DONOTCACHEDB constant is defined'; 
     365            $this->cache_reject_reason = 'DONOTCACHEDB constant is defined'; 
     366            $cache_reject_reason = $this->cache_reject_reason; 
    340367 
    341368            return false; 
     
    346373         */ 
    347374        if (defined('DOING_AJAX')) { 
    348             $cache_reject_reason = 'Doing AJAX'; 
     375            $this->cache_reject_reason = 'Doing AJAX'; 
     376            $cache_reject_reason = $this->cache_reject_reason; 
    349377 
    350378            return false; 
     
    355383         */ 
    356384        if (defined('DOING_CRON')) { 
    357             $cache_reject_reason = 'Doing cron'; 
     385            $this->cache_reject_reason = 'Doing cron'; 
     386            $cache_reject_reason = $this->cache_reject_reason; 
    358387 
    359388            return false; 
     
    364393         */ 
    365394        if (defined('APP_REQUEST')) { 
    366             $cache_reject_reason = 'Application request'; 
     395            $this->cache_reject_reason = 'Application request'; 
     396            $cache_reject_reason = $this->cache_reject_reason; 
    367397 
    368398            return false; 
     
    373403         */ 
    374404        if (defined('XMLRPC_REQUEST')) { 
    375             $cache_reject_reason = 'XMLRPC request'; 
     405            $this->cache_reject_reason = 'XMLRPC request'; 
     406            $cache_reject_reason = $this->cache_reject_reason; 
    376407 
    377408            return false; 
     
    382413         */ 
    383414        if (defined('WP_ADMIN')) { 
    384             $cache_reject_reason = 'wp-admin'; 
     415            $this->cache_reject_reason = 'wp-admin'; 
     416            $cache_reject_reason = $this->cache_reject_reason; 
    385417 
    386418            return false; 
     
    406438 
    407439        /** 
     440         * Skip if user is logged in 
     441         */ 
     442        if ($this->_config->get_boolean('dbcache.reject.logged') && !$this->_check_logged_in()) { 
     443            $this->cache_reject_reason = 'User is logged in'; 
     444            $cache_reject_reason = $this->cache_reject_reason; 
     445 
     446            return false; 
     447        } 
     448 
     449        return true; 
     450    } 
     451 
     452    /** 
     453     * Check if can cache sql, checks which have constant results during whole request 
     454     * 
     455     * @return boolean 
     456     */ 
     457    function _can_cache_once_per_request() { 
     458        /** 
     459         * Skip if disabled 
     460         */ 
     461        if (!$this->_config->get_boolean('dbcache.enabled')) { 
     462            $this->cache_reject_reason = 'Database caching is disabled'; 
     463 
     464            return false; 
     465        } 
     466 
     467        /** 
    408468         * Skip if request URI is rejected 
    409469         */ 
    410470        if (!$this->_check_request_uri()) { 
    411             $cache_reject_reason = 'Request URI is rejected'; 
     471            $this->cache_reject_reason = 'Request URI is rejected'; 
    412472 
    413473            return false; 
     
    418478         */ 
    419479        if (!$this->_check_cookies()) { 
    420             $cache_reject_reason = 'Cookie is rejected'; 
    421  
    422             return false; 
    423         } 
    424  
    425         /** 
    426          * Skip if user is logged in 
    427          */ 
    428         if ($this->_config->get_boolean('dbcache.reject.logged') && !$this->_check_logged_in()) { 
    429             $cache_reject_reason = 'User is logged in'; 
     480            $this->cache_reject_reason = 'Cookie is rejected'; 
    430481 
    431482            return false; 
Note: See TracChangeset for help on using the changeset viewer.