2017 © Pedro Peláez
 

library ciroute

CodeIgniter Route System

image

dsisconeto/ciroute

CodeIgniter Route System

  • Tuesday, September 26, 2017
  • by dsisconeto
  • Repository
  • 1 Watchers
  • 0 Stars
  • 18 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 1 Forks
  • 0 Open issues
  • 7 Versions
  • 0 % Grown

The README.md

Sistema de Rota Para Codeigniter 3

O Ciroute é simples, ele apenas oferece uma interface Orientada a Objetos, mais organizada e amigável para criação de Rotas para o ambiente de desenvolvimento. Em produção será usada as rodas normais do Codeigniter, pois o mesmo converte todas as rotas, e as gravas no arquivo padrão de rotas., (*1)

AVISO! Quando estiver usando Ciroute não pode mais escrever no arquivo padrão de rotas, pois o mesmo será sobrescrito todas as vezes que for executado em ambiente de desenvolvimento, (*2)

Instalar

Precisamos instalar o pacote via composer., (*3)

composer require dsisconeto/ciroute

Configurando

No arquivo index.php do seu projeto, vamos instancia Ciroute em ambiente de desenvolvimento e apenas no mesmo. no final do arquivo antes do require do Codeigniter adicione o seguinte código, (*4)

if (ENVIRONMENT == 'development') {             
    require_once(__DIR__.'/vendor/autoload.php');

    new \DSisconeto\Ciroute\Ciroute(
        __DIR__."/application/config/routes.php",
        __DIR__."/application/cache/",
        __DIR__."/application/routes/"
        );
    }

A classe Ciroute tem três parâmetros, (*5)

Ciroute($arquivoDeRotas, $pastaCache, $pastaRotas), (*6)

Paramentros da Classe Ciroute

  1. Endereço completo onde está o arquivo de rotas padrão
  2. Endereço completo onde está a pasta de cache padrão
  3. Endereço completo onde vai ficar a pasta de arquivo de rotas do Ciroute

Arquivos de Rotas

Precisamos criar a pasta onde ficará os arquivos de rotas, que é o terceiro parâmetro da classe Ciroute, no código acima foi passado a pasta /apliication/routes/, agora basta criar quantos arquivos de rotas você quiser dentro, os nomes dos arquivos são de sua escolha. Exemplo, (*7)

  • /application/routes/site.php
  • /application/routes/admin.php
  • /application/routes/api.php

Modo de Usar

Agora vamos usar a classe Route para criar nossas Rotas, dentro de qualquer arquivo rotas que esteja dentro da pasta de que definimos. Para facilitar o acesso a classe de um "use" na classe Route no começo do seu arquivo de rotas., (*8)

use DSisconeto\Ciroute\Route; 

Hello World

Route::get('hello-world', 'Hello_word/index');

O código vai gerar a seguinte saida no arquivo de rotas padrão;, (*9)

$route["hello-world"]["GET"] = ["Hello_word");

Os métodos de criação de rotas aceitam dois parametros., (*10)

Route::get($rota, $controler_metodo)]```
  1. Rota
  2. Controler o metodo do mesmo

Básicamente você pode escrever os dois argurmento como escreveria no sistema padrão de rotas do CodeIgniter, (*11)

Usando os verbos HTTP

Existe diversos métodos na classe Route para criação de rotas, cada um criar com um verbo HTTP diferente, (*12)

Route::get('eventos/cadastrar', 'create');
Route::post('eventos/cadastrar', 'store');
Route::get('eventos/:num/editar', 'edit/$1');
Route::put('eventos/:num/editar', 'update/$1');
Route::delete('eventos/:num', 'delete/$1');

a saida no arquivo padrão de rotas, (*13)

$route["eventos/cadastrar"]["GET"]="eventos/create"; 
$route["eventos/cadastrar"]["POST"]="eventos/store"; 
$route["eventos/:num/editar"]["GET"]="eventos/edit/$1"; 
$route["eventos/:num/editar"]["PUT"]="eventos/update/$1"; 
$route["eventos/:num"]["DELETE"]="eventos/delete/$1"; 

Helper para rotas nomeadas

function ciroute($name, $arguments = [])
{
    static $routes;
    static $regex = "/\(:([A-Za-z0-9_.-]*)\)/";


    if (!$routes) $routes = include(__DIR__ . "/../cache/ciroute_names.php");

    if (!isset($routes[$name])) {
        throw  new \Exception("Não existe o nome($name) dessa rota");
    }
    if (!is_array($arguments)) {
        throw  new \Exception("O segundo argumento tem que ser um array");
    }

    $count = 0;
    $route = preg_replace_callback($regex, function () use (&$count, $arguments) {

        return ($arguments[$count++]);

    }, $routes[$name]);


    return base_url($route);
}

The Versions

26/09 2017

dev-master

9999999-dev

CodeIgniter Route System

  Sources   Download

MIT

by Dejar Sisconeto

26/09 2017

v0.0.6

0.0.6.0

CodeIgniter Route System

  Sources   Download

MIT

by Dejar Sisconeto

19/09 2017

v0.0.5

0.0.5.0

CodeIgniter Route System

  Sources   Download

MIT

by Dejar Sisconeto

16/09 2017

v0.0.4

0.0.4.0

CodeIgniter Route System

  Sources   Download

MIT

by Dejar Sisconeto

16/09 2017

v0.0.3

0.0.3.0

CodeIgniter Route System

  Sources   Download

MIT

by Dejar Sisconeto

09/09 2017

v0.0.2

0.0.2.0

CodeIgniter Route System

  Sources   Download

MIT

by Dejar Sisconeto

08/09 2017

v0.0.1

0.0.1.0

CodeIgniter Route System

  Sources   Download

MIT

by Dejar Sisconeto