Soyut korumalı fonksiyonu ile geri?

1 Cevap php

Ben Kohana 3 auth sınıf yanı sıra bir oturum açma komut bakıyorum. Giriş sayfası auth sınıfın giriş işlevini çağırdığında, korumalı bir soyut işlevi _login üzerinden iade edilir. Neden o meraktan yapardınız? Ben aynı veri iki şekilde iade ediyorum çünkü gerçekten fark ne olacağını anlamak için görünmüyor olabilir. Kafamın etrafında yüzmek gelmez bir seçenek olduğunu korunan bir özet ile iade ederek veriler auth-> giriş fonksiyonu konulmuştur zaman ve onu bırakır zaman değiştirilmiş değildi emin olurdum. Ben bazı nüansları anlamaya çalışıyorum. Teşekkürler.

 public function login($username, $password, $remember = FALSE)
 {
  if (empty($password))
   return FALSE;

  if (is_string($password))
  {
   // Get the salt from the stored password
   $salt = $this->find_salt($this->password($username));

   // Create a hashed password using the salt from the stored password
   $password = $this->hash_password($password, $salt);
  }

  return $this->_login($username, $password, $remember);
 }

ve ....

 abstract protected function _login($username, $password, $remember);

1 Cevap

Bu şablonu yöntem tasarım modelinin bir zayıf bir örneğidir. Birisi giriş istediği her zaman, çok sayıda modifikasyonlar ve kontroller daima değişkenler karşı yapılmalıdır. Parola boş olmamalıdır. Parola sağlaması gerekir.

Sonra kullanıcı oturum bir girişim yapılır. Şimdi, bu fonksiyon, arka olduğu nedeni giriş rutin farklı şekillerde bir dizi uygulanabilir olduğunu; vb ile ya da dönem olmadan farklı veri tabanları, bir dizi

Bu fonksiyon korunduğunu nedeni kimsenin Önce çalıştırın (vb parola karma) önceki kontrolleri ve değişiklikler kalmadan, doğrudan _login somut uygulama aramak istemiyorum olmasıdır.

Yani gerçek giriş fonksiyonu somut uygulanmasından önce denir, şifre karma sonra, özetlemek için ilk kontrol şifrenin uzunluğuna sahip tüm giriş isteklerini zorlamak için bu şekilde kodlanmış olmuştur, ve.