Şahsen ben (Creating Libraries at codeigniter.com altındaki rehberlik izleyerek bir MY_Controller oluşturmak) Kontrolör kütüphane uzanacak.
Normal olarak bir model vb kullanmak istiyorsunuz. Sonra ilgili "küresel" veri ve çağrı almak için MY_Controller sınıfında özel bir işlev yaratacak
$this->load->vars('everywhere_data', $data_from_relevant_models);
gibi $everywhere_data
bu noktadan itibaren denilen tüm görüşleri Eldeki kılacak. Sonra belki de aslında oturum için kullanıcı için bir koşullu denetimi ile, MY_Controller yapıcısı bu işleve bir başvuru ekleyin
Tüm bu verileri toplamak ve almak için karmaşık ise, sizin için bunu işlemek için bir kütüphane yazmak olabilir, ama 'controller' kısmı hala MY_Controller tarafından yapılması olacaktır: yani veri almak ve sonra vars yük-> () kullanmak için için görünümüne yayımlayabilirsiniz.
Hızlı ve denenmemiş bir örnek olarak, MY_Controller aşağıdaki gibi gibi bir şey başlamak istiyorum:
<?php
class MY_Controller extends Controller
{
private $logged_in_user;
function MY_Controller()
{
parent::Controller();
if( $this->_logged_in_userid() > 0 )
{
$this->logged_in_user = $this->_get_user( $this->logged_in_userid() );
$this->load->vars('logged_in_username', $this->logged_in_user->username );
} else {
$this->logged_in_user = false;
}
}
...
}
Gibi şeyler _logged_in_userid()
sizin için oturumu (örneğin return $this->session->userdata('logged_in_userid');
), ve _get_user()
, ilgili modellere erişebilmesi olacağını ulaşmak olacağını unutmayın.
Son olarak, onlar odaklanmak böylece bu derli toplu normal denetleyicileri bırakır $logged_in_username
(veya everywhere_data
benim ilk örnekte) vb üstbilgi içine çağırır hangi erişen bir görünümü olurdu kendi özel işlevlerini sunmaya, sizin kod birkaç kez yeniden durur VE MVC idealleri korur.