Aktuelles Projekt Gepflegt von Neoground

Open-Source-Projekt · Framework

Charm

Ein kompaktes, modulares PHP-Framework für professionelle Geschäftsanwendungen, SaaS-Plattformen, APIs und hochwertige Websites – entwickelt für Performance, produktive Entwicklung und langlebige Anwendungsarchitekturen.

  • PHP
  • Web
  • API
Aktuelles Release
v3.9
Lizenz
MIT
Entwickelt für
PHP 8.4+
Architektur des Charm PHP Framework mit Anwendungsrouten, Controllern, Twig-Views, Eloquent-Modellen, Services, Queues, Events und API-Antworten, verbunden durch einen kompakten modularen Kern
v3.9 Produktionsnah entwickeltes PHP-Framework für Geschäftsanwendungen und Plattformen

Das PHP-Fundament hinter Neoground

Ein professioneller Anwendungskern zwischen Micro-Framework und Full-Stack-Monolith.

Charm bildet das Framework unter den webbasierten Plattformen, SaaS-Produkten, Geschäftsanwendungen, APIs und Websites von Neoground. Ein kompakter, leistungsfähiger Kern verbindet sich mit der praktischen Architektur und den wiederkehrenden Fähigkeiten, die ernsthaft betriebene Produktionssysteme benötigen. Das Framework bleibt bewusst selektiv. Charm versucht weder, jede Funktion der größten PHP-Ökosysteme nachzubauen, noch überlässt es jeder Anwendung, Routing, Views, Datenzugriff, Konfiguration, Authentifizierung, Hintergrundverarbeitung und betriebliche Konventionen neu zusammenzusetzen. Es bietet ein kohärentes professionelles Fundament – und bleibt klein genug, um es vollständig zu verstehen.

Was es löst
Eine schnelle, modulare und produktive PHP-Grundlage für die Entwicklung und den Betrieb wartbarer Geschäftssoftware, SaaS-Plattformen, APIs, hybrider Webanwendungen und inhaltsreicher Websites.
Wo es eingesetzt wird
Professionelle PHP-Entwicklung, gründergeführte SaaS-Produkte, interne Geschäftssysteme, Kundenplattformen, APIs, Backend-Dienste, hybride Anwendungen und Websites, die mehr Struktur als ein minimaler Router benötigen, ohne die Breite und den formalen Overhead eines allgemeinen Enterprise-Frameworks.

Kernfunktionen

Auf die tatsächliche Aufgabe des Projekts ausgerichtet.

01 · Für reale Anwendungen entwickelt

Das wiederkehrende Fundament professioneller Plattformen ist bereits vorhanden.

Charm beginnt mit einer strukturierten MVC-Anwendung statt mit einer leeren Sammlung von Paketen. Routen, Controller, Modelle, Twig-Views, umgebungsabhängige YAML-Konfiguration, Requests, Responses, Authentifizierung, Migrationen, Konsolenbefehle, Events, Cronjobs und Queues folgen einem gemeinsamen Anwendungsmodell. Neue Projekte erhalten damit genug Struktur, um zu wartbarer Software zu werden, ohne dass jedes Team zunächst sein eigenes Framework entwerfen muss.

Charm-Anwendungsfundament, das MVC-Komponenten, Konfiguration, Authentifizierung, geplante Aufgaben und API-Endpunkte verbindet
02 · Bewusst kompakt

Ein fokussierter Kern, der nur um Fähigkeiten wächst, die anwendungsübergreifend tragen.

Charm entsteht aus täglichem Produktionseinsatz. Neue Abstraktionen gelangen dann in den Kern, wenn sie wiederkehrende Anforderungen realer Anwendungen lösen – nicht allein, weil andere Frameworks sie ebenfalls enthalten. Das Ergebnis ist eine kleinere Oberfläche, die leichter zu überblicken, prüfen, optimieren und pflegen bleibt und dennoch die wesentliche Arbeit einer professionellen Webanwendungsgrundlage abdeckt.

Kompakter Charm-Framework-Kern, umgeben von optionalen Anwendungsmodulen und wiederverwendbaren Geschäftsfunktionen
03 · Kuratiert statt neu erfunden

Bewährte PHP-Komponenten, verbunden durch ein klareres Modell.

