Clase ColorTelevision

package com.entertaiment;

public class ColorTelevision extends Television {

 public ColorTelevision(String proveedor) {
 super(proveedor);
 
 }
 public ColorTelevision(String proveedor, int color) {
 super(proveedor);
 colorTv=color;
 }
 private int colorTv;
 
 public ColorTelevision(String marca, int volumen, String proveedor) {
 super(marca, volumen, proveedor);
 // TODO Auto-generated constructor stub
 }

 public String getMarca(){
 return super.getMarca()+" TV!";
 }
 public String toString(){
 return super.toString()+" | "+colorTv;
 }

}

Test Referencias y debug

testref

public class TestRefTest {

 public static void main(String[] args) {
 TestRef c1=new TestRef();
 TestRef c2=new TestRef();
 c1.numero=3;
 c1.texto="c1";
 c2.numero=30;
 c2.texto="c2";
 
 System.out.println(c1.toString());
 System.out.println(c2.toString());
 TestRef c3=c1;
 System.out.println(c3.toString());
 c3.texto="c3";
 System.out.println(c1.toString());
 System.out.println(c1==c3);
 c3.cambiar2(c1);
 System.out.println(c1.toString());
 c3.texto="c2";
 System.out.println(c1==c3);
 //Destruir objetos
 c1=null;
 c3=null;
 for(int i=0;i<10;i++){
 System.out.println(i);
 }
 
 }

}

La clase:

public class TestRef {
 public int numero;
 public String texto;
 public String toString(){
 return numero+"|"+texto;
 }
 public void cambiar(TestRef c){
 c=null;
 }
 public void cambiar2(TestRef c){
 c.texto="CAMBIADO";
 }
}

Autenticación cakePHP 5

Ponemos las siguientes funciones en el UsuariosController:

 public function login() {

 if ($this->request->is('post')) {
 $passwordHasher = new BlowfishPasswordHasher();
 if ($this->Auth->login()) {
 return $this->redirect($this->Auth->redirectUrl());
 }
 $this->Session->setFlash(__('Invalid username or password, try again'));
 }
}

public function logout() {
 return $this->redirect($this->Auth->logout());
}

Controller callbacks

Retrollamadas (“Callbacks”)

Los controladores de CakePHP vienen con retrollamas (callbacks) empotradas que puedes usar para insertar lógica justo antes o después de que las acciones del controlador sean llevadas a cabo.

beforeFilter()

Esta función se ejecuta antes de toda acción en el controlador. Es un lugar práctico para comprobar una sesión activa o inspeccionar los permisos del usuario.

beforeRender()

Llamada tras la lógica de acción del controlador, pero antes de que la vista es renderizada. Este callback no es utilizado a menudo, pero puedes necesitarlo si estás llamando a render() manualmente antes del final de una acción dada.

afterFilter()

Llamada tras toda acción del controlador.

afterRender()

Llamada tras haber sido renderizada una acción.