Nasıl bu özel soruna Zend Cache kullanırım

2 Cevap php

Ben kullanıcı olarak veya açmış olup olmadığını dayalı iki farklı bakış komut işleyen bir eylem var.

class IndexController extends Zend_Controller_Action
{
    ....
        public function indexAction()
            {

                $auth = Zend_Auth::getInstance();
                if($auth->hasIdentity())
                {
                    $this->render('indexregistered');
                    return; 
                }
                else {
                    $this->render('indexpublic');
                    return;
            }   
    }   
    ....    
} 

Ben Zend Cache nasıl kullanılacağı hakkında oldukça yararlı örnekler gördük ve eylem belli bir komut işler olduğu gerçeğine dayalı gibi görünüyor.

Ne gerçekten bakıyorum oldukça hit alır ve ben gerçekten mümkünse Zend MVC yükü önlemek istiyorum indexpublic komut önbelleğe için en iyi yaklaşımdır.

2 Cevap

Zend_Cache_Frontend_Output Burada ihtiyacınız olabilir:

if (!($cache->start('indexpublic'))) {
    // output everything as usual
    $this->render('indexpublic');
    $cache->end(); // output buffering ends   
}

Bundan önce, önbellek yöneticisi, örneğin, (bootstrap olabilir) başlatılması gerekiyor:

$frontendOptions = array(
   'lifetime' => 7200
);

$backendOptions = array(
    'cache_dir' => '/tmp/'
);

// getting a Zend_Cache_Frontend_Output object
$cache = Zend_Cache::factory('Output',
                             'File',
                             $frontendOptions,
                             $backendOptions);

Bunu MVC framework bir denetleyicisi eylem girdikten sonra Zend_Cache yaşadığı tam bağlam beri zaten kaynakların bir sürü kullandım, burada herhangi anlamlı bir şekilde "MVC yükü önlemek" için olası değil yönlendirme ve kurulum.

Pahalı şeyler indexpublic.phtml iç kısmında giderse söyledi, sen bir sürü şeyler önbelleğe için şablon içinde Zend_Cache_Frontend_Output kullanarak içine görünebilir. Indexpublic (DB vurur gibi) pahalı operasyonlar başladı, bu değerli olabilir. Bu biçimlendirmeyi oluşturmasını sadece saf PHP varsa, size çok iyileşme görmek olası konum.

Bir şey yapmadan önce, ben çok dikkatli uygulama davranışlarını incelemek ve erken değil doğru yerde optimize ve emin olun öneririm.