Ver Mensaje Individual
  #7 (permalink)  
Antiguo 27/02/2013, 14:25
Avatar de carlos_belisario
carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Duda de novato en YiiFramework

Pues te lo vuelvo a repetir, es solo un ejemplo y que no es funcional ya que no usan ningun tipo de DB, dicho por ellos mismos
Código PHP:
Ver original
  1. /**
  2.      * Authenticates a user.
  3.      * The example implementation makes sure if the username and password
  4.      * are both 'demo'.
  5.      * In practical applications, this should be changed to authenticate
  6.      * against some persistent user identity storage (e.g. database).
  7.      * @return boolean whether authentication succeeds.
  8.      */

ahora
Cita:
En rules(): en este caso hace referencia al método authenticate de la misma clase
Código:
array('password', 'authenticate'),
el metodo rules son las reglas de validación que se ejecutan al procesar el modelo. Entonces authenticate es simplemente eso una regla de validación que declararon dentro del mismo modelo, porque tiene dos parametros que no usa en la declaración?? por convención de declaración de reglas de validación y de ahí el link que te deje que lo explica mucho mejor que yo.

Cita:
En login(): en este caso hace referencia al método authenticate de la clase UserIdentity

Código PHP:
Ver original
  1. $this->_identity=new UserIdentity($this->username,$this->password);
  2.             $this->_identity->authenticate();
Y parece ser que en este método se altera el número de parámetros que se le pasan, es decir se hace un overriding del mismo.
Ahora me surgen más dudas, ya que el método authenticate de la clase UserIdentity consulta la contraseña de Gii que no se que tiene que ver con todo esto (ya que Gii lo he utilizado para crear el crude la aplicación , pero no se que pinta su contraseña en esto), la verdad que estoy un poco hecho un lio.
En ningun momento hay sobreescritura de metodo ya que el metodo authenticate de la clase UserIdentity es llamado tal cual como esta declarado y no recibe ningún parámetro, lo que recibe los parámetros user y password es el constructor de la clase UserIdentity o mejor dicho el constructor de su padre CUserIdentity, que es el que se ejecuta al hacer la instancia ya que no hubo sobreescritura en la declaración de la clase UserIdentity.

Ahora mi consejo es que te concentres realmente en lo importante que es en el desarrollo de una app con Yii ya que te estas liando con un ejemplo que no es funcional en ningún caso, si deseas ver bien sobre login hay ejemplos mas completos en la misma wiki de Yii que involucran a la base de datos, RBAC y otras cosas más útiles. Además que hay muchos modulos o componentes para manejar usuarios bien completos como Cruge, YUM, yiiRight, etc., pero es solo un consejo, porque de verdad en mi opinión te estas volviendo un lío con algo infuncional, ya te va a tocar volverte lío con cosas que si son funcionales e importantes, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way