PHPackages                             dsisconeto/ciroute - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. dsisconeto/ciroute

ActiveLibrary[Framework](/categories/framework)

dsisconeto/ciroute
==================

CodeIgniter Route System

v0.0.6(8y ago)1282MITPHP

Since Sep 8Pushed 8y ago1 watchersCompare

[ Source](https://github.com/dsisconeto/Ciroute)[ Packagist](https://packagist.org/packages/dsisconeto/ciroute)[ RSS](/packages/dsisconeto-ciroute/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (6)DependenciesVersions (7)Used By (0)

Sistema de Rota Para Codeigniter 3
==================================

[](#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.

> 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

Instalar
--------

[](#instalar)

Precisamos instalar o pacote via composer.

```
composer require dsisconeto/ciroute
```

Configurando
------------

[](#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

```
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

`Ciroute($arquivoDeRotas, $pastaCache, $pastaRotas)`

### Paramentros da Classe Ciroute

[](#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

[](#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

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

Modo de Usar
------------

[](#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.

```
use DSisconeto\Ciroute\Route;
```

### Hello World

[](#hello-world)

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

O código vai gerar a seguinte saida no arquivo de rotas padrão;

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

Os métodos de criação de rotas aceitam dois parametros.

```
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**

### Usando os verbos HTTP

[](#usando-os-verbos-http)

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

```
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

```
$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

[](#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);
}
```

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity10

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity57

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~4 days

Total

6

Last Release

3146d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/9418e7a32ec3b55b6fea42204d03588f3bc2ac342f7d68abf23b5b2657e73df7?d=identicon)[dsisconeto](/maintainers/dsisconeto)

---

Top Contributors

[![dsisconeto](https://avatars.githubusercontent.com/u/16722938?v=4)](https://github.com/dsisconeto "dsisconeto (10 commits)")

### Embed Badge

![Health badge](/badges/dsisconeto-ciroute/health.svg)

```
[![Health](https://phpackages.com/badges/dsisconeto-ciroute/health.svg)](https://phpackages.com/packages/dsisconeto-ciroute)
```

###  Alternatives

[laravel/telescope

An elegant debug assistant for the Laravel framework.

5.2k67.8M190](/packages/laravel-telescope)[spiral/roadrunner

RoadRunner: High-performance PHP application server and process manager written in Go and powered with plugins

8.4k12.2M84](/packages/spiral-roadrunner)[nolimits4web/swiper

Most modern mobile touch slider and framework with hardware accelerated transitions

41.8k177.2k1](/packages/nolimits4web-swiper)[laravel/dusk

Laravel Dusk provides simple end-to-end testing and browser automation.

1.9k36.7M255](/packages/laravel-dusk)[laravel/prompts

Add beautiful and user-friendly forms to your command-line applications.

708181.8M591](/packages/laravel-prompts)[cakephp/chronos

A simple API extension for DateTime.

1.4k47.7M119](/packages/cakephp-chronos)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
