Download the PHP package neuron-php/routing without Composer

On this page you can find all versions of the php package neuron-php/routing. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package routing

CI codecov

Neuron-PHP Routing

Overview

The neuron router is a lightweight router/dispatcher is the vein of Ruby's Sinatra or Python's Flask. It allows for a very quick method for creating an app using restful routes or to add them to an existing application.

Installation

Install php composer from https://getcomposer.org/

Install the neuron routing component:

composer require neuron-php/routing

.htaccess

This example .htaccess file shows how to get and pass the route to the example application.

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php?route=$1 [L,QSA]

Example App

Here is an example of a fully functional application that processes several routes including one with a variable.

<?php
require_once 'vendor/autoload.php';

Route::get( '/',
        function()
        {
            echo 'Home Page';
        }
    );

Route::get( '/about',
        function()
        {
            echo 'About Page';
        }
    );

Route::get( '/test/:name',
        function( $parameters )
        {
            echo "Name = $parameters[name]";
        }
    );

Route::get( '/404',
        function( $parameters )
        {
            echo "No route found for $parameters[route]";
        }
    );

$Get    = new \Neuron\Data\Filter\Get();
$Server = new \Neuron\Data\Filter\Server();

Route::dispatch(
    [
        'route' => $Get->filterScalar( 'route' ),
        'type'  => $Server->filterScalar( 'METHOD' )
    ]
);

If present, the extra element is merged into the parameters array before it is passed to the routes closure.

Attribute-Based Routing

Modern PHP 8+ attribute-based routing allows you to define routes directly on controller methods using PHP attributes, providing a modern alternative to YAML configuration files.

Basic Usage

Simple Route

HTTP Method Attributes

Route Names and Filters

Route Groups

Apply common settings to all routes in a controller:

Multiple Routes on Same Method

Configuration

Enable Attribute Routing in MVC Application

Add controller paths to your config/routing.yaml:

For backward compatibility, controller paths can also be configured in config/neuron.yaml:

Note: If both files exist, routing.yaml takes precedence.

Benefits

Performance

Route scanning uses PHP Reflection, which could be slow. For production:

  1. Routes are scanned once during application initialization
  2. The Router caches RouteMap objects in memory
  3. No reflection happens during request handling
  4. Future: Add route caching to file for zero-cost production routing

Migration from YAML

Before (YAML):

After (Attributes):

See tests/unit/RouteScannerTest.php for working examples of basic route definition, route groups with prefixes, filter composition, and multiple routes per method.

URL Rewrites

URL rewrites provide transparent URL rewriting before route matching. Unlike HTTP redirects (301/302), rewrites are internal and invisible to the client—the browser URL stays the same while the application routes to a different path.

Use Cases

Configuration

Add rewrites to config/routing.yaml:

How It Works

Example: CMS Homepage Override

Problem: CMS defines GET / but you want a custom homepage.

Solution:

Now requests to / are transparently routed to your custom landing page without any HTTP redirect.

Rewrite Rules

vs. HTTP Redirects

Feature URL Rewrite HTTP Redirect
Client Visible No Yes
HTTP Request Count 1 2
Performance Fast Slower
SEO Impact None Can affect SEO
Use Case Internal routing Moved content

Duplicate Route Detection

The router includes strict duplicate route detection to catch configuration errors early and prevent hard-to-debug routing issues.

What Gets Detected

1. Duplicate Method + Path

Error Message:

2. Duplicate Route Names

Error Message:

What's Allowed

Different HTTP Methods (RESTful)

This is standard RESTful routing and is fully supported.

Multiple Attributes on Same Method (Aliases)

Configuration

Strict mode is enabled by default. To disable (not recommended):

Benefits

Why This Matters

Without duplicate detection:

With duplicate detection:

Rate Limiting

The routing component includes a powerful rate limiting system with multiple storage backends and flexible configuration options.

Basic Usage

Configuration Options

Storage Backends

Redis (Recommended for Production)

Best for distributed systems and high-traffic applications:

File Storage

Simple solution for single-server deployments:

Memory Storage (Testing Only)

For unit tests and development:

Whitelisting and Blacklisting

Custom Responses

Rate limit exceeded responses include appropriate headers:

The response format (JSON/HTML) is automatically determined from the Accept header.

Example: API Rate Limiting

More Information

You can read more about the Neuron components at neuronphp.com


All versions of routing with dependencies

PHP Build Version
Package Version
Requires neuron-php/core Version 0.8.*
neuron-php/patterns Version 0.7.*
neuron-php/logging Version 0.9.*
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package neuron-php/routing contains the following files

Loading the files please wait ...