PHPackages                             abdyek/whoo - 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. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. abdyek/whoo

ActiveLibrary[Authentication &amp; Authorization](/categories/authentication)

abdyek/whoo
===========

database agnostic authentication library

v1.0.0(4y ago)959MITPHP

Since Sep 21Pushed 4y ago1 watchersCompare

[ Source](https://github.com/abdyek/whoo)[ Packagist](https://packagist.org/packages/abdyek/whoo)[ RSS](/packages/abdyek-whoo/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependencies (5)Versions (7)Used By (0)

Whoo
====

[](#whoo)

Whoo is a database agnostic authentication library to manage authentication operation easily. Whoo provides you a layer to access and manage user and authentication in your application using [Propel ORM](https://github.com/propelorm/Propel2).

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

[](#installation)

`composer require propel/propel "2.0.0-beta1" abdyek/whoo ^1.0`

Features
--------

[](#features)

- Easy installation, building, usage and learning
- Two-Factor Authentication support
- OAuth2 authentication provider support
- Database agnostic. MySQL, MS SQL Server, PostgreSQL, SQLite, Oracle support (powered by Propel ORM)
- Able to configure for you application
- Portable and standalone
- Destroyable JSON Web Tokens

Getting Started
---------------

[](#getting-started)

```
require 'vendor/autoload.php';

use Abdyek\Whoo\Whoo;

// Whoo once needs to load Propel config
Whoo::loadPropelConfig();

// Sign Up
$signUp = new Whoo('SignUp', [
    'email' => 'new_user_email@example.com',
    'password' => 'this_is_password',
    'username' => 'abdyek',
]);

$signUp->success(function(array $response) {
    echo $response['user']->getUsername() . ' registered whoo database';
})->exception('NotUniqueEmail', function($e) {
    // Oops! the email already is registered
})->exception('NotUniqueUsername', function($e) {
    // Oops! the username already is registered
});

$signUp->run();
```

Documentation
-------------

[](#documentation)

You can reach all controller class and other info at [wiki](https://github.com/abdyek/whoo/wiki) page.

Versioning
----------

[](#versioning)

Whoo will have semantic versioning when first stable release.

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity14

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity55

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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 ~23 days

Recently: every ~28 days

Total

6

Last Release

1583d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/aadddec3fbb1013ac171f05b93671bb503d30c97bbafc4829e8469d0cd66d5b9?d=identicon)[abdyek](/maintainers/abdyek)

---

Top Contributors

[![abdyek](https://avatars.githubusercontent.com/u/16313808?v=4)](https://github.com/abdyek "abdyek (149 commits)")

---

Tags

authenticationjwttwo-factor-authenticationjwtAuthentication

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

![Health badge](/badges/abdyek-whoo/health.svg)

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

###  Alternatives

[admad/cakephp-jwt-auth

CakePHP plugin for authenticating using JSON Web Tokens

160680.3k8](/packages/admad-cakephp-jwt-auth)[dmkit/phalcon-jwt-auth

A simple JWT middleware for Phalcon Micro to handle stateless authentication

3541.5k](/packages/dmkit-phalcon-jwt-auth)[internacionalweb/cognito-token-verifier

This library verifies that the signature of the JWT is valid, comes from a desired application, and that the token has not been tampered with or expired.

102.1k](/packages/internacionalweb-cognito-token-verifier)

PHPackages © 2026

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