milon / jigsaw-url-shortener
A URL Shortener for your Jigsaw powered website
Installs: 144
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 0
Open Issues: 0
Language:Blade
Requires
- tightenco/jigsaw: ^1.7
This package is auto-updated.
Last update: 2024-12-02 20:12:56 UTC
README
Getting Started
This can be used to host several link if you already have a Jigsaw powered site. Let's say you have various social links and you want a easy way to share all of those. Rather than remember all the different username and url patterns or these different website, you can now have a consistent format.
For example, you have a twitter, linkedin and facebook page. Each of them has different url pattern, but now you can use a common pattern. For instance, if my website's url is http://milon.im
, now I can have http://milon.im/twitter
, http://milon.im/facebook
and http://milon.im/linkedin
and these will redirect to the origin website.
Requirements
- PHP 8.1 or higher
- Jigsaw 1.7 or higher
Installation
composer require milon/jigsaw-url-shortener
Setup and Usage
First you need to create a new entry in config file named urlRedirects
.
[ ..., 'urlRedirects' => [ [ 'filename' => 'twitter', 'url' => 'https://twitter.com/to_milon', ], [ 'filename' => 'github', 'url' => 'https://github.com/milon', ], ], ... ]
Alternative way
For easier readability, I recommend export this config to a separate file. You can create a file named redirects.php
in the root folder, which should look like this-
<?php return [ [ 'filename' => 'twitter', 'url' => 'https://twitter.com/to_milon', ], [ 'filename' => 'github', 'url' => 'https://github.com/milon', ], ];
And the config file should look like this-
[ ..., 'urlRedirects' => require_once(__DIR__ . '/redirects.php'), ... ]
Then in the bootstarp.php
file, register a new listener to afterBuild
event.
$events->afterBuild(Milon\JigsawUrlShortener\GenerateUrlRedirect::class);
Now, build the site like normal.
License
This package is published under MIT
license.
Author
Feel free to email me, if you have any question.