Clase personas con constructores

public class Persona {
 private String nombre;
 private int edad;
 
 public Persona(String nombre){
 this(nombre,18);
 }
 public Persona(String nombre,int edad){
 setNombre(nombre);
 setEdad(edad);
 }
 /**
 * @return the nombre
 */
 public String getNombre() {
 return nombre;
 }
 /**
 * Ponemos el nombre que le pasamos
 * @param nombre que tiene que ser, por supuesto, una cadena
 */
 public void setNombre(String nombre) {
 if (nombre.length()<2){
 nombre="Desconocido";
 }
 
 this.nombre = nombre;
 }
 /**
 * @return the edad
 */
 public int getEdad() {
 return edad;
 }
 /**
 * @param edad the edad to set
 */
 public void setEdad(int edad) {
 
 if(edad<18){
 edad=18;
 }
 
 this.edad = edad;
 }
 public String muestra(){
 return nombre+" tiene "+edad+" años";
 }
 public String muestra(String tipo){
 if (tipo.equals("Edad")){
 return muestra(1);
 }
 else{
 return muestra(0);
 }
 }
 public String muestra(int tipo){
 if (tipo==0){
 return "Se llama "+nombre;
 }
 else{
 return "Tiene "+edad+" años";
 }
 }
 public String toString(){
 return "Nombre: "+nombre+" | Edad:"+edad;
 }
}
 



Television con private

public class Television {
 private String marca="LG";
 private int volumen=6;
 /**
 * @return the marca
 */
 public String getMarca() {
 return marca;
 }
 /**
 * @param marca the marca to set
 */
 public void setMarca(String marca) {
 this.marca = marca;
 }
 /**
 * @return the volumen
 */
 public int getVolumen() {
 return volumen;
 }
 /**
 * @param volumen the volumen to set
 */
 public void setVolumen(int volumen) {
 this.volumen = volumen;
 }
 

}
public class TelevisionTest {
	public static void main(String[] args) {
	Television tv1=new Television();
	tv1.setVolumen(5);
	tv1.setMarca("Sony");
	System.out.println(tv1.getVolumen());
	System.out.println(tv1.getMarca());
	Television tv2=new Television();
	tv2.setVolumen(15);
	System.out.println(tv2.getVolumen());
	System.out.println(tv2 .getMarca());
	}
}

Ejemplo clase persona

public class Persona {
 public String nombre;
 public int edad;
 /**
 * @return the nombre
 */
 public String getNombre() {
 return nombre;
 }
 /**
 * Ponemos el nombre que le pasamos
 * @param nombre que tiene que ser, por supuesto, una cadena
 */
 public void setNombre(String nombre) {
 this.nombre = nombre;
 }
 /**
 * @return the edad
 */
 public int getEdad() {
 return edad;
 }
 /**
 * @param edad the edad to set
 */
 public void setEdad(int edad) {
 
 if(edad<18){
 edad=18;
 }
 
 this.edad = edad;
 }
 public String muestra(){
 return nombre+" tiene "+edad+" años";
 }
 public String toString(){
 return "Nombre: "+nombre+" | Edad:"+edad;
 }
}

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.