Charm nutzt starke Komponenten dort, wo das PHP-Ökosystem bereits überzeugende Lösungen bietet: Twig für die Darstellung, Eloquent für den Datenzugriff, Symfony-Komponenten für Konsole und Konfiguration, Monolog für Logging, Guzzle für HTTP, Flysystem für Speicherzugriffe sowie etablierte Entwicklungswerkzeuge. Neoground konzentriert die eigene Entwicklung auf Kernel, Routing, Anwendungsstruktur, Modulsystem, produktive Abstraktionen und die Integration, durch die diese Komponenten wie ein zusammenhängendes Framework wirken.

Charm Framework integriert ausgewählte Komponenten des PHP-Ökosystems über eine gemeinsame modulare Anwendungsarchitektur

Weitere Funktionen

Ein praxistaugliches Fundament mit sinnvoller Tiefe.

01

Leistungsfähiges Routing

Klare Web- und API-Routen über moderne PHP-Attribute definieren und durch eine kompakte Routing-Schicht ausführen, die Request-Verarbeitung direkt und effizient hält.

02

Strukturierte MVC-Anwendungen

Geschäftslogik, Request-Verarbeitung, Datenmodelle, Darstellung, Jobs, Middleware, Migrationen und Anwendungsservices in einem berechenbaren Wireframe organisieren.

03

Darstellung mit Twig

Serverseitig gerenderte Websites und Anwendungsoberflächen mit Twig, wiederverwendbaren Layouts, Komponenten, Filtern und Funktionen entwickeln und Darstellung sauber von PHP-Logik trennen.

04

Eloquent ORM

Das etablierte Eloquent-Modell- und Abfragesystem aus Laravel nutzen, ohne die vollständige Laravel-Anwendungsstruktur und deren weitere Framework-Konventionen zu übernehmen.

05

YAML-Konfiguration

Anwendungs-, Verbindungs-, Modul-, Sprach- und Umgebungskonfiguration in strukturierten YAML-Dateien und umgebungsspezifischen Überschreibungen lesbar halten.

06

Requests und Responses

Mit kompakten Abstraktionen für Request-Werte, hochgeladene Dateien, Weiterleitungen, gerenderte Views, JSON-Payloads, Downloads, Fehler und andere übliche HTTP-Ergebnisse arbeiten.

07

APIs und JSON-Ausgabe

API-Controller und strukturierte JSON-Antworten innerhalb desselben Anwendungsfundaments entwickeln – einschließlich klarer Muster für Pagination und Modellfilterung.

08

Authentifizierung für Web und API

Integrierte Guard- und Token-Funktionen für Sessions, Anmeldung, geschützte Routen, dauerhaft angemeldete Benutzer, Access Tokens sowie Frontend- und API-Authentifizierung einsetzen.

09

Events und Listener

Anwendungsverhalten über Framework- und eigene Events entkoppeln und Listener innerhalb der Anwendung organisieren, statt sie in unverbundenem Bootstrap-Code zu verstecken.

010

Datenbankmigrationen

Datenstrukturen gemeinsam mit dem Code versionieren und Schemaänderungen über das Migrationssystem und den Konsolenablauf des Projekts steuern.

011

Geplante Aufgaben

Anwendungs-Cronjobs als Klassen mit lesbaren Zeitplänen definieren, über einen wiederkehrenden Systemtrigger ausführen und geplantes Verhalten innerhalb der Anwendung halten.

012

Hintergrundwarteschlangen

Geeignete Arbeit in benannte, prioritätsfähige Queues verschieben und unabhängig vom sichtbaren Request-Zyklus verarbeiten.

013

Konsolenbefehle

Anwendungsspezifische Kommandozeilenoperationen auf Symfony Console aufbauen und Framework-, Wartungs-, Generierungs-, Migrations-, Scheduling- und Projektbefehle über Bob ausführen.

014

Redis und Anwendungscache

Wiederholte Arbeit durch integriertes Caching, native oder clientbasierte Redis-Unterstützung und einfache Remember-Zugriffe auf häufig benötigte Anwendungsdaten reduzieren.

015

Dateien und externe Dienste

Integrierte Dateisystemabstraktionen, SFTP, ausgehende HTTP-Anfragen, E-Mail, Bildverarbeitung, Datumsfunktionen, Validierung und Logging nutzen, ohne in jeder Anwendung eine neue Integrationsschicht zu entwickeln.

016

Entwicklungs- und Debugging-Werkzeuge

