Ver Mensaje Individual
  #7 (permalink)  
Antiguo 11/02/2013, 14:22
chemajmb
 
Fecha de Ingreso: enero-2012
Ubicación: España
Mensajes: 150
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Ejecutar siempre un mismo codigo al final de los metodos/funciones

Lo primero y sobre todo GRACIAS por las respuestas y vuestra colaboración. Compartir ideas es bueno, pues las compartes con otras mentes pensantes quienes pueden darte también sus ideas para que tu valores en que medida son buenas/malas.

Cita:
Iniciado por masterpuppet Ver Mensaje
Para resolverlo a nivel de PHP tendrías que instalar algo como AOP-PHP, ahora para resolverlo a nivel de tu fw habría que ver como invocas al controlador y también saber que es lo que hace renderizar exactamente.

Saludos.
Lanzador o bootstrap:
Código PHP:
<?php

class Lanzador
{
    public static function 
runPeticion $peticion )
    {
        
$controlador $peticion->getControlador() . 'Controlador';
        
$rutaControlador DIR_CONTROLADORES $controlador '.php';
        
$accion $peticion->getAccion();
        
$argumentos $peticion->getArgumentos();

        if( 
is_readable$rutaControlador ) ){
            require_once 
$rutaControlador;
            
//$registro = new claseRegistro();
            
$controlador = new $controlador$peticion );

            if(
is_callable(array($controlador$accion))){
                if( empty(
$argumentos) == true ){
                    
call_user_func(array($controlador$accion));
                }
                else{
                    
call_user_func_array(array($controlador$accion), array( $argumentos ) ) ;
                }
                exit();
            }
        }
        
header('Location: '.PAGINA_ERROR_404);
    }
}

?>
Petición o Request:
Código PHP:
class Peticion
{
    private 
$_controlador;
    private 
$_accion;
    private 
$_argumentos;
    
    public function 
__construct()
    {
        if( isset(
$_GET['enlace']) ){
            
$enlace filter_input(INPUT_GET'enlace'FILTER_SANITIZE_URL);
            
$enlace explode('/'$enlace);
            
$enlace array_filter($enlace);
            
            
$this->_controlador strtolower(array_shift($enlace));
            
$this->_accion strtolower(array_shift($enlace));
            
$this->_argumentos $enlace;

            if( empty( 
$this->_controlador ) ){
                
$this->_controlador CONTROLADOR_POR_DEFECTO;
            }

            if( empty( 
$this->_accion ) ) {
                
$this->_accion ACCION_POR_DEFECTO;
            }

            if(!isset(
$this->_argumentos)){
                
$this->_argumentos = array();
            }
        }
    }
... 
En el archivo index donde redirijo todas las llamadas
Código PHP:
...
Lanzador::run( new Peticion );
... 
.htaccess
Código:
#Options +FollowSymLinks
RewriteEngine On
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule \.(gif|jpg|js|css|swf|png)$ - [L]
RewriteRule (.*)$ indice.php?enlace=$1 [QSA,L]

PD: ¿ Hay alguna opción para copiar en el porta papeles el texto del mensaje que estas editando ? Por que sería una buena cosa ponerlo como opción o añadirlo al botón de [ Guardar ] para que cuando clickeas en guardar y otro ha contestado y no puedes editar el mensaje, tengas el texto guardado en el porta papeles y no tengas que volver a escribirlo. ¿ Que me decís ? jejeje

Última edición por chemajmb; 11/02/2013 a las 14:31