Создавая класс vistaMensaje: Как я могу создавать сообщения personaliazdos и со стилем начиная с этого класса? PHP

Как он prodria давать новое поведение подобно сообщению ошибки или объявления добавляя ему стили к следующему классу?

<?php

class VistaMensaje{

// Atributos
private $_mensaje;

// Getters y Setters

/// Construccion
public function __construct(string $pMensaje){
    $this->_mensaje = $pMensaje;
}

// Métodos de interface
public function imprimir(){ 
    echo($this->_mensaje);
}

}

часть, в которой я хочу показать персонализированное сообщение, была бы в этой:

<?php 

require_once(__DIR__ ."/../view/VistaMenuSecretario.php");
require_once(__DIR__ ."/../view/VistaMensaje.php");
require_once(__DIR__ ."/../view/VistaMatricularAlumno.php");

class MenuSecretario {

// Atributos
private $_secretario;

// Getters y Setters


// Construccion
public function __construct(Secretario $pSecretario){
    $this->_secretario = $pSecretario;
}

// Métodos de interface
public function procesaAccion(array $request){
    $accion = !isset($request["accion"]) ? 0 : $request["accion"];
    if($accion == 0){
        return [$this->getMenu(), new VistaMensaje("Selecciona una opción")];
    }
    else if($this->esAccionValida($accion)){
        switch($accion){
            case 1:
                $alumno = $this->_secretario->getAlumnoFromDni($request["dni"]);
                return [new VistaMatricularAlumno($alumno, $this->_secretario)];
            case 2:
                $alumno = $this->_secretario->getAlumnoFromDni($request["dni"]);
                foreach ($request as $key => $value) {
                    $materia = $this->_secretario->getMateriaPorCodigo($key);
                    if($materia != null){
                        $alumno->matricularEnMateria($materia);
                    }
                }
                return [$this->getMenu(), new VistaMensaje("Alumno Matriculado correctamente")];
            case 3:
                //TODO
                break;
            case 4:
                //TODO:
                break;
            case 5:
                session_destroy();
                // https://stackoverflow.com/questions/12383371/refresh-a-page-using-php
                header("Location: login.php");
                die;
            default: 
                //TODO:
        }
    }
    else{
        //echo("Acción inválida");
        //TODO:
    }
}

public function getMenu(){
    return new VistaMenuSecretario();
}

// Métodos privados
private function esAccionValida($pAccion){
    $params = array(
        'options' => array(
            'default' => false, // valor a retornar si el filtro falla
            'min_range' => 1,
            'max_range' => 5)
        );

    //http://php.net/manual/es/function.filter-var.php
    return filter_var($pAccion, FILTER_VALIDATE_INT, $params);
}
}
0
задан 18.03.2019, 19:26
1 ответ

Пошли ему Html со стилем, который ты захочешь для каждого типа события в тебя mГ©todo;

public function печатать () { я начинаю ($this-> _mensaje); }

И потом ты это печатаешь, возвращаешься или упаковываешь в JSON для pasГЎrselo в твой интерфейс пользователя.

Даже ты можешь создавать нового mГ©todo как genHtmlError (). DeberГ-схвати смотреть начало MVC, чтобы иметь код mГЎs аккуратно и гибкость для этих вещей.

0
ответ дан 02.12.2019, 05:28

Теги

Похожие вопросы