Fehler, Requests, Routen, Abfragen, Laufzeiten, Logs und Laufzeitkontext über Entwicklungsintegrationen wie Whoops, Kint, PHP Debug Bar und anwendungsbezogene Diagnosen untersuchen.

017

Modulare Anwendungsfähigkeiten

Umfangreiche Funktionen in wiederverwendbaren Modulen bündeln, die Services, Konfiguration, Routen, Views, Migrationen, Events und Anwendungsverhalten als kohärente Fähigkeit registrieren.

018

Optimierter Anwendungsstart

Stabile Initialisierungsdaten dort zwischenspeichern und konsolidieren, wo es sinnvoll ist, damit Produktionsanwendungen dieselbe Framework- und Modulstruktur nicht bei jedem Start neu ermitteln.

Dokumentation

Zuerst die Architektur verstehen, dann gezielt in die benötigte Fähigkeit einsteigen.

Die englischsprachige Charm-Dokumentation behandelt Installation, Anwendungs-Wireframe, MVC-Entwicklung, Routing, Konfiguration, Module, Datenbankzugriff, Requests und Responses, Authentifizierung, Caching, Events, geplante Aufgaben, Queues, Konsolenbefehle und weitere Kernfunktionen. Sie wird derzeit schrittweise auf die professionelle Framework-Ausrichtung und die kommende Architektur von Version 4 ausgerichtet und erweitert. Da v4 eine wesentliche Weiterentwicklung darstellt, sollten Beispiele, Paketanforderungen und Migrationshinweise stets gegen die konkret eingesetzte Framework-Version geprüft werden.

Aktuelles Release

Mit dem aktuellen Framework entwickeln.

Charm 3.9 ist das jüngste veröffentlichte Release der aktuellen 3.x-Linie. Es wird produktiv eingesetzt und bildet ein stabiles Beta-Fundament. Charm 4 ist der umfassend überarbeitete Meilenstein, der die langfristige Architektur des Frameworks vervollständigen und konsolidieren soll. Version 4 enthält inkompatible Änderungen. Neue Anwender sollten Repository, englische Dokumentation, Branch-Status und Migrationshinweise prüfen, bevor sie sich zwischen der versionierten 3.x-Linie und einer direkten Ausrichtung auf das entstehende v4-Fundament entscheiden. Produktionsabhängigkeiten sollten fest versioniert werden, statt einem ungeprüften Entwicklungszweig zu folgen.

Version
v3.9
Veröffentlicht
Voraussetzungen
PHP 8.4+

Offene Arbeit unterstützen

Unterstützen Sie das Fundament hinter der Open-Source- und Produktarbeit von Neoground.

Charm ist das am intensivsten eingesetzte Open-Source-Projekt von Neoground. Kontinuierliche Entwicklung trägt Version 4, PHP-Kompatibilität, Performance-Arbeit, Tests, englische Dokumentation, Migrationshinweise, Fehleranalyse, das Anwendungs-Wireframe, Bob und die weniger sichtbare Pflege eines Frameworks, das mehrere Produktionssysteme trägt. Unterstützung kann ebenso in einem fokussierten Pull Request, einem reproduzierbaren Issue, einem Regressionstest, sorgfältiger Dokumentation, einem belastbaren Kompatibilitätsbericht oder einer Förderung bestehen, die mehr konzentrierte Entwicklungszeit ermöglicht.

Fragen zum Projekt

Vor Einsatz oder Mitwirkung.

Was genau ist Charm?

Charm ist ein quelloffenes PHP-Framework und Anwendungsfundament für Geschäftsanwendungen, SaaS-Plattformen, APIs, hybride Webanwendungen und Websites. Es stellt Framework-Kern, Projektstruktur, Routing, Twig-Darstellung, Eloquent-Datenzugriff, Konfiguration, Requests, Responses, Authentifizierung, Migrationen, Events, Queues, geplante Aufgaben, Konsolenwerkzeuge, Caching und weitere wiederkehrende Infrastruktur professioneller Websysteme bereit.

Wodurch unterscheidet sich Charm von Laravel oder Symfony?

Laravel und Symfony sind ausgereifte Ökosysteme mit breitem Funktionsumfang, großen Communities, umfangreicher Dokumentation und zahlreichen Integrationen. Charm versucht nicht, deren vollständigen Umfang zu duplizieren. Es wählt hervorragende Komponenten des Ökosystems – darunter Eloquent, Twig und Symfony-Pakete – und verbindet sie über einen kleineren, auf Geschäftsanwendungen ausgerichteten Kern. Charm richtet sich an Entwickler, die eine direktere Struktur, eine schmalere Framework-Oberfläche, hohe Performance und weniger Konventionen bevorzugen, die vor allem der Abdeckung jeder denkbaren Anwendungskategorie dienen.

