PHPackages                             laraveldaily/filacheck - 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. [Testing &amp; Quality](/categories/testing)
4. /
5. laraveldaily/filacheck

ActiveLibrary[Testing &amp; Quality](/categories/testing)

laraveldaily/filacheck
======================

Static analysis for Filament projects - detect deprecated patterns and code issues

v1.2.3(2w ago)11975.6k↑147.5%7MITPHPPHP ^8.2CI passing

Since Feb 2Pushed 2w ago5 watchersCompare

[ Source](https://github.com/LaravelDaily/FilaCheck)[ Packagist](https://packagist.org/packages/laraveldaily/filacheck)[ Docs](https://github.com/LaravelDaily/filacheck)[ RSS](/packages/laraveldaily-filacheck/feed)WikiDiscussions main Synced 2d ago

READMEChangelog (10)Dependencies (29)Versions (32)Used By (0)

FilaCheck
=========

[](#filacheck)

Static analysis for Filament v4/v5 projects. Detect deprecated patterns and code issues.

FilaCheck is like Pint but for Filament - run it after AI agents generate code or during CI to catch common issues.

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

[](#installation)

```
composer require laraveldaily/filacheck --dev
```

---

Usage
-----

[](#usage)

You can run Filacheck as a Terminal command.

```
# Scan default app/Filament directory
vendor/bin/filacheck

# Scan specific directory
vendor/bin/filacheck app/Filament/Resources

# Show detailed output with categories
vendor/bin/filacheck --detailed
```

### Scan Only Dirty Files

[](#scan-only-dirty-files)

Scan only files with uncommitted git changes, similar to Laravel Pint's `--dirty` option:

```
# Scan only uncommitted files
vendor/bin/filacheck --dirty

# Auto-fix only dirty files
vendor/bin/filacheck --dirty --fix

# Preview fixes for dirty files only
vendor/bin/filacheck --dirty --dry-run
```

### Auto-fixing Issues (Beta)

[](#auto-fixing-issues-beta)

FilaCheck can automatically fix many issues it detects:

```
# Fix issues automatically
vendor/bin/filacheck --fix

# Preview suggested fixes without modifying files
vendor/bin/filacheck --dry-run

# Fix with backup files (creates .bak files before modifying)
vendor/bin/filacheck --fix --backup
```

Warning

The auto-fix feature is in early stages. Always ensure your code is committed to version control (e.g., Git/GitHub) before running `--fix` so you can easily review and revert changes if needed.

---

Configuration
-------------

[](#configuration)

You can optionally publish the config file to disable individual rules:

```
php artisan vendor:publish --tag=filacheck-config
```

To disable a rule, set `enabled` to `false`:

```
// config/filacheck.php
'deprecated-reactive' => [
    'enabled' => false,
],
```

All rules are enabled by default.

---

Available Rules (16 Free)
-------------------------

[](#available-rules-16-free)

FilaCheck includes the following rules for detecting deprecated code patterns and common issues:

### Best Practices (2 rules)

[](#best-practices-2-rules)

RuleDescriptionFixable`action-in-bulk-action-group`Detects `Action::make()` inside `BulkActionGroup::make()` which should be `BulkAction::make()`Yes`wrong-tab-namespace`Detects wrong `Tab` namespace - should be `Filament\Schemas\Components\Tabs\Tab`Yes### Deprecated Code (14 rules)

[](#deprecated-code-14-rules)

RuleDescriptionFixable`deprecated-reactive`Detects `->reactive()` which should be replaced with `->live()`Yes`deprecated-action-form`Detects `->form()` on Actions which should be `->schema()`Yes`deprecated-filter-form`Detects `->form()` on Filters which should be `->schema()`Yes`deprecated-placeholder`Detects `Placeholder::make()` which should be `TextEntry::make()->state()`No`deprecated-mutate-form-data-using`Detects `->mutateFormDataUsing()` which should be `->mutateDataUsing()`Yes`deprecated-empty-label`Detects `->label('')` which should be `->hiddenLabel()` (or `->iconButton()` on Actions)Yes`deprecated-forms-get`Detects `use Filament\Forms\Get` or `callable $get` which should use `Filament\Schemas\Components\Utilities\Get`Yes`deprecated-forms-set`Detects `use Filament\Forms\Set` or `callable $set` which should use `Filament\Schemas\Components\Utilities\Set`Yes`deprecated-image-column-size`Detects `->size()` on ImageColumn which should be `->imageSize()`Yes`deprecated-view-property`Detects `$view` property not declared as `protected string`Yes`deprecated-bulk-actions`Detects `->bulkActions()` which should be replaced with `->toolbarActions()`Yes`deprecated-url-parameters`Detects deprecated URL parameters like `tableFilters`, `activeTab`, `tableSearch`, etc.Yes`deprecated-test-methods`Detects deprecated test methods like `setActionData()`, `mountTableAction()`, `assertFormSet()`, etc.Partial`deprecated-image-editor-aspect-ratios`Detects `->imageEditorAspectRatios()` on FileUpload which should be `->imageEditorAspectRatioOptions()`Yes---

Example Output
--------------

[](#example-output)

```
Scanning: app/Filament

..x..x.......

deprecated-reactive (Deprecated Code)
  app/Filament/Resources/UserResource.php
    Line 45: The `reactive()` method is deprecated.
      → Use `live()` instead of `reactive()`.

deprecated-action-form (Deprecated Code)
  app/Filament/Resources/PostResource.php
    Line 78: The `form()` method is deprecated on Actions.
      → Use `schema()` instead of `form()`.

Rules: 4 passed, 2 failed
Issues: 2 warning(s)
```

---

Exit Codes
----------

[](#exit-codes)

- `0` - No violations found
- `1` - Violations found

This makes FilaCheck perfect for CI pipelines.

---

[FilaCheck Pro](https://filamentexamples.com/filacheck)
-------------------------------------------------------

[](#filacheck-pro)

**FilaCheck Pro** adds 19 additional rules for performance optimization, security, best practices, and UX suggestions.

### Performance Rules (5 rules)

[](#performance-rules-5-rules)

RuleDescriptionFixable`too-many-columns`Warns when tables have more than 10 columnsNo`large-option-list-searchable`Suggests `->searchable()` for lists with 10+ optionsNo`heavy-closure-in-format-state`Detects database queries inside `formatStateUsing()` closures that cause N+1 issuesNo`stats-widget-polling-not-disabled`Warns when `StatsOverviewWidget` uses the default 5-second polling intervalYes`navigation-badge-not-cached`Warns when `getNavigationBadge()` is not cached using the `Cache` facade or `cache()` helperNo### Security Rules (1 rule)

[](#security-rules-1-rule)

RuleDescriptionFixable`file-upload-missing-accepted-file-types`Warns when `FileUpload` or `SpatieMediaLibraryFileUpload` is missing `acceptedFileTypes()` or `image()`No### Best Practices Rules (8 rules)

[](#best-practices-rules-8-rules)

RuleDescriptionFixable`string-icon-instead-of-enum`Detects string icons like `'heroicon-o-pencil'` - use `Heroicon::Pencil` enum insteadYes`string-font-weight-instead-of-enum`Detects string font weights like `'bold'` - use `FontWeight::Bold` enum insteadYes`deprecated-notification-action-namespace`Detects deprecated `Filament\Notifications\Actions\Action` namespace - use `Filament\Actions\Action` insteadYes`unnecessary-unique-ignore-record`Detects `->unique(ignoreRecord: true)` which is now the default in Filament v4Yes`custom-theme-needed`Detects Blade files using Tailwind CSS classes without a custom Filament theme configuredNo`file-upload-missing-max-size`Warns when `FileUpload` or `SpatieMediaLibraryFileUpload` is missing `maxSize()`No`bulk-action-missing-deselect`Warns when `BulkAction` is missing `deselectRecordsAfterCompletion()`Yes`enum-missing-filament-interfaces`Warns when enums cast in Eloquent models are missing Filament interfaces like `HasLabel`No### UX Suggestions Rules (5 rules)

[](#ux-suggestions-rules-5-rules)

RuleDescriptionFixable`flat-form-overload`Warns when form schema has more than 8 fields without any layout grouping (Sections, Tabs, Fieldsets, etc.)No`relationship-select-not-searchable`Warns when `Select` with `relationship()` is missing `searchable()`No`missing-table-filters`Warns when table has filterable columns (boolean, badge, icon) but no filters definedNo`table-without-searchable-columns`Warns when table has text columns but none are searchableNo`filter-missing-indicator`Warns when custom `Filter` has a `schema()` but no `indicateUsing()` or `indicator()` for active filter badgesNoGet FilaCheck Pro at [filamentexamples.com/filacheck](https://filamentexamples.com/filacheck).

---

CI Integration
--------------

[](#ci-integration)

### GitHub Actions

[](#github-actions)

```
name: FilaCheck

on: [push, pull_request]

jobs:
  filacheck:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Setup PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: '8.2'

      - name: Install dependencies
        run: composer install --no-progress --prefer-dist

      - name: Run FilaCheck
        run: vendor/bin/filacheck
```

---

Contributing
------------

[](#contributing)

Contributions are welcome! Please feel free to submit a Pull Request.

License
-------

[](#license)

MIT License. See [LICENSE](LICENSE) for details.

###  Health Score

59

—

FairBetter than 98% of packages

Maintenance96

Actively maintained with recent releases

Popularity48

Moderate usage in the ecosystem

Community18

Small or concentrated contributor base

Maturity58

Maturing project, gaining track record

 Bus Factor2

2 contributors hold 50%+ of commits

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

Recently: every ~21 days

Total

24

Last Release

18d ago

Major Versions

v0.4 → v1.0.02026-03-09

PHP version history (2 changes)v0.1.0PHP ^8.1

v0.1.9PHP ^8.2

### Community

Maintainers

![](https://www.gravatar.com/avatar/8dfd7abe6d76f60f1fe0b5d24abd419f4945bd41766823f9134bb877bb3f5a34?d=identicon)[Laraveldaily](/maintainers/Laraveldaily)

---

Top Contributors

[![PovilasKorop](https://avatars.githubusercontent.com/u/1510147?v=4)](https://github.com/PovilasKorop "PovilasKorop (44 commits)")[![krekas](https://avatars.githubusercontent.com/u/11015977?v=4)](https://github.com/krekas "krekas (43 commits)")[![florianraith](https://avatars.githubusercontent.com/u/37345813?v=4)](https://github.com/florianraith "florianraith (13 commits)")[![marioagr](https://avatars.githubusercontent.com/u/24358434?v=4)](https://github.com/marioagr "marioagr (2 commits)")[![Carnicero90](https://avatars.githubusercontent.com/u/78483736?v=4)](https://github.com/Carnicero90 "Carnicero90 (1 commits)")[![medienopfer](https://avatars.githubusercontent.com/u/1210592?v=4)](https://github.com/medienopfer "medienopfer (1 commits)")

---

Tags

laravelstatic analysiscode qualitylintlivewirefilament

###  Code Quality

TestsPest

### Embed Badge

![Health badge](/badges/laraveldaily-filacheck/health.svg)

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

###  Alternatives

[laravel/framework

The Laravel Framework.

34.8k543.8M20.1k](/packages/laravel-framework)[infection/infection

Infection is a Mutation Testing framework for PHP. The mutation adequacy score can be used to measure the effectiveness of a test set in terms of its ability to detect faults.

2.2k28.9M2.4k](/packages/infection-infection)[matomo/matomo

Matomo is the leading Free/Libre open analytics platform

21.7k38.9k](/packages/matomo-matomo)[laravel/horizon

Dashboard and code-driven configuration for Laravel queues.

4.2k95.4M306](/packages/laravel-horizon)[psalm/plugin-laravel

Psalm plugin for Laravel

3355.3M346](/packages/psalm-plugin-laravel)[tempest/framework

The PHP framework that gets out of your way.

2.2k34.4k15](/packages/tempest-framework)

PHPackages © 2026

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