{"id":24540748,"url":"https://github.com/mistralys/application-framework","last_synced_at":"2026-02-27T14:25:19.766Z","repository":{"id":37502013,"uuid":"342541307","full_name":"Mistralys/application-framework","owner":"Mistralys","description":"Application admin UI Framework","archived":false,"fork":false,"pushed_at":"2025-04-10T14:11:23.000Z","size":12363,"stargazers_count":4,"open_issues_count":25,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-10T14:48:53.389Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Mistralys.png","metadata":{"files":{"readme":"README.md","changelog":"changelog.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-02-26T10:29:04.000Z","updated_at":"2025-04-10T14:10:41.000Z","dependencies_parsed_at":"2023-02-13T20:01:44.785Z","dependency_job_id":"64981b63-349b-4f85-a930-98f57817e7c1","html_url":"https://github.com/Mistralys/application-framework","commit_stats":{"total_commits":1528,"total_committers":4,"mean_commits":382.0,"dds":"0.045157068062827266","last_synced_commit":"8f79299f1b6d938a603f480681c859ec2d7f4392"},"previous_names":[],"tags_count":174,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mistralys%2Fapplication-framework","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mistralys%2Fapplication-framework/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mistralys%2Fapplication-framework/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mistralys%2Fapplication-framework/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Mistralys","download_url":"https://codeload.github.com/Mistralys/application-framework/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249038887,"owners_count":21202803,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-22T18:14:49.582Z","updated_at":"2026-02-16T14:15:38.132Z","avatar_url":"https://github.com/Mistralys.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg src=\"src/themes/default/img/app-framework-logo.png\" width=\"110\" align=\"right\"\u003e\n\n# Application Framework\n\nAll-in-one PHP framework and UI layer for building web and intranet\napplications.\n\n## Introduction \n\nThe framework is designed to be a solid foundation for custom-built web \napplications. The integrated functionality helps to focus on the application \nlogic, while being able to create the necessary administration screens, \nAPIs and more with minimal effort.\n\nNote that it is not a CMS: it is exclusively a tool for building custom \napplications. Supporting features are available out of the box, like the \nnotepad or image library, but anything your application needs to do must \nbe implemented by you. \n\nOne of the core functionalities of the framework is to provide an extensive\necology of classes for accessing custom data stored in the database. \nThis includes complex filtering capabilities as well as a versioning \nsystem with record state tracking (draft, published, etc.).\n\n## Features overview\n\n- PHP helper classes for UI elements\n- Form building system - every screen is a form\n- Rule-based application environment detection\n- Advanced database-stored data handling tools\n- Class-based extensible templating system\n- Localization system for UI translation\n- News central (release notes, etc.)\n- Event handling system\n- Image media library and UI\n- Tagging system and UI\n- Versioning system with state tracking\n- Disposables system for automated garbage collection\n- SSO via CAS\n- Interface Translations: English, German, French\n- Own ecology of supporting libraries\n\n## Requirements\n\n- PHP 7.4 or higher (fully PHP 8 compatible)\n- [Composer](https://getcomposer.org)\n- MariaDB or MySQL database with InnoDB support\n- Webserver \n\n## Installation\n\nThe framework can be installed as a regular Composer dependency.\nHowever, the required application skeleton of folders and files\ncan currently only be generated dynamically using the \n[Framework Manager][], which is currently still a private project.\n\nDocumentation on how to set up an application using the framework\nis still in progress. In the meantime, the example application can\nbe used as a reference (see [Example application](#example-application)).\n\n## Example application\n\nThe framework includes a sample application which is used as a reference for \navailable features, best practices, and testing. It can also be used as\nthe basis for a new application.\n\nYou will find it in the `tests/application` folder.\n\n**Installation**\n\n1. Import the SQL file `tests/sql/testsuite.sql` into a database.\n2. Open the folder `tests/application/config`.\n3. Copy `test-db-config.dist.php` to `test-db-config.php`.\n4. Copy `test-ui-config.dist.php` to `test-ui-config.php`.\n5. Edit the settings in both files.\n6. Access the `tests/application` folder via the webserver.\n\n## Composer commands\n\nThese are custom Composer commands that are available \nwhen developing locally.\n\n### Clear caches\n\nClears all caches used by the framework, including the dynamic\nclass cache.\n\n```bash\ncomposer clear-caches\n```\n\n## CTX Integration\n\nThe project uses CTX to generate context files for AI-assisted development,\nand to provide an MCP server for integration with IDEs like PHPStorm to \naccess the framework's AI tools.\n\n### Related commands\n\n#### Start the MCP Server\n\n```bash\nctx server\n```\n\n#### Generate all files\n\n```bash\nctx generate \n```\n\n#### Server information\n\nThis fetches a JSON-lines list of configurations and tools available \nin the server.\n\n```bash\n(echo '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"initialize\",\"params\":{\"protocolVersion\":\"2024-11-05\",\"capabilities\":{},\"clientInfo\":{\"name\":\"test-client\",\"version\":\"1.0.0\"}}}'; \\\n echo '{\"jsonrpc\":\"2.0\",\"method\":\"notifications/initialized\"}'; \\\n echo '{\"jsonrpc\":\"2.0\",\"id\":2,\"method\":\"tools/list\",\"params\":{}}') | ctx server -c context.yaml\n```\n\n## Documentation\n\nThe framework's documentation is available locally by pointing a browser to \nthe `docs` folder, and online in the separate [Framework Documentation][]\npackage. \n\n\u003e It is ideally viewed through the framework's documentation screen, as there\n\u003e are some features that are only available there (like code samples that are\n\u003e included dynamically). \n\n### Vendor Package\n\nFor convenience, a copy of the documentation is automatically checked out into \nthe vendor folder during the Composer install process.\n\nIt can be found at [mistralys/application-framework-docs](/vendor/mistralys/application-framework-docs/README.md).\n\n## History\n\nThe framework has its origins in several projects where the same development\nparadigms were used and refined over time. In 2013, it started to crystallize\ninto a recognizable entity, and in 2015, it was officially split off into its\nown project.\n\nIt was migrated to Github in february 2021, and modernizing the code has been\nongoing ever since. As a result, the current state of the code is a mix of\nnamespaced and non-namespaced code, with the goal of eventually moving to a\nfully namespaced codebase.\n\n[Framework Manager]: https://github.com/Mistralys/appframework-manager\n[Framework Documentation]: https://github.com/Mistralys/application-framework-docs\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmistralys%2Fapplication-framework","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmistralys%2Fapplication-framework","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmistralys%2Fapplication-framework/lists"}