Download the PHP package gorankrgovic/laravel-subscribeable without Composer
On this page you can find all versions of the php package gorankrgovic/laravel-subscribeable. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download gorankrgovic/laravel-subscribeable
More information about gorankrgovic/laravel-subscribeable
Files in gorankrgovic/laravel-subscribeable
Package laravel-subscribeable
Short Description Make Laravel Eloquent models Subscribeable.
License MIT
Homepage https://github.com/gorankrgovic/laravel-subscribeable
Informations about the package laravel-subscribeable
Laravel Subscribe
Introduction
IMPORTANT: This is not a package for managing subscribers related to memberships and payed methods. It is used for managing user/subscriber relations just like in YouTube for example, where the model can be subscribed by user.
This package is based on an idea and an architecture of the Laravel Love package, although the functionality is different.
Features
- Uses UUIDs instead of integers (your user model must use them as well!)
- Designed to work with Laravel Eloquent models.
- Using contracts to keep high customization capabilities.
- Using traits to get functionality out of the box.
- Most part of the the logic is handled by the
SubscribeableService
. - Has Artisan command
gosubscribe:recount {model?}
to re-fetch subscribe counters. - Subscribes for one model are mutually exclusive.
- Get Subscribeable models ordered by subscribe count.
- Events for
subscribe
,unsubscribe
methods. - Following PHP Standard Recommendations:
- Covered with unit tests.
Installation
First, pull in the package through Composer.
Perform Database Migration
At last you need to publish and run database migrations.
If you want to make changes in migrations, publish them to your application first.
Usage
Prepare Subscriber Model
Use Gox\Contracts\Subscribe\Subscriber\Models\Subscriber
contract in model which will get subscribes
behavior and implement it or just use Gox\Laravel\Subscribe\Subscriber\Models\Traits\Subscriber
trait.
Prepare Subscribeable Model
Use Gox\Contracts\Subscribe\Subscribeable\Models\Subscribeable
contract in model which will get subscribes
behavior and implement it or just use Gox\Laravel\Subscribe\Subscribeable\Models\Traits\Subscribeable
trait.
Available Methods
Subscribes
Subscribe model
Remove subscribe mark from model
Get model subscribe count
Get model subscribes counter
Get subscribes relation
Get iterable Illuminate\Database\Eloquent\Collection
of existing model subscribes
Boolean check if user subscribed to model
Checks in eager loaded relations subscribes
first.
Get collection of users who subscribed to model
Delete all subscribers for model
Scopes
Find all articles subscribed by user
Fetch Subscribeable models by subscribes count
Uses desc
as default order direction.
Events
On each subscribe added \Gox\Laravel\Subscribe\Subscribeable\Events\SubscribeableWasSubscribed
event is fired.
On each subscribe removed \Gox\Laravel\Subscribe\Subscribeable\Events\SubscribeableWasUnsubscribed
event is fired.
Console Commands
Recount subscribers of all model types
Recount of concrete model type (using morph map alias)
Recount of concrete model type (using fully qualified class name)
Extending
You can override core classes of package with your own implementations:
Gox\Laravel\Subscribe\Subscribe\Models\Subscribe
Gox\Laravel\Subscribe\SubscribeCounter\Models\SubscribeCounter
Gox\Laravel\Subscribe\Subscribeable\Services\SubscribeableService
Note: Don't forget that all custom models must implement original models interfaces.
To make it you should use container binding interfaces to implementations in your application service providers.
Use model class own implementation
After that your CustomSubscribe
class will be instantiable with helper method app()
.
Testing
Run the tests with:
Security
If you discover any security related issues, please email me instead of using the issue tracker.
License
Laravel Subscribe
package is open-sourced software licensed under the MIT license by Goran Krgovic.
All versions of laravel-subscribeable with dependencies
illuminate/database Version ~5.5.0|~5.6.0|~5.7.0|~5.8.0
illuminate/support Version ~5.5.0|~5.6.0|~5.7.0|~5.8.0
ramsey/uuid Version ^3.8