mistralys / application_framework
Application admin UI Framework.
Requires
- php: >=7.4
- ext-json: *
- ext-mbstring: *
- ext-pdo: *
- ext-simplexml: *
- apereo/phpcas: ^1.6.1
- ccampbell/mousetrap: dev-master
- desandro/masonry: v4.2.2
- hybridauth/hybridauth: ^3.8.2
- league/commonmark: ^2.4.1
- lipis/flag-icons: ^6.8
- marcj/css-element-queries: ^1.2.2
- medialize/uri.js: ^1.19.11
- mistralys/appframework-ckeditor5: >=1.0.0
- mistralys/application-framework-docs: >=1.0.1
- mistralys/application-localization: >=1.5.0
- mistralys/application-utils: 3.1.0
- mistralys/application-utils-collections: >=1.1.1
- mistralys/application-utils-core: >=1.2.0
- mistralys/application-utils-image: dev-main
- mistralys/changelog-parser: >=1.0.1
- mistralys/deepl-xml-translator: >=2.0.2
- mistralys/html_quickform2: >=2.3.3
- mistralys/markdown-viewer: >=1.3.1
- mistralys/subsetsum: >=1.0.2
- mistralys/version-parser: >=2.1.1
- pear/http_request2: ^v2.5.1
- phpmailer/phpmailer: ^v6.9.1
- psr/log: >=1.1.0
- roave/security-advisories: dev-latest
- shark/simple_html_dom: dev-master
- ulrichsg/getopt-php: ^4.0.2
- zenorocha/clipboardjs: v2.0.8
Requires (Dev)
- ext-curl: *
- css-crush/css-crush: v4.1.3
- phpstan/phpstan: >=1.10
- phpunit/phpunit: >=9.6
- dev-main
- 5.5.4
- 5.5.3
- 5.5.2
- 5.5.1
- 5.5.0
- 5.4.5
- 5.4.4
- 5.4.3
- 5.4.2
- 5.4.1
- 5.4.0
- 5.3.4
- 5.3.3
- 5.3.2
- 5.3.1
- 5.3.0
- 5.2.0
- 5.1.1
- 5.1.0
- 5.0.4
- 5.0.3
- 5.0.2
- 5.0.1
- 5.0.0
- 4.0.6
- 4.0.5
- 4.0.4
- 4.0.3
- 4.0.2
- 4.0.1
- 4.0.0
- 3.1.7
- 3.1.6
- 3.1.5
- 3.1.4
- 3.1.3
- 3.1.2
- 3.1.1
- 3.1.0
- 3.0.5
- 3.0.4
- 3.0.3
- 3.0.2
- 3.0.1
- 3.0.0
- 3.0.0-rc4
- 3.0.0-rc3
- 3.0.0-rc2
- 3.0.0-rc1
- 2.11.0-alpha2
- 2.11.0-alpha1
- 2.10.0
- 2.10.0-alpha1
- 2.9.1
- 2.9.0
- 2.9.0-rc3
- 2.9.0-rc2
- 2.9.0-rc1
- 2.9.0-beta3
- 2.9.0-beta2
- 2.9.0-beta1
- 2.9.0-alpha2
- 2.9.0-alpha1
- 2.8.3
- 2.8.2
- 2.8.1
- 2.8.0
- 2.7.4
- 2.7.3
- 2.7.2
- 2.7.1
- 2.7.0
- 2.6.3
- 2.6.2
- 2.6.1
- 2.6.0
- 2.5.7
- 2.5.6
- 2.5.5
- 2.5.4
- 2.5.3
- 2.5.2
- 2.5.1
- 2.5.0
- 2.4.4
- 2.4.3
- 2.4.2
- 2.4.1
- 2.4.0
- 2.3.8
- 2.3.7
- 2.3.6
- 2.3.5
- 2.3.4
- 2.3.3
- 2.3.2
- 2.3.1
- 2.3.0
- 2.2.0
- 2.1.8
- 2.1.7
- 2.1.6
- 2.1.5
- 2.1.4
- 2.1.3
- 2.1.2
- 2.1.1
- 2.1.0
- 2.0.1
- 2.0.0
- 1.23.2
- 1.23.1
- 1.23.0
- 1.22.2
- 1.22.1
- 1.22.0
- 1.21.2
- 1.21.1
- 1.21.0
- 1.20.1
- 1.20.0
- 1.19.0
- 1.18.0
- 1.17.0
- 1.16.1
- 1.16.0
- 1.15.4
- 1.15.3
- 1.15.2
- 1.15.1
- 1.15.0
- 1.14.0
- 1.13.10
- 1.13.9
- 1.13.8
- 1.13.7
- 1.13.6
- 1.13.5
- 1.13.4
- 1.13.3
- 1.13.2
- 1.13.1
- 1.13.0
- 1.12.11
- 1.12.10
- 1.12.9
- 1.12.8
- 1.12.7
- 1.12.6
- 1.12.5
- 1.12.4
- 1.12.3
- 1.12.2
- 1.12.1
- 1.12.0
- 1.11.0
- 1.10.0
- 1.9.6
- dev-revisionable-changelog-improvements
- dev-4.0.6-api-fix
- dev-feature-dark-mode
This package is auto-updated.
Last update: 2024-11-22 13:51:58 UTC
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
- 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
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
- Import the SQL file
tests/sql/testsuite.sql
into a database. - Open the folder
tests/application/config
. - Copy
test-db-config.dist.php
totest-db-config.php
. - Copy
test-ui-config.dist.php
totest-ui-config.php
. - Edit the settings in both files.
- Access the
tests/application
folder via the webserver.
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).
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.