PHPackages                             mistralys/application\_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. mistralys/application\_framework

ActiveLibrary

mistralys/application\_framework
================================

Application admin UI Framework.

7.0.12(1mo ago)41.4k[23 issues](https://github.com/Mistralys/application-framework/issues)LGPL-3.0-or-laterPHPPHP ^8.4

Since Feb 26Pushed 1mo ago2 watchersCompare

[ Source](https://github.com/Mistralys/application-framework)[ Packagist](https://packagist.org/packages/mistralys/application_framework)[ RSS](/packages/mistralys-application-framework/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (40)Versions (229)Used By (0)

[![](src/themes/default/img/app-framework-logo.png)](src/themes/default/img/app-framework-logo.png)

Application Framework
=====================

[](#application-framework)

All-in-one PHP framework and UI layer for building web and intranet applications.

Introduction
------------

[](#introduction)

The framework is designed to be a solid foundation for custom-built web applications. The integrated functionality helps to focus on the application logic, while being able to create the necessary administration screens, APIs and more with minimal effort.

Note that it is not a CMS: it is exclusively a tool for building custom applications. Supporting features are available out of the box, like the notepad or image library, but anything your application needs to do must be implemented by you.

One of the core functionalities of the framework is to provide an extensive ecology of classes for accessing custom data stored in the database. This includes complex filtering capabilities as well as a versioning system with record state tracking (draft, published, etc.).

Features overview
-----------------

[](#features-overview)

- PHP helper classes for UI elements
- Form building system - every screen is a form
- Rule-based application environment detection
- Advanced database-stored data handling tools
- Class-based extensible templating system
- Localization system for UI translation
- News central (release notes, etc.)
- Event handling system
- Image media library and UI
- Tagging system and UI
- Versioning system with state tracking
- Disposables system for automated garbage collection
- SSO via CAS
- Interface Translations: English, German, French
- Build-time module documentation generators (Modules Overview, Keyword Glossary)
- Own ecology of supporting libraries

Requirements
------------

[](#requirements)

- PHP 7.4 or higher (fully PHP 8 compatible)
- [Composer](https://getcomposer.org)
- MariaDB or MySQL database with InnoDB support
- Webserver

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

[](#installation)

The framework can be installed as a regular Composer dependency. However, the required application skeleton of folders and files can currently only be generated dynamically using the [Framework Manager](https://github.com/Mistralys/appframework-manager), which is currently still a private project.

Documentation on how to set up an application using the framework is still in progress. In the meantime, the example application can be used as a reference (see [Example application](#example-application)).

Example application
-------------------

[](#example-application)

The framework includes a sample application which is used as a reference for available features, best practices, and testing. It can also be used as the basis for a new application.

You will find it in the `tests/application` folder.

**Installation**

1. Import the SQL file `tests/sql/testsuite.sql` into a database.
2. Open the folder `tests/application/config`.
3. Copy `test-db-config.dist.php` to `test-db-config.php`.
4. Copy `test-ui-config.dist.php` to `test-ui-config.php`.
5. Edit the settings in both files.
6. Access the `tests/application` folder via the webserver.

Composer commands
-----------------

[](#composer-commands)

These are custom Composer commands that are available when developing locally.

### Build

[](#build)

The build step generates module documentation artefacts from `module-context.yaml`files discovered throughout the codebase, updates the CTX `generated-at.txt`timestamp, regenerates the API method index, and rebuilds offline event listeners.

```
composer build
```

For the full development build (includes module glossary and keyword index):

```
composer build-dev
```

### Clear caches

[](#clear-caches)

Clears all caches used by the framework, including the dynamic class cache.

```
composer clear-caches
```

Build-Time Documentation Generators
-----------------------------------

[](#build-time-documentation-generators)

The `Application\Composer` namespace provides build-time utilities that generate two Markdown documentation artefacts automatically on every `composer build`:

- **Modules Overview** (`docs/agents/project-manifest/modules-overview.md`) — a Markdown table of all modules, their source paths, context doc locations, and inter-module dependencies. Discovered from `module-context.yaml` files.
- **Keyword Glossary** (`docs/agents/project-manifest/module-glossary.md`) — a Markdown glossary mapping opaque domain terms to the modules that define them. Application modules can contribute custom sections via the `DecorateGlossaryEvent`offline event.

To register a module for discovery, add a `module-context.yaml` next to its classes:

```
moduleMetaData:
  id: "my-module"
  label: "My Module"
  description: "What this module does."
  keywords:
    - "Widget (the core UI component)"
```

See [`src/classes/Application/Composer/README.md`](src/classes/Application/Composer/README.md)for full API documentation and the offline-event integration guide.

CTX Integration
---------------

[](#ctx-integration)

The project uses CTX to generate context files for AI-assisted development, and to provide an MCP server for integration with IDEs like PHPStorm to access the framework's AI tools.

### Related commands

[](#related-commands)

#### Start the MCP Server

[](#start-the-mcp-server)

```
ctx server
```

#### Generate all files

[](#generate-all-files)

```
ctx generate
```

#### Server information

[](#server-information)

This fetches a JSON-lines list of configurations and tools available in the server.

```
(echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test-client","version":"1.0.0"}}}'; \
 echo '{"jsonrpc":"2.0","method":"notifications/initialized"}'; \
 echo '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}') | ctx server -c context.yaml
```

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

[](#documentation)

The framework's documentation is available locally by pointing a browser to the `docs` folder, and online in the separate [Framework Documentation](https://github.com/Mistralys/application-framework-docs)package.

> It is ideally viewed through the framework's documentation screen, as there are some features that are only available there (like code samples that are included dynamically).

### Vendor Package

[](#vendor-package)

For convenience, a copy of the documentation is automatically checked out into the vendor folder during the Composer install process.

It can be found at [mistralys/application-framework-docs](/vendor/mistralys/application-framework-docs/README.md).

History
-------

[](#history)

The framework has its origins in several projects where the same development paradigms were used and refined over time. In 2013, it started to crystallize into a recognizable entity, and in 2015, it was officially split off into its own project.

It was migrated to Github in february 2021, and modernizing the code has been ongoing ever since. As a result, the current state of the code is a mix of namespaced and non-namespaced code, with the goal of eventually moving to a fully namespaced codebase.

###  Health Score

53

—

FairBetter than 97% of packages

Maintenance70

Regular maintenance activity

Popularity22

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity90

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 98.7% 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 ~8 days

Total

225

Last Release

52d ago

Major Versions

2.11.0-alpha2 → 3.0.0-rc22023-10-26

3.1.7 → 4.0.02024-05-14

4.0.6 → 5.0.02024-07-31

5.13.2 → 6.0.02025-11-25

6.2.0 → 7.0.02026-02-10

PHP version history (3 changes)2.0.0PHP &gt;=7.4

5.8.3PHP ^7.4|^8

5.11.0PHP ^8.4

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/8895528?v=4)[Mistralys](/maintainers/Mistralys)[@Mistralys](https://github.com/Mistralys)

---

Top Contributors

[![Mistralys](https://avatars.githubusercontent.com/u/8895528?v=4)](https://github.com/Mistralys "Mistralys (4809 commits)")[![emre-ionos](https://avatars.githubusercontent.com/u/79832842?v=4)](https://github.com/emre-ionos "emre-ionos (49 commits)")[![danielstorch](https://avatars.githubusercontent.com/u/5611423?v=4)](https://github.com/danielstorch "danielstorch (8 commits)")[![dstorch-ionos](https://avatars.githubusercontent.com/u/153072168?v=4)](https://github.com/dstorch-ionos "dstorch-ionos (8 commits)")

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan, Rector

Type Coverage Yes

### Embed Badge

![Health badge](/badges/mistralys-application-framework/health.svg)

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

###  Alternatives

[zircote/swagger-php

Generate interactive documentation for your RESTful API using PHP attributes (preferred) or PHPDoc annotations

5.3k132.9M468](/packages/zircote-swagger-php)[simplesamlphp/simplesamlphp

A PHP implementation of a SAML 2.0 service provider and identity provider.

1.1k12.4M192](/packages/simplesamlphp-simplesamlphp)[tempest/framework

The PHP framework that gets out of your way.

2.1k23.1k9](/packages/tempest-framework)[drupal/core

Drupal is an open source content management platform powering millions of websites and applications.

19462.3M1.3k](/packages/drupal-core)[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.3M152](/packages/sulu-sulu)[contao/core-bundle

Contao Open Source CMS

1231.6M2.3k](/packages/contao-core-bundle)

PHPackages © 2026

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