An open API service indexing awesome lists of open source software.

https://github.com/mistralys/application-framework

Application admin UI Framework
https://github.com/mistralys/application-framework

Last synced: 5 months ago
JSON representation

Application admin UI Framework

Awesome Lists containing this project

README

          

# Application Framework

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

## 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

- 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
- Own ecology of supporting libraries

## Requirements

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

## 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][], 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

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

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

### Clear caches

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

```bash
composer clear-caches
```

## 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

#### Start the MCP Server

```bash
ctx server
```

#### Generate all files

```bash
ctx generate
```

#### Server information

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

```bash
(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

The framework's documentation is available locally by pointing a browser to
the `docs` folder, and online in the separate [Framework Documentation][]
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

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

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.

[Framework Manager]: https://github.com/Mistralys/appframework-manager
[Framework Documentation]: https://github.com/Mistralys/application-framework-docs