Download the PHP package cleaniquecoders/shrinkr without Composer
On this page you can find all versions of the php package cleaniquecoders/shrinkr. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download cleaniquecoders/shrinkr
More information about cleaniquecoders/shrinkr
Files in cleaniquecoders/shrinkr
Package shrinkr
Short Description Shrinkr is a Laravel package for shortening URLs, with custom slugs, analytics, branded domains, and seamless API integration.
License MIT
Homepage https://github.com/cleaniquecoders/shrinkr
Informations about the package shrinkr
Shrinkr
Shrinkr is a Laravel package for shortening URLs, offering custom slugs, analytics, branded domains, and API integration.
Shrinkr makes it easy to convert long URLs into short, shareable links. With features like custom slugs, click analytics, branded domains, and seamless API support, Shrinkr empowers users to manage URLs effectively.
Features
- [x] Shorten URLs with or without custom slugs.
- [x] Analytics tracking: Track clicks, referrers, IP addresses, and devices.
- [ ] Branded domains: Use custom domains for shortened URLs.
- [x] Configurable logging: Store logs in files or databases.
- [ ] API support: Programmatically shorten and resolve URLs.
- [ ] Rate Limiting: To prevent abuse (e.g., spamming requests to shorten URLs or resolve them).
- [ ] Protected URLs: Add password protection or other access restrictions to certain URLs, ensuring only authorized users can access the content.
- [ ] QR Codes: Provide users with QR codes for easy sharing of URLs, especially on mobile devices.
- [x] Link Health Monitoring: Ensure that the original URLs are still reachable and valid & automatically disable or notify users if a link becomes broken or inactive.
- [x] Event & Listeners: Improve system decoupling by using events to trigger actions asynchronously (e.g., logging clicks, sending notifications).
- [x] Expiry: Allow expiry to be set - in minutes.
Installation
Install the package via Composer:
Publish the migration files and migrate:
Publish the config file:
The published configuration file (config/shrinkr.php
) will allow you to customize settings.
Configuration
You can configure logging options by modifying the config/shrinkr.php
file.
To log to a database, change the logger to:
Usage
Here’s a basic usage example using the Shrinkr facade, actions, and events.
1. Shorten a URL
You can shorten a URL with or without a custom slug and expiry duration.
2. Retrieve the Original URL
Use the resolve()
method to retrieve the original URL from a shortened one.
When the URL is accessed, the UrlAccessed
event will be dispatched automatically to track the visit.
3. Update an Existing Short URL
You can update an existing short URL with a new custom slug or expiry duration.
4. Event Handling
UrlAccessed Event
The UrlAccessed
event is dispatched whenever a shortened URL is accessed. You can listen for this event to log analytics or trigger notifications.
Example: Log URL Access in a Listener
UrlExpired Event
The UrlExpired
event is dispatched when a URL has expired, either through a scheduled check or upon access. You can listen to this event to notify the user or perform other actions.
Example: Notify on URL Expiry in a Listener
5. Automatically Expire URLs
If you’ve set an expiry duration, the URL will be marked as expired once that time has passed. You can also run the expiry command manually or schedule it.
Run the Expiry Command Manually:
Schedule the Expiry Command:
In your app/Console/Kernel.php
:
6. Monitor URL Health
The Link Health Monitoring feature allows you to check if URLs are reachable and mark them as active or expired.
Check Health Action
Use the CheckUrlHealthAction
to manually check the health of a specific URL.
Check Health Command
Use the Artisan command to check the health of all URLs in bulk.
This command will:
- Check the status of all URLs.
- Mark expired URLs and dispatch the
UrlExpired
event. - Provide real-time output on the status of each URL.
Example output:
Schedule the Health Check Command
You can automatically run the health check at regular intervals using Laravel’s scheduler.
In your app/Console/Kernel.php
:
This will ensure that all URLs are continuously monitored and marked as expired when necessary.
Redirect Tracking
The redirect feature tracks detailed information such as:
- IP address of the visitor
- Browser and OS (via User-Agent parsing)
- Referrer (where the link was clicked)
- Headers and query parameters
- Optionally store logs in a database or log file
Example database log entry:
url_id | ip | browser | platform | referrer | created_at |
---|---|---|---|---|---|
1 | 192.168.1.1 | Chrome | Windows | google.com | 2024-10-18 12:34:56 |
Testing
Run the tests using:
Changelog
Refer to the CHANGELOG for the latest updates and changes.
Contributing
We welcome contributions! Please see CONTRIBUTING for guidelines.
Security Vulnerabilities
Report security vulnerabilities by reviewing our security policy.
Credits
- Nasrul Hazim Bin Mohamad
- All Contributors
License
Shrinkr is open-sourced software licensed under the MIT license.
All versions of shrinkr with dependencies
cleaniquecoders/traitify Version ^1.0
illuminate/contracts Version ^10.0||^11.0
jenssegers/agent Version ^2.6
spatie/laravel-package-tools Version ^1.16