Zend Framework kontrolör sınıfı adını değiştirmek için nasıl

2 Cevap php

Örneğin, biz index denetleyicisi var:

class IndexController{ ...

Nasıl yapılır mesela

class Index_Controller{ ...

çalışır?

2 Cevap

I (and wouldn't really recommend doing this : knowing how classes are nammed is nice, because they follow the standard, when you start working on an existsing ZF-based project !) kendim hiç denemedim, ama bir çözüm olabilir; 12.6.2. Subclassing the Dispatcher: manuel aşağıdaki bölüme bakın

Sayfanın alt kısmında, diyor (quoting, emphasis mine):

Possible reasons to subclass the dispatcher include a desire to use a different class or method naming schema in your action controllers, or a desire to use a different dispatching paradigm such as dispatching to action files under controller directories (instead of dispatching to class methods).

Yani, bu sen soruyorsun ne yardımcı olabilir - bir kez daha, ben bu işi hiç görmedim, o yüzden kesin söyleyemem, ama bu nihai çözümü için bir ipucu verecektir umarım ...

Pascal MARTIN önerildiği gibi, dağıtıcı sınıflara gitmek için doğru yoldur - ben bile verilen ZF-adlandırma kuralı sapma iyi kurulmuş olması gerektiği fikrini paylaşmak istiyorum.

Zend_Controller_Dispatcher_Abstract, sırasıyla kontrolör sınıfın adını ve eylem yöntemini belirlemek için iki yöntem sunar:

public function formatControllerName($unformatted)
{
    return ucfirst($this->_formatName($unformatted)) . 'Controller';
}

public function formatActionName($unformatted)
{
    $formatted = $this->_formatName($unformatted, true);
    return strtolower(substr($formatted, 0, 1)) . substr($formatted, 1) . 'Action';
}

Bana sadece alt sınıf Zend_Controller_Dispatcher_Abstract ve gerekli adlandırma maç için bir veya her iki yöntem de geçersiz kılar.