Ist Charm ein Micro-Framework?

Nein. Charm hält seinen Kern kompakt, bietet aber erheblich mehr Anwendungsstruktur und wiederkehrende Funktionen als ein minimaler HTTP-Router. Modelle, Twig-Views, Konfiguration, Authentifizierung, Migrationen, Events, geplante Aufgaben, Queues, Konsolenbefehle, Caching, APIs und Entwicklungswerkzeuge gehören zum vorgesehenen Anwendungsfundament.

Soll Charm jedes andere PHP-Framework ersetzen?

Nein. Die Wahl eines Frameworks hängt von Anwendung, Team, Ökosystem, Personalbedarf, Integrationen, Betriebsmodell und erwarteter Lebensdauer ab. Charm ist besonders dort relevant, wo Performance, Architektur, ausgewählter Komponentenstack und Konventionen für Geschäftsanwendungen zur Aufgabe passen. Projekte, die stark von einem anderen Framework-Ökosystem abhängen, sind mit diesem Framework möglicherweise besser bedient.

Für welche Anwendungen eignet sich Charm besonders?

Charm ist primär für Geschäftsanwendungen, SaaS-Produkte, Kunden- und Mitgliederplattformen, interne Werkzeuge, APIs, Web-Backends, hybride Anwendungen und anspruchsvolle Websites ausgelegt. Auch kleinere Anwendungen sind möglich. Der größte Wert entsteht jedoch dort, wo ein Projekt von konsistenter Architektur, Authentifizierung, Datenbankarbeit, Hintergrundverarbeitung, geplanten Abläufen, Integrationen und langfristiger Wartbarkeit profitiert.

Wird Charm produktiv eingesetzt?

Ja. Charm trägt die webbasierten Plattformen, SaaS-Produkte, Geschäftsanwendungen, APIs und Websites von Neoground. Das Framework entwickelt sich aus diesem täglichen Produktionseinsatz heraus und nicht allein aus hypothetischer Funktionsplanung. Wie bei jedem Framework benötigt jede konkrete Anwendung weiterhin angemessene Architektur, Tests, Sicherheitsprüfungen, Deployment, Monitoring, Backups und klare betriebliche Verantwortung.

Wie stabil ist das aktuelle Framework?

Die aktuelle 3.x-Linie ist eine stabile Beta und wird erfolgreich in produktiven Neoground-Anwendungen eingesetzt. Version 4 ist das kommende Hauptfundament und soll das erste funktionsvollständige stabile Release werden. Da v4 eine weitreichende Überarbeitung mit inkompatiblen Änderungen ist, sollten externe Anwender Abhängigkeiten fest versionieren, Release Notes prüfen, Upgrades testen und keine automatische Kompatibilität zwischen Hauptversionen voraussetzen.

Sollte ich vor dem Release von Charm 4 ein neues Projekt beginnen?

Das hängt vom Projektzeitplan und der Bereitschaft zu Migrationsarbeit ab. Das aktuelle versionierte Framework ist betriebsfähig und produktiv im Einsatz; Charm 4 überarbeitet und vervollständigt jedoch die langfristige Architektur substanziell. Prüfen Sie den aktiven Repository- und Migrationsstatus vor der Entscheidung. Ein neues Projekt, das die v4-Entwicklung eng begleiten kann, kann sich bereits am neuen Fundament ausrichten. Ein Produktionsprojekt mit festem Abhängigkeitsstand sollte eine geprüfte versionierte Version verwenden und Upgrades ausdrücklich planen.

Welche PHP-Version benötigt Charm?

Das aktuelle Paket v3.9 erfordert PHP 8.4 oder neuer. Das Framework orientiert sich an aktuellen PHP-Generationen; die Arbeit an Version 4 ist für moderne PHP-Umgebungen optimiert. Maßgeblich sind immer die Composer- und Packagist-Metadaten des konkret eingesetzten Releases, nicht eine allgemeine Anforderung auf der Projektseite.

Welche Datenbanken kann Charm verwenden?

