PHPackages                             mike/taurus-framework - 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. [Framework](/categories/framework)
4. /
5. mike/taurus-framework

ActiveLibrary[Framework](/categories/framework)

mike/taurus-framework
=====================

A framework for building REST API based backends

v1.1.7rc(8y ago)190PHP

Since Jun 18Pushed 7y ago1 watchersCompare

[ Source](https://github.com/mhunger/taurus)[ Packagist](https://packagist.org/packages/mike/taurus-framework)[ RSS](/packages/mike-taurus-framework/feed)WikiDiscussions master Synced today

READMEChangelogDependencies (4)Versions (16)Used By (0)

Taurus Framework
----------------

[](#taurus-framework)

Paging
======

[](#paging)

Paging works out of the box on every API configured through the Taurus Web Service System and Router. It's configured in the config.yml in the app directory usually called yourapp.config.yml. There are 3 important configs you need to set/know to use it.

Config NameDescriptionDefaultdefault\_page\_sizeSets the number of elements returned for a page. The number can be changed dynamically per request by setting the page\_size\_param\_name in the request20page\_size\_param\_nameThis is the name of the request parameter that can be used to overwrite the default page size in a specific requestpageSizepage\_param\_nameThis is the request parameter you need to use to request a certain pagepageAuthentication
==============

[](#authentication)

Authentication is build into Taurus. The following steps have to be done to configure it:

- Configure Authentication in config.yaml
    - Set auth\_enabled to true
    - Define a password encryption algorithm default HS256
    - Define how the token that will secure the APIs is exchanged (header or cookie)
    - Define the name of the token in header or cookie
    - Define on a secret to encrypt passwords, when stored
- Create an Entity usually User that has the username and password data
    - The entity requires a PasswordHash annotation on the property that will hold the password
    - The PasswordHash annotation will make sure that the password is encrypted, when a new user is created
    - The entity has to extend AuthenticationResource
- Create an Authentication Specification, which is used to load the user data, when login is attempted
    - The specification would usually have a single field username, but any combination can be used
    - The specification will be used to build the query that will load the user from the database, *before the password is validated using password\_hash!*
    - If the specification returns more then one user, authentication will fail with 401 Response
- Configure Authentication in config.yaml
    - Set auth\_enabled to true
    - Define a password encryption algorithm default HS256
    - Define how the token that will secure the APIs is exchanged (header or cookie)
    - Define the name of the token in header or cookie
    - Define on a secret to encrypt passwords, when stored
    - Configure the user entity you defined earlier
    - Configure the user specification you defined earlier
    - Configure the authentication url (*make sure that url is not listed in the public resources in the config.yaml*)
- Create an authentication route in the Routing Config using the buildAuthenticationRoute method of the Route builder
    - It is important that the login url in the config.yaml is exactly matching the url in the routing config including leading slashes

Once all that is done, all resources are protected apart from those in the public resource array in the config and the login url. The channels are secured with a JWT token.

Filtering
=========

[](#filtering)

Taurus allows to easily configure filters on APIs by writing a *Specification*. A specification is a class that defines the fields by which can be filtered. The actual filtering happens by passing a paramter filter that is an array of field=filter pairs.

/api/user?filter\[name\]=test

How to Build a Specification
----------------------------

[](#how-to-build-a-specification)

tbd.

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity11

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity57

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 ~22 days

Recently: every ~28 days

Total

13

Last Release

2976d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/7560dcd8ca26da7617ba6243568dfeb9039f8a15c6f92d089ae6418692ee21c0?d=identicon)[mhunger](/maintainers/mhunger)

---

Top Contributors

[![mhunger](https://avatars.githubusercontent.com/u/50779?v=4)](https://github.com/mhunger "mhunger (382 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/mike-taurus-framework/health.svg)

```
[![Health](https://phpackages.com/badges/mike-taurus-framework/health.svg)](https://phpackages.com/packages/mike-taurus-framework)
```

###  Alternatives

[laravel/socialite

Laravel wrapper around OAuth 1 &amp; OAuth 2 libraries.

5.7k96.9M674](/packages/laravel-socialite)[laravel/passport

Laravel Passport provides OAuth2 server support to Laravel.

3.4k85.0M531](/packages/laravel-passport)[vesp/core

Vesp core library to make backend simple

243.8k5](/packages/vesp-core)[forme/framework

An MVC framework for WordPress.

175.0k3](/packages/forme-framework)[forumify/forumify-platform

121.8k11](/packages/forumify-forumify-platform)

PHPackages © 2026

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