PHPackages                             raymondwilkinson/larainvite - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. raymondwilkinson/larainvite

ActiveLibrary

raymondwilkinson/larainvite
===========================

Laravel Invitation package, existing users can invite others by email

v0.3.2(9y ago)061MITPHPPHP &gt;=5.5.9

Since Mar 29Pushed 9y ago1 watchersCompare

[ Source](https://github.com/RaymondWilkinson/larainvite)[ Packagist](https://packagist.org/packages/raymondwilkinson/larainvite)[ Docs](https://github.com/RaymondWilkinson/larainvite)[ RSS](/packages/raymondwilkinson-larainvite/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (5)Dependencies (4)Versions (16)Used By (0)

larainvite
==========

[](#larainvite)

User (signup) invitation package for laravel

[![GitHub license](https://camo.githubusercontent.com/7013272bd27ece47364536a221edb554cd69683b68a46fc0ee96881174c4214c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c75652e737667)](https://raw.githubusercontent.com/junaidnasir/larainvite/master/LICENSE.txt)[![Total Downloads](https://camo.githubusercontent.com/7ac185e1b186977cd38cff817d1cc22bfa09c0894747e8d4c10d7dcdfab58cce/68747470733a2f2f706f7365722e707567782e6f72672f6a756e6169646e617369722f6c617261696e766974652f646f776e6c6f616473)](https://packagist.org/packages/junaidnasir/larainvite)

larainvite is a ***laravel*** package, to allow existing users to invite others by email.

It generates referral code and keep track of status.

Installation
------------

[](#installation)

Begin by installing the package through Composer. Run the following command in your terminal:

```
composer require raymondwilkinson/larainvite
```

add the package service provider in the providers array in `config/app.php`:

```
Junaidnasir\Larainvite\LaraInviteServiceProvider::class
```

you may add the facade access in the aliases array:

```
'Invite'  => Junaidnasir\Larainvite\Facades\Invite::class
```

publish the migration and config file:

```
php artisan vendor:publish"
```

migrate to create `user_invitation` table

```
php artisan migrate
```

edit your `User` model to include `larainviteTrait`

```
use Junaidnasir\Larainvite\InviteTrait;
class user ... {
    use InviteTrait;
}
```

Usage
-----

[](#usage)

You can use ***facade accessor*** to retrieve the package controller. Examples:

```
$user = Auth::user();
//Invite::invite(EMAIL, REFERRAL_ID);
$refCode = Invite::invite('email@address.com', $user->id);
//or
//Invite::invite(EMAIL, REFERRAL_ID, EXPIRATION);
$refCode = Invite::invite('email@address.com', $user->id, '2016-12-31 10:00:00');
```

now create routes with `refCode`, when user access that route you can use following methods

```
// Get route
$code = Request::input('code');
if( Invite::isValid($code))
{
    $invitation = Invite::get($code); //retrieve invitation modal
    $invited_email = $invitation->email;
    $referral_user = $invitation->user;

    // show signup form
} else {
    $status = Invite::status($code);
    // show error or show simple signup form
}
```

```
// Post route
$code = Request::input('code');
$email = Request::input('signup_email');
if( Invite::isAllowed($code,$email) ){
    // Register this user
    Invite::consume($code);
} else {
    // either refCode is inavalid, or provided email was not invited against this refCode
}
```

with help of new trait you have access to invitations sent by user

```
$user= User::find(1);
$invitations = $user->invitations;
$count = $user->invitations()->count();
```

Events
------

[](#events)

***larainvite*** fires several [events](https://laravel.com/docs/master/events)

- 'junaidnasir.larainvite.invited'
- 'junaidnasir.larainvite.consumed'
- 'junaidnasir.larainvite.canceled'
- 'junaidnasir.larainvite.expired'

all of these events incloses `invitation modal` so you can listen to these events. include listener in `EventServiceProvider.php`

```
protected $listen = [
    'junaidnasir.larainvite.invited' => [
        'App\Listeners\userInvite',
    ],
];
```

`userInvite.php`

```
public function handle($invitation)
{
    \Mail::queue('invitations.emailBody', $invitation, function ($m) use ($invitation) {
            $m->from('From Address', 'Your App Name');
            $m->to($invitation->email);
            $m->subject("You have been invited by ". $invitation->user->name);
        });
}
```

Configurations
--------------

[](#configurations)

in `config/larainvite.php` you can set default expiration time in hours from current time.

```
'expires' => 48
```

you can also change user model to be used, in `larainvite.php`

```
'UserModel' => 'App\User'
```

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity56

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 58.8% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~12 days

Recently: every ~4 days

Total

15

Last Release

3526d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/76398c7e5df0e283683005c31f37478723c0bfedcb4b0be7726f54f96921e1e3?d=identicon)[RaymondWilkinson](/maintainers/RaymondWilkinson)

---

Top Contributors

[![junaidnasir](https://avatars.githubusercontent.com/u/10703810?v=4)](https://github.com/junaidnasir "junaidnasir (20 commits)")[![RaymondWilkinson](https://avatars.githubusercontent.com/u/13651854?v=4)](https://github.com/RaymondWilkinson "RaymondWilkinson (14 commits)")

---

Tags

laravelInviteinvitations

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/raymondwilkinson-larainvite/health.svg)

```
[![Health](https://phpackages.com/badges/raymondwilkinson-larainvite/health.svg)](https://phpackages.com/packages/raymondwilkinson-larainvite)
```

###  Alternatives

[mongodb/laravel-mongodb

A MongoDB based Eloquent model and Query builder for Laravel

7.1k7.2M71](/packages/mongodb-laravel-mongodb)[laravel/pulse

Laravel Pulse is a real-time application performance monitoring tool and dashboard for your Laravel application.

1.7k12.1M99](/packages/laravel-pulse)[watson/validating

Eloquent model validating trait.

9723.3M46](/packages/watson-validating)[roots/acorn

Framework for Roots WordPress projects built with Laravel components.

9682.1M97](/packages/roots-acorn)[cybercog/laravel-ban

Laravel Ban simplify blocking and banning Eloquent models.

1.1k651.8k11](/packages/cybercog-laravel-ban)[dyrynda/laravel-model-uuid

This package allows you to easily work with UUIDs in your Laravel models.

4802.8M8](/packages/dyrynda-laravel-model-uuid)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
