kayıt-sınıf php içinde depolanan nesnelerin kapsamı

0 Cevap php

Benim isteği, validator, veritabanı ve yönlendirici nesneleri depolamak bir sicil var. Yani benim formları doğrulama için, ben giriş alanları kontrol edilir sınıf MyForm bir yöntemi kullanabilirsiniz. Kullanıcı girişi yanlış olduğunda, sonra Kayıt Defteri :: getInstance () -> onaylayıcısı-> hatalar Siciline kayıtlı ve her yerde kodunda mevcut almak böylece setErrors ($ hataları), denir.

Myview.php in> onaylayıcısı-> getErrors () - i () Kayıt Defteri :: getInstance dememin sebebi

</head><body>
<form accept-charset="utf-8" action="newuser.php" method="post">
<?php
    $errors = Registry::getInstance()->validator->getErrors();
    if($errors) {
        foreach($errors as $error) {
            echo '<p>'. $error . '</p>';
        }
    }
?>

$ Olsa MyForm-> isValid () burada kayıt defterindeki hataları doldurur :: getInstance () -> onaylayıcısı-> setErrors ($ hata) doğru, açıkça var_dump ile görmek (Kayıt :: getInstance ()), validator nesne null, Myview.php çağrıldığında.

Yani yine aynı nesnedir. Ama errortexts gitti. Neden?

Ve nerede MyForm.php doğrulama false olduğunda ben Myview.php metni kapmak böylece, errortexts saklamak için en iyi yer neresidir?

Edit: this is the registry

class Registry {
private static $_instance = null;
private $_cache = array();

public static function getInstance()
{
    if(null === self::$_instance) {
        self::$_instance = new self;
    }
    return self::$_instance;
}


public function __set($index, $value) {

    if(!empty($index) && is_string($index)  && !array_key_exists($index, $this->_cache)) {
        $this->_cache[$index] = $value;
    }
    else {
        // Errorhandling here ...
    }
}

public function __get($name)
{
    if(array_key_exists($name, $this->_cache) && !empty($this->_cache[$name])) {
        return $this->_cache[$name];
    }
    else {
        return null;
    }
}

public function __unset($index)
{
    unset($this->_cache[$index]);
}


private function __construct() {}
private function __clone() { }

}

Ben View ve Controller arasında iletişim ile ilgisi yoktur, sanırım. Her nasılsa çalışmıyor. Ben burada sadece html, oluşturulan değil Görünüm eklemeyi bilmiyorum. Bu benim RegistrationController olduğunu

class RegistrationController extends Controller {
public function execute()
{
    $form = new RegistrationForm;
    if($this->request->issetPost()) {
        $posts = $this->request->getPosts();
        if($form->isValid($posts)) {
            // [..save .]
        }
    }
}

} I am still confused with the view. Like:

switch($page) {
case 'index':
    // ..
    break;
case 'news':
    // ..
    break;
case 'register_new_user':
    $newuser = new RegistrationController;
    $newuser->sign();
    break;

} Nerede bu eylem hataları ile yapıldığını söylemek, bir görünüm aramak için bir yer, yani metin göstermek görünüm için Kayıt-Kapta var?

0 Cevap