Fala galera estou com uma duvida tenho um código em php onde a classe e o método são passados por uma query string onde ele e passado desta forma:
“http://localhost/projeto/?url=pessoa&metodo=cadastrarPessoa&id=1”.
Mas na verdade quero passar na forma de URL amigável pegando ao invés o arquivo pegasse a classe e o método deste jeito "http://localhost/projeto/pessoa/cadastrarPessoa ou se tiver uma consulta pegando a classe, método e o resultado da consulta via URL desta forma: "http://localhost/projeto/pessoa/1.
Obrigado
Olha o Código Fonte:
.htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
index.php
<?php
/* Chama a Biblioteca Gerenciadora de Template TWIG */
require_once 'vendor/autoload.php';
/* Classe Core */
require_once 'app/core/Core.php';
/* Classe Controle */
require_once 'app/controle/menuControle.php';
require_once 'app/controle/pessoaControle.php';
require_once 'app/controle/erroControle.php';
$template = file_get_contents("app/visao/template/estrutura.php");
ob_start();
$core = new Core();
$core->Start($_GET);
$saida = ob_get_contents();
ob_end_clean();
$tplPronto = str_replace('{{Area Dinamica}}', $saida, $template);
echo $tplPronto;
Core.php → E a camada onde eu quero transformar a query string em URL amigavél que por sua vez chama a classe controle.
<?php
class Core {
public function Start($urlGet) {
$acao = 'index';
if (isset($urlGet['url'])) {
$controle = $urlGet['url'] . 'Controle';
} else {
$controle = 'menuControle';
}
if (!class_exists($controle)) {
$controle = "erroControle";
}
if (isset($urlGet['metodo'])) {
$acao = $urlGet['metodo'];
} else {
$acao = 'index';
}
call_user_func(array(new $controle, $acao), array());
}
}