PHPackages                             badchoice/thrust - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. badchoice/thrust

AbandonedArchivedLibrary[Utility &amp; Helpers](/categories/utility)

badchoice/thrust
================

A simple resource crud generator

0.5.15(4y ago)1030.4k↓76.3%17[3 issues](https://github.com/BadChoice/thrust/issues)[27 PRs](https://github.com/BadChoice/thrust/pulls)MITPHP

Since Sep 18Pushed 2y ago1 watchersCompare

[ Source](https://github.com/BadChoice/thrust)[ Packagist](https://packagist.org/packages/badchoice/thrust)[ RSS](/packages/badchoice-thrust/feed)WikiDiscussions master Synced yesterday

READMEChangelog (10)Dependencies (3)Versions (89)Used By (0)

\#Thrust

Fields
------

[](#fields)

- Validation rules
- Show in Index / Edit
- Visibility

### Basic Types

[](#basic-types)

- Check
- Check Switch
- Color
- Currency
- Date
- Datetime
- Email
- Hidden
- Integer
- Link
- Password
- Percentage
- Range
- Select
- Text
- Textarea
- Time
- Url

### Powered up

[](#powered-up)

- Panel
- Image
- Place
- Gravatar
- ParentId

### Relationships

[](#relationships)

- HasMany
- HasOne
- Belongs to
- Belongs to many

### Resource

[](#resource)

- Sortable
- Search
- Pagination
- Single resource
- Single resource search
- Automatic with
- Main Actions
- Row Actions
- Inline Edit
- Save and continue
- Table density
- Uses laravel policies for the crud related actions

Events
------

[](#events)

It uses the standard Laravel events, but if you want to add some events only on Thrust pages you can do it like this in you `AppServiceProvider`

```
    Thrust::serving(function () {
        User::observe(UserObserver::class);
    });

```

This way the observers will only be registered when using a thrust function

TODO:
-----

[](#todo)

\[x\] Migrate to select2 4.0
\[x\] Make check fields to be toggable from the index
\[x\] Pin validation not working (digits 4)
\[x\] Update validation
\[x\] Configurable route prefix
\[x\] Make the service provider deffered as it doesn't need to be called in the API
\[x\] Panel visibility by check and select
\[x\] Make visibleWhen (for checkboxes, or type of printers... etc)
\[x\] BelongsTo many ajax searchable
\[x\] Prunable files, should be deleted when deleting resource
\[x\] Update saveOrder function to use a thrust one instead of the retail/xef yet
\[x\] Update saveOrder function to use the plural version of the resource name (the one we use on whole thrust) instead of the singular one
\[x\] ThrustRelationshipController to use the $relationDisplayName instead of `name`
\[x\] Employee, photo upload...
\[x\] Add save and continue editing functionality
\[x\] Inline editing!
\[x\] Table density
\[x\] Custom events to be different than the standard ones?
\[x\] Quan sortable, afegir x defecte la main action save order
\[x\] Make the resource found in app service provider recursive into thrust directory ?
\[x\] Improved ResourceFilters\\Search by words, fer-ho per el primer fields nomes?
\[x\] Search through relationships
\[\] Save image in thrust to use the same route as display
\[\] Relationship rules, apply to field, and should apply to foreing\_key when saving
\[\] Use the search route into searcher, and pass the search parameter to query instead of a new url path parameter
\[\] Delete validation
\[\] Make sortable relationships (right now it uses the relationship name instead of the underling field)
\[\] Add latlang to algolia places search?
\[\] Search limitar-lo a 100 (configurable) sense pagination
\[\] Make hideWhen and showWhen to make it work with Array fields

###  Health Score

38

—

LowBetter than 83% of packages

Maintenance14

Infrequent updates — may be unmaintained

Popularity36

Limited adoption so far

Community20

Small or concentrated contributor base

Maturity68

Established project with proven stability

 Bus Factor1

Top contributor holds 68.2% 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 ~18 days

Recently: every ~43 days

Total

63

Last Release

1711d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/93900?v=4)[Jordi Puigdellívol](/maintainers/BadChoice)[@BadChoice](https://github.com/BadChoice)

---

Top Contributors

[![BadChoice](https://avatars.githubusercontent.com/u/93900?v=4)](https://github.com/BadChoice "BadChoice (424 commits)")[![MartiSalaMorral](https://avatars.githubusercontent.com/u/65666906?v=4)](https://github.com/MartiSalaMorral "MartiSalaMorral (65 commits)")[![PauRevo](https://avatars.githubusercontent.com/u/35812841?v=4)](https://github.com/PauRevo "PauRevo (54 commits)")[![alexrevo](https://avatars.githubusercontent.com/u/102517594?v=4)](https://github.com/alexrevo "alexrevo (39 commits)")[![dadraude](https://avatars.githubusercontent.com/u/141412796?v=4)](https://github.com/dadraude "dadraude (15 commits)")[![draude](https://avatars.githubusercontent.com/u/2104167?v=4)](https://github.com/draude "draude (11 commits)")[![jordi1704](https://avatars.githubusercontent.com/u/6200974?v=4)](https://github.com/jordi1704 "jordi1704 (4 commits)")[![adriamt](https://avatars.githubusercontent.com/u/11394100?v=4)](https://github.com/adriamt "adriamt (3 commits)")[![vicenthy](https://avatars.githubusercontent.com/u/3986111?v=4)](https://github.com/vicenthy "vicenthy (2 commits)")[![JordiFL-Revo](https://avatars.githubusercontent.com/u/105804865?v=4)](https://github.com/JordiFL-Revo "JordiFL-Revo (2 commits)")[![PauBenetPrat](https://avatars.githubusercontent.com/u/8748692?v=4)](https://github.com/PauBenetPrat "PauBenetPrat (2 commits)")[![kodjunkie](https://avatars.githubusercontent.com/u/21959017?v=4)](https://github.com/kodjunkie "kodjunkie (1 commits)")

### Embed Badge

![Health badge](/badges/badchoice-thrust/health.svg)

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

###  Alternatives

[unopim/unopim

UnoPim Laravel PIM

10.5k2.4k](/packages/unopim-unopim)[code16/sharp

Laravel Content Management Framework

79164.7k8](/packages/code16-sharp)[ecotone/ecotone

Enterprise architecture layer for Laravel and Symfony — CQRS, Event Sourcing, Durable Workflows (Sagas, Orchestrators), Projections, and Outbox messaging via PHP attributes.

564576.7k51](/packages/ecotone-ecotone)

PHPackages © 2026

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