páginas estáticas¶
Nota: Este tutorial assume que você baixou o CodeIgniter einstalou a estrutura em seu ambiente de desenvolvimento.
a primeira coisa que você vai fazer é configurar um controlador para páginas handlestatic. Um controlador é simplesmente uma classe que ajuda a delegar work.It é a cola do seu aplicativo da web.
por exemplo, quando uma chamada é feita para:
podemos imaginar que existe um controlador chamado “news”. O método chamado de notícias seria “mais recente”. O trabalho do método de notícias pode ser tograb 10 itens de notícias e renderizá-los na página. Muitas vezes, no MVC, você verá padrões de URL que correspondem:
à medida que os esquemas de URL se tornam mais complexos, isso pode mudar. Mas, por enquanto, isso é tudo o que precisamos saber.
crie um arquivo em application / controllers / Pages.php com o seguinte código.
<?phpclass Pages extends CI_Controller { public function view($page = 'home') { }}
você criou uma classe chamada Pages
, com um método view que aceita um argumento chamado $page
. A classe Pages
está estendendo a classe CI_Controller
. Isso significa que a nova classe pages pode acessar themethods e variáveis definidas na classe CI_Controller
(system/core/Controller.pai).
o controlador é o que vai se tornar o centro de cada pedido toyour aplicação web. Em discussões muito técnicas CodeIgniter, talvez referido como o super objeto. Como qualquer classe php, você se refereit dentro de seus controladores como $this
. Referindo-se a $this
é comovocê carregará bibliotecas, visualizações e geralmente comandará a estrutura.
agora que você criou seu primeiro método, é hora de fazer algumas pagetemplates básicas. Estaremos criando duas “visualizações” (modelos de página) que atuam comonosso rodapé e cabeçalho da página.
Crie o cabeçalho em application / views / templates / header.php e addthe código a seguir:
<html> <head> <title>CodeIgniter Tutorial</title> </head> <body> <h1><?php echo $title; ?></h1>
o cabeçalho contém o código HTML básico que você deseja exibirantes de carregar a exibição principal, junto com um título. Ele também colocará a variável $title
, que definiremos mais tarde no controlador.Agora, crie um rodapé em application / views / templates / footer.php que inclui o seguinte código:
<em>© 2015</em> </body></html>
adicionando lógica ao controlador¶
anteriormente, você configurou um controlador com um método view()
. O métodoaceita um parâmetro, que é o nome da página a ser carregada. Os modelos de página do Thestatic estarão localizados no diretório application/views/pages/.
nesse diretório, crie dois arquivos chamados home.php e sobre.pai.Dentro desses arquivos, Digite algum texto − o que quiser − e salve-os.Se você gosta de ser particularmente original, tente “Hello World!”.
para carregar as páginas, você terá que verificar se o requestedpage realmente existe:
public function view($page = 'home'){ if ( ! file_exists(APPPATH.'views/pages/'.$page.'.php')) { // Whoops, we don't have a page for that! show_404(); } $data = ucfirst($page); // Capitalize the first letter $this->load->view('templates/header', $data); $this->load->view('pages/'.$page, $data); $this->load->view('templates/footer', $data);}
Agora, quando a página não existe, ele é carregado, incluindo o cabeçalho andfooter, e exibido para o usuário. Se a página não existir, será exibido um erro “404Page not found”.
a primeira linha deste método verifica se a página realmente existe.A função nativa file_exists()
do PHP é usada para verificar se o fileis está onde se espera que esteja. show_404()
é um CodeIgniterfunction integrado que renderiza a página de erro padrão.
no modelo de cabeçalho, a variável $title
foi usada para personalizar o título da página. O valor de title é definido neste método, mas em vez deassignar o valor a uma variável, ele é atribuído ao elemento titlena matriz $data
.
a última coisa que precisa ser feita é carregar as visualizações na ordemeles devem ser exibidos. O segundo parâmetro no método view()
éusado para passar valores para a visualização. Cada valor na matriz $data
é atribuído a uma variável com o nome de sua chave. Portanto, o valor de$data
no controlador é equivalente a $title
noview.
roteamento¶
o controlador está funcionando agora! Aponte seu navegador paraindex.php/pages/view
para ver sua página. Quando você visitarindex.php/pages/view/about
você verá a página Sobre, novamente incluindoo cabeçalho e rodapé.
usando regras de roteamento personalizadas, você tem o poder de mapear qualquer URI para anycontroller e método, e se libertar da Convenção normal:http://example.com///
vamos fazer isso. Abra o arquivo de roteamento localizado emaplicação / configuração / rotas.php e adicione as duas linhas a seguir.Remova todos os outros códigos que definem qualquer elemento na matriz $route
.
$route = 'pages/view';$route = 'pages/view/';
CodeIgniter lê suas regras de roteamento de cima para baixo e rotas therequest para a primeira regra correspondente. Cada regra é uma expressão regular(lado esquerdo) mapeada para um nome de controlador e método separado por barras (lado direito). Quando uma solicitação entra, o CodeIgniter procura o firstmatch e chama o controlador e o método apropriados, possivelmente comargumentos.
mais informações sobre roteamento podem ser encontradas no URI Routingdocumentation.
aqui, a segunda regra na matriz $route
corresponde a qualquer requisição usando a string curinga (:any)
. e passa o parâmetro para o métodoview()
da classe Pages
.
agora visite index.php/about
. Ele foi roteado corretamente para o método view()
no controlador de páginas? Da hora!