PHPackages                             billifty/shared-resources - 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. billifty/shared-resources

ActiveLibrary[Framework](/categories/framework)

billifty/shared-resources
=========================

Shared Laravel module with modular support for User, Post, Comments, etc.

00PHP

Since Dec 4Pushed 1mo agoCompare

[ Source](https://github.com/fordbedia/billifty-shared-resources)[ Packagist](https://packagist.org/packages/billifty/shared-resources)[ RSS](/packages/billifty-shared-resources/feed)WikiDiscussions main Synced today

READMEChangelogDependenciesVersions (10)Used By (0)

Unit Test
=========

[](#unit-test)

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

[](#documentation)

- [Scheduler](docs/scheduler.md): verify and manually test scheduled invoice payment reminders.

Workspace-scoped invoicing records
----------------------------------

[](#workspace-scoped-invoicing-records)

`business_profiles` and `clients` are owned by `workspace_id`, not `user_id`. User ownership should be resolved through `workspace.user_id`. This keeps future workspace switching possible while preserving current user-level plan counts via the user's workspace relationships.

Invoice PDF totals
------------------

[](#invoice-pdf-totals)

Invoice PDF templates must use `invoices.total_cents` as the source of truth for the displayed invoice total.

`invoices.amount_due_cents` represents the remaining balance after payments. It can legitimately become `0` when Stripe or PayPal marks an invoice as paid, so it must not be used as the primary invoice total in generated PDFs.

When invoice financial fields, payment status, or payment-link metadata changes, the stored PDF snapshot (`pdf_path`, `pdf_status`, `pdf_generated_at`, `pdf_error`) should be invalidated so a stale PDF is not reused.

```
docker compose -f docker-compose.yml -f docker-compose.dev.yml exec -T mysql \
  sh -lc "MYSQL_PWD='root' mysqldump -u 'root' app_db --single-transaction --routines --triggers --events --no-tablespaces --set-gtid-purged=OFF" \
  > shared-resources/src/TestCase/sqldumps/billifty.mysql.sql
```

```
```

Run tests
---------

[](#run-tests)

Run every module test class one class at a time:

```
composer test
```

Or:

```
./bin/phpunit-by-class
```

Run a specific class through PHPUnit:

```
./vendor/bin/phpunit --filter=UserSubscriptionTest
```

Or

```
docker compose -f docker-compose.yml -f docker-compose.dev.yml exec backend php artisan testdb:snapshot
```

###  Health Score

22

—

LowBetter than 21% of packages

Maintenance60

Regular maintenance activity

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity21

Early-stage or recently created project

 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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/2a42034eead17b4bb671a0b54cdc61a006e235175013a44588f47afb80eeee4f?d=identicon)[fordbedia](/maintainers/fordbedia)

---

Top Contributors

[![fordbedia](https://avatars.githubusercontent.com/u/18757107?v=4)](https://github.com/fordbedia "fordbedia (123 commits)")

### Embed Badge

![Health badge](/badges/billifty-shared-resources/health.svg)

```
[![Health](https://phpackages.com/badges/billifty-shared-resources/health.svg)](https://phpackages.com/packages/billifty-shared-resources)
```

###  Alternatives

[laravel/dusk

Laravel Dusk provides simple end-to-end testing and browser automation.

1.9k39.6M299](/packages/laravel-dusk)[nineinchnick/edatatables

Grid widget for the Yii Framework, wrapper for the DataTables jQuery plugin

173.2k](/packages/nineinchnick-edatatables)[link-cloud/fast-hyperf

LinkCloud Fast Hyperf

241.2k1](/packages/link-cloud-fast-hyperf)

PHPackages © 2026

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