PHPackages                             philippgrashoff/atkuiautosaveform - 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. philippgrashoff/atkuiautosaveform

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

philippgrashoff/atkuiautosaveform
=================================

An extension of Atk4\\Ui\\Form which automatically saves each change

6.0.3(2mo ago)21.4k↓23.3%PHPPHP 8.\*

Since Aug 4Pushed 2mo ago2 watchersCompare

[ Source](https://github.com/PhilippGrashoff/atkuiautosaveform)[ Packagist](https://packagist.org/packages/philippgrashoff/atkuiautosaveform)[ RSS](/packages/philippgrashoff-atkuiautosaveform/feed)WikiDiscussions main Synced 3d ago

READMEChangelog (5)Dependencies (6)Versions (6)Used By (0)

atkuiautosaveform
=================

[](#atkuiautosaveform)

This [Atk4\\Ui\\Form](https://github.com/atk4/ui) extension does 2 things:

1. it automatically submits if a user changes a control value, e.g. selects a dropdown or types some text into a text input.
2. If a field value is updated within form submit (e.g. if Model::save() modifies field values before saving), the AutoSaveForm updates the matching controls accordingly.

To create a proper UI experience for the user, the save button of the form indicates the state of the form. It has 3 states:

1. *Initial*: Only a colored outline (using FUI`s "basic" class). This means that no value within the form was changed
2. *Highlighted*: A colored background. Indicates that changes to a value were detected.
3. *Highlighted and loading* The button is colored and has a loading animation on it. This indicates that the form submission is happening.

See AutoSaveForm in action in [this video](https://youtu.be/t1n24NJnJX0).

Open `tests/autosaveformdemo.php` in your browser for a demo.

Current status
==============

[](#current-status)

### Tested with these Controls

[](#tested-with-these-controls)

- Line
- Textarea
- Checkbox
- Radio
- Calendar
- Dropdown
- Lookup (problem here, see below)

### Not tested with

[](#not-tested-with)

- Multiline

Known issues
============

[](#known-issues)

- Lookup and adjusting control value if it was changed during form submit does not work at the moment. With dropdown, this problem does not exist. If your application does not change the data value of the corresponding field, this issue does not cause problems. The automatic saving of Lookup values works.

Usage
=====

[](#usage)

Just use `AutoSaveForm` instead of `\Atk4\Ui\Form` in your code. See `tests/autosaveformdemo.php` for an example.

Installation
============

[](#installation)

The easiest way to use this repository is to add it to your composer.json in the require section:

```
{
  "require": {
    "philippgrashoff/atkuiautosaveform": "5.*"
  }
}
```

Versioning
==========

[](#versioning)

The version numbers of this repository correspond with the atk4\\data versions. So 5.2.x is compatible with atk4\\data 5.2.x and so on.

###  Health Score

43

—

FairBetter than 89% of packages

Maintenance87

Actively maintained with recent releases

Popularity23

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity44

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

Total

5

Last Release

63d ago

Major Versions

5.2.0 → 6.0.02025-05-07

### Community

Maintainers

![](https://www.gravatar.com/avatar/b8d7dc9f818ca121a41b3d19bd263147b404e0488096d2357729dea14232ec6e?d=identicon)[Philipp Reisigl](/maintainers/Philipp%20Reisigl)

---

Top Contributors

[![PhilippGrashoff](https://avatars.githubusercontent.com/u/33204878?v=4)](https://github.com/PhilippGrashoff "PhilippGrashoff (10 commits)")

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

![Health badge](/badges/philippgrashoff-atkuiautosaveform/health.svg)

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

PHPackages © 2026

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