Download the PHP package decodelabs/greenleaf without Composer

On this page you can find all versions of the php package decodelabs/greenleaf. 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 greenleaf

Greenleaf

PHP from Packagist Latest Version Total Downloads GitHub Workflow Status PHPStan License

Super-fast directory based HTTP router

Greenleaf provides a simple, fast and flexible way to route HTTP requests to controllers and actions based on the URL path.

Get news and updates on the DecodeLabs blog.


Installation

Install via Composer:

Usage

Greenleaf provides a PSR-15 middleware that can be used with any PSR-15 compatible framework. It will parse the request path and attempt to match it against a set of configured routes.

The heart of Greenleaf is a directory based class mapping that enables loading Generators, Routes and Actions from a directory tree that closer matches the structure of most web apps from a logical perspective.

You will need to register at least one namespace with Greenleaf to allow it to load classes from your configured directory tree.

Dispatcher

Greenleaf provides its Dispatcher under the Harvest Middleware namespace to allow for easy integration and automated class resolution with Harvest.

You can however instantiate the Dispatcher directly and treat it as a standard PSR HTTP Handler.

Generators

Generators are used to load and configure routes. They are simple classes that implement the Generator interface.

By default, Greenleaf will load a Scanner Generator which in turn will scan the configured directory tree for other Generators and load the Actions they provide.

To define Routes in your directory tree, you can start with a Generic Routes Generator.

Router

When the Dispatcher runs, it loads an appropriate Router to take care of matching the Request to the configured Routes.

At this early stage, Greenleaf provides a reference Matching implementation that just brute forces its way through the list of Routes until it finds a match. This implementation is not optimised for speed and will be replaced shortly with a high performance compiled router system that will be able to handle thousands of routes with ease.

When a Router implementation finds a match, it transforms the Route pattern into a Greenleaf custom URI and a set of parameters that are then passed to the Action (if relevant).

Greenleaf URI

The URI format is mostly just a subset of HTTP URLs, with leaf as the scheme, standard path, query and fragment components, and one notable addition: areas.

Denoted by a ~ as the first element of the path, an area allows the app to delineate segregated areas (such as the front end and admin) with ease.

The default area is "front" and is used when no area is specified.

For example:

Actions

Once loaded, an Action must only implement an execute($request, $uri, $params) method, however Greenleaf provides a number of traits that can be used to add additional functionality.

The ByMethodTrait for example will attempt to invoke a method on the Action based on the HTTP method of the request.

Note that most traits that work in this fashion will use Slingshot to invoke the method with deep dependency injection support. In this example, the slug from the matched route request URL is passed as a string to the action handlers.

URLs

One of the main benefits of Greenleaf is that it allows you to generate URLs for your routes in a simple and flexible way by creating leaf URIs with many of the required URL constructs already in place.

The router will then be able to match these URIs to the correct route and pass the parameters to the URL generator.

Licensing

Greenleaf is licensed under the MIT License. See LICENSE for the full license text.


All versions of greenleaf with dependencies

PHP Build Version
Package Version
Requires php Version ^8.1
decodelabs/archetype Version ^0.3
decodelabs/coercion Version ^0.2.7
decodelabs/dictum Version ^0.6
decodelabs/exceptional Version ^0.4.4
decodelabs/glitch-support Version ^0.4.5
decodelabs/harvest Version ^0.3
decodelabs/singularity Version ^0.2.5
decodelabs/slingshot Version ^0.1.1
decodelabs/veneer Version ^0.11.6
psr/container Version ^2.0
psr/http-message Version ^2.0
psr/http-server-handler Version ^1.0
psr/http-server-middleware Version ^1.0
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 decodelabs/greenleaf contains the following files

Loading the files please wait ....