Der Datenbankzugriff basiert vor allem auf Eloquent und dessen unterstützten Verbindungstreibern. Die aktuelle Charm-Dokumentation behandelt Umgebungen mit MariaDB, MySQL, PostgreSQL, SQLite und SQL Server. Konkrete Datenbank- und Serverversionen hängen von der gewählten Charm-, Eloquent-, PHP- und Treiberversion ab.

Warum verwendet Charm Eloquent statt eines eigenen ORM?

Eloquent ist ein leistungsfähiges und weit verbreitetes ORM mit ausdrucksstarken Modellen, Relationen, Query Builder, Casts, Pagination und breiter Datenbankunterstützung. Charm ersetzt starke Komponenten des Ökosystems nicht nur, um geschlossen oder vollständig eigenständig zu wirken. Es integriert Eloquent in eine andere Anwendungsstruktur und ergänzt Charm-spezifische Konventionen dort, wo sie wiederkehrende Arbeit an Geschäftsanwendungen verbessern.

Warum verwendet Charm Twig?

Twig bietet eine ausgereifte und ausdrucksstarke Darstellungsschicht mit Vererbung, Includes, Makros, Filtern, Escaping und einer klaren Trennung von Templates und Anwendungslogik. Charm nutzt Twig für serverseitig gerenderte Anwendungen und Websites und eignet sich zugleich als API-Backend für JavaScript- oder andere Frontends.

Wie werden Routen definiert?

Controller-Aktionen können Routen über PHP-Attribute deklarieren – einschließlich HTTP-Methode, Pfad, Routenname und relevanter Filter. Request-Verarbeitung bleibt damit nahe an dem Code, der sie verantwortet, während das Framework Erkennung, Matching, Parameterbehandlung und Dispatch übernimmt.

Unterstützt Charm APIs?

Ja. Controller können strukturierte JSON-Antworten, Dateien, Weiterleitungen, gerenderte Views oder andere Ausgabetypen über dasselbe Anwendungsmodell zurückgeben. Authentifizierungstoken, Request-Zugriff, HTTP-Integrationen, Filterung, Pagination, Validierung, Queues und Events decken typische API- und Backend-Anforderungen ab.

Enthält Charm eine Authentifizierung?

Charm bietet integrierte sitzungsbasierte Authentifizierung und Token-Funktionen für Web- und API-Szenarien. Das aktuelle Guard-System deckt An- und Abmeldung, dauerhaft angemeldete Sitzungen, Routenschutz, Passwortverarbeitung, Drosselung und verwandte Authentifizierungsaufgaben ab. Anwendungen bleiben für ihr Autorisierungsmodell, Rollen, Berechtigungen, Sicherheitsrichtlinien und risikogerechte Kontrollen verantwortlich.

Wie verarbeitet Charm Hintergrund- und Zeitplanaufgaben?

Geplante Jobs werden als Anwendungsklassen definiert und über das Scheduling-System von Charm aus einem wiederkehrenden System-Cronjob oder Timer ausgeführt. Länger laufende oder verzögerte Aufgaben können in benannte, prioritätsfähige Queues gelegt und außerhalb des sichtbaren Request-Zyklus verarbeitet werden.

Was ist Charm Wireframe?

Charm Wireframe ist die Standardausgangsstruktur einer Charm-Anwendung. Sie enthält Projektverzeichnisse, Einstiegspunkte, Konfigurationsaufbau, Beispielkonfigurationen für Webserver, Composer-Setup, Bob-Integration und den Anwendungsraum für Controller, Modelle, Views, Routen, Jobs, Migrationen und Module.

Was ist Bob?

Bob ist das Kommandozeilenwerkzeug von Charm. Es kann ein neues Projekt aus Charm Wireframe anlegen, einen lokalen PHP-Entwicklungsserver starten, Konsolenbefehle der Anwendung ausführen, sich selbst aktualisieren und einen konsistenten Einstiegspunkt für Framework- und Projektoperationen bereitstellen.

Können Charm-Anwendungen modular aufgebaut werden?

Ja. Modularität ist ein zentrales Architekturprinzip. Wiederverwendbare Fähigkeiten können eigenes Verhalten bündeln und sich in Framework und Anwendung integrieren, ohne sämtlichen Code in einem zentralen Projektnamespace abzulegen. Die öffentlichen Modul- und Paketkonventionen werden im Rahmen des Fundaments von Version 4 und der englischen Dokumentation weiter konsolidiert.

