URL amigable usando controladores

Me gustaria saber como puedo hacer en .htaccess o como sea para que en la URL en vez de aparecer:

https://frontendtools.net/v/exec?u=Bucle-for-sin-index

aparezca esta URL amigable:

https://frontendtools.net/Bucle-for-sin-index

Estoy utilizando controladores con PHP donde v es viewController y exec es el action que llama al modelo y muestra el contenido que se imprime en la vista.

En mi htaccess tengo:

RewriteEngine On  RewriteCond %{REQUEST_FILENAME} !-f  RewriteCond %{REQUEST_FILENAME} !-d  RewriteRule (.+)\/(.+)(\/)?$   index.php?controller=$  1&action=$  2 [QSA] 

Necesito saber qué más tengo que poner para que muestre la URL amigable como he dicho antes.

Carga de controladores, método y parámetro en MVC

Muy buenas tardes caballeros, tengo un pequeño problema con una estructura MVC, lo que sucede es que cuando intento mandar los datos para hacer una inserción en la base de datos por mi controlador el hace el proceso normal de inserción , pero el problema consiste en que también manda DATOS VACÍOS si no le asigno nada en el formulario y eso es malo, ya se que me dirán que valide con empty () y con isset() pero el problema es que cuando asigno un condicional con empty el me salta ese condicional y me lo envía a mis modelos de igual forma.

ejemplo sencillo con codigo

introducir el código aquí <a href="paginas/agregar">  

Teniendo esto en cuenta mi MVC trabaja de la siguiente forma

  • 1-Parametro que paso es el controlador => Paginas
  • 2-Parametro que paso es el metodo => Agregar
  • 3-Parametro que paso ya es el id o valor => en este caso es vacio
  • seria algo asi carpeta_raiz/mi_controlador/mi_metodo/mi_valor

En este orden de ideas esa información llega aquí

introducir el código aquí public function agregar() {     if($  _SERVER['REQUEST_METHOD'] == 'POST'){             $  datos = [                 'nombre' => trim($  _POST['nombre']),                         'email' => trim($  _POST['email']),                         'telefono' => trim($  _POST['telefono'])             ];         if($  this->usuarioModelo->agregarUsuario($  datos)){             redireccionar('/paginas');         }else{             die('Algo salio mal');         }     }else{         $  datos = [             'nombre' => '',             'email' => '',             'telefono' => ''         ];         $  this->vista('paginas/agregar', $  datos);     } } 

Donde yo valido si se envía por $ POST y si no le asigno a mi array que tiene datos vacíos y envió esos datos a la vista para que no muera la ejecución, después a si es correcto los datos serán pasados a un array asociativo el cual eliminara caracteres de espacio etc, y después llamara el modelo que hará la correspondiente inserción , si este retorna true significa que se realizo la consulta, y si devuelve false se detiene la ejecución del script, pero le he insertando de muchas formas para validarlo cuando este vacio y nada sigue insertando de igual forma.

y por ultimo este es el modelo

introducir el código aquí public function agregarUsuario($  datos)//Aqui recibo los datos {     return $  this->db->agregar($  datos);         } 

Nota:Basta de mas decir que se encuentran en clases y que todo en el modelo hago la instancia de mi conexión.

Como llamar diferentes controladores POO PHP

Hola Estoy empezando a programar PHP POO , iba bastante bien entendiendo los conceptos (objetos , clases , herencia , etc) , ya hago el modelo , la vista y el controlador y los se llamar y me funciona , pero el problema empezó cuando en un ejercicio que intentaba hacer tenia mas de un controlador no se como hacer para llamar a uno o a otro controlador.


Este es el ejercicio que intento hacer.

Se requiere un programa que imprima en pantalla un menú con las siguientes operaciones:

[1]Área del rectángulo

[2]Área del triángulo

[3]Área del círculo

[4]Perímetro de rectángulo

[5]Perímetro del triángulo

[6]Circunferencia del círculo

[7]Salir del programa.

El programa debe brindar al usuario la opción de escoger una de las alternativas anteriores, pedir los datos de acuerdo con la operación que se vaya a realizar , imprimir el resultado respectivo, regresar al menú y salirse cuando seleccione la opción Salir del programa.


planeo crear una un archivo MODELO para cada una de las 7 opciones en el cual irían las clases y de la misma manera crear un CONTROLADOR para cada opción.

el problema es que no se como hacer que cuando escoja una opción llame a su respectivo controlador.