Zend Framework Disable Template Renders

Bu yazı 2013 yılında yazıldı. Bazı bilgiler ve araçlar güncelliğini yitirmiş olabilir.

    if ( ! $this->getRequest()->isXmlHttpRequest() ) {
      // Bu Ajax isteği değil
    }

Merhabalar, Zend Framework’de Action yazdığımızda view’e ihtiyaç duyar ve view’da controller ismine ait klasörde action ismine ait sonu .phtml ile biten dosyayı arar bulamazsa hata verir. Peki Ajax işlemler için ne yapacağız ? Ajax işlemlerinde .phtml uzantılı bulamayacağı için hatayı ekrana basacaktır. Bunun çözümü aslında çok basit 🙂 Action’ın render etmesini engellemek için ;

    
   public function AjaxAction() {     
      $this->_helper->layout()->disableLayout();
      $this->_helper->viewRenderer->setNoRender( true );
      //Ajax işlemleri burada
     
    }

Eğer gelen isteğin XmlHttpRequest olup olmamasına göre işlem yapmak isterseniz;

    if ( ! $this->getRequest()->isXmlHttpRequest() ) {
      // Bu Ajax isteği değil
    }

Bir hata durumunda ben genellikle yürütülen eylemi durdurup ana sayfaya yönlendiriyorum. Eğer tüm Ajax Action’larınızı tek bir Controller içerisinde kullanmak isterseniz ilgili Controller’in init() methodunda render etmesini disable edebilirsiniz 🙂 İyi kodlamalar.

Mustafa Toker

Backend mühendisi ve ekip lideri. JVM, Spring Boot, Oracle ve yapay zekâ destekli yazılım geliştirme üzerine sahadan notlar yazıyorum.