Unterstützt Charm Redis?

Ja. Redis kann für Anwendungscaching und leistungsintensive Workloads eingesetzt werden. Aktuelle Pakete unterstützen einen Redis-Client; wo verfügbar, kann auch die native PHP-Redis-Erweiterung verwendet werden. Anwendungen müssen Ablaufzeiten, Invalidierung, Fehlerbehandlung, Persistenz und betriebliches Monitoring weiterhin entsprechend ihren eigenen Daten- und Zuverlässigkeitsanforderungen gestalten.

Eignet sich Charm für Einsteiger?

Wer modernes PHP, Composer, HTTP, MVC, Datenbanken und grundlegenden Linux- oder Webserverbetrieb versteht, sollte der Architektur von Charm folgen können. Das Framework ist nicht primär als Lernumgebung für den ersten Kontakt mit PHP positioniert. Seine Konventionen orientieren sich an professioneller Anwendungsentwicklung; die englische Dokumentation wird bis zum vollständigen v4-Release weiter ausgebaut.

Bietet Charm dasselbe Ökosystem wie Laravel oder Symfony?

Nein. Charm besitzt ein deutlich kleineres öffentliches Ökosystem und eine kleinere Basis externer Mitwirkender. Dem stehen ein fokussierter Kern, ausgewählte ausgereifte Abhängigkeiten, direkte Pflege durch Neoground und täglicher Einsatz in Neoground-Systemen gegenüber. Projekte, die einen großen Marktplatz externer Bundles, umfangreiches Community-Schulungsmaterial oder breit verfügbare Framework-Spezialisten benötigen, sollten diesen Unterschied bei der Technologiewahl berücksichtigen.

Kann ich beliebige Composer-Pakete mit Charm verwenden?

Standardmäßige Composer-Pakete lassen sich grundsätzlich wie in anderen PHP-Anwendungen hinzufügen, sofern PHP-Anforderungen, Abhängigkeiten, Initialisierungsmodell und Kompatibilität passen. Ein Paket benötigt nur dann eine Charm-spezifische Integration, wenn eine engere Verbindung mit Konfiguration, Lebenszyklus, Modulsystem oder Anwendung sinnvoll ist.

Wie sollte eine Produktionsanwendung aktualisiert werden?

Versionieren Sie die aktuelle Abhängigkeit fest, prüfen Sie Framework-Changelog und Paketanforderungen, sichern Sie die Anwendungskonfiguration, führen Sie automatisierte und anwendungsspezifische Tests aus, kontrollieren Sie Datenbankmigrationen und deployen Sie über eine kontrollierte Umgebung. Version 4 ist ein inkompatibles Hauptrelease und sollte als Anwendungsmigration behandelt werden, nicht als unbeaufsichtigtes Composer-Update.

Wie kann ein Fehler gemeldet werden?

Nutzen Sie den GitHub-Issue-Tracker für reproduzierbare Framework-Fehler. Nennen Sie die exakten Charm- und PHP-Versionen, Betriebsumgebung, relevante Konfiguration, eine minimale Reproduktion, erwartetes und tatsächliches Ergebnis sowie die zur Untersuchung nötigen Logs und Stack Traces. Entfernen Sie Zugangsdaten, Tokens, personenbezogene Daten, internen Quellcode und sensible Infrastrukturdetails, bevor Sie Diagnosematerial veröffentlichen.

Wie kann ich beitragen?

Wertvolle Beiträge umfassen klar abgegrenzte Fehlerbehebungen, Regressionstests, Kompatibilitätsarbeit für PHP-Versionen, englische Dokumentation, Beispiele, Performance-Analysen, Migrationshinweise, Sicherheitsbeobachtungen sowie Verbesserungen an Kern, Wireframe oder Bob. Größere Architekturänderungen sollten vor der Implementierung abgestimmt werden, damit sie mit Charms Philosophie eines kompakten Kerns und der Richtung von Version 4 vereinbar bleiben.

Unter welcher Lizenz steht Charm?

Charm wird unter der MIT-Lizenz veröffentlicht. Anwendungen müssen zusätzlich die gesonderten Lizenzen von Twig, Eloquent und Illuminate-Komponenten, Symfony-Paketen, Monolog, Guzzle, Flysystem, Redis-Clients, Entwicklungswerkzeugen und allen weiteren enthaltenen Abhängigkeiten beachten.