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 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 run( Peticion $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