Download the PHP package nckrtl/waymaker without Composer

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

Waymaker

This Laravel packages lets you generate a routes file based on your public controller methods. This package works particularly well with Laravel Wayfinder, as it allows you to reference controller methods instead of just routes. Based on the method signature in your controllers we could generate a routes file, automating route management entirely.

Installation

You can install the package via composer:

Requirements

Install the vite plugin:

Usage

Update your vite config to include an additional run command:

Next, update your main routes file to include the generated routes with:

Now you're all set. Running vite dev should now generate the routes based on your controller methods. On file change of any controller the routes file will be regenerated.

Route definition structure

The way routes are generated are pretty opionated. The naming convention of routes is inspired by how Laravel Wayfinder exposes routes/actions.

Important: As of version 2.0, explicit route attributes are required on all controller methods that should generate routes. Methods without route attributes will be ignored.

For this controller:

The generated route definition will look like:

Smart Route Grouping

Waymaker intelligently groups routes to reduce duplication and improve readability:

Smart URI Generation

Waymaker intelligently generates URIs based on your controller structure:

This automatic URI generation helps maintain consistent URL structures across your application.

Setting route parameters and other properties

Route attributes are required for all controller methods that should generate routes. You can use specific HTTP method attributes to define routes. For example, you can define a route parameter like so:

Available HTTP Method Attributes

Waymaker provides specific attributes for each HTTP method:

Each attribute supports the following properties:

Note: Methods without a route attribute will not generate any routes.

Middleware groups (e.g. Cloudflare / cookie-free pages)

Use a middleware group when routes must not sit on the default web stack (sessions, CSRF cookies). This is required for edge HTML caching (Cloudflare): responses with Set-Cookie are not cacheable.

Controller-wide:

Per route (overrides the controller default):

Generated output looks like:

Important: if you register Waymaker::routes() inside Laravel’s web routes file, a static group is still nested under web (session cookies remain). Load Waymaker from then: so groups are top-level:

Define static however you like; for Cloudflare HTML caching it must not include StartSession / cookie encryption that queues Set-Cookie.

Examples

Other route properties are also supported like middleware. Besides setting middleware on specific methods you can also set them at the controller level, just as a prefix or middleware group:

Testing

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Feel free to contribute. Make sure to add/update tests for new or improved features.

Troubleshooting

Routes not being generated

  1. Missing route attribute: Ensure all controller methods have a route attribute (#[Get], #[Post], etc.). Methods without attributes are ignored.
  2. Controller not in expected directory: Waymaker scans app/Http/Controllers by default. Ensure your controllers are in this directory or a subdirectory.
  3. Vite not running: The vite-plugin-run only triggers during vite dev. Run php artisan waymaker:generate manually for production builds.

Duplicate route error

If you see a RuntimeException about duplicate routes:

Routes file not included

Make sure your routes/web.php (or appropriate routes file) includes:

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Credits

License

The MIT License (MIT). Please see License File for more information.


All versions of waymaker with dependencies

PHP Build Version
Package Version
Requires php Version ^8.4
illuminate/contracts Version ^13.0
inertiajs/inertia-laravel Version ^3.0
spatie/laravel-package-tools Version ^1.16
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 nckrtl/waymaker contains the following files

Loading the files please wait ...