Ein leichtes PHP -Framework
Ein einfacher Php "Framework"? Oder es kann sagen, dass es sich um eine Anwendungsvorlage handelt.
Orm verwenden eloquent orm, Routen verwenden Fastroute
Die meisten Schnittstellenkonstruktionen beziehen sich auf Laravel, der Fassadenmodus, Singleton -Modus, Steuerinversion (IOC) und Abhängigkeitsinjektion (DI) annimmt, und einige verwenden auch andere Designmodi.
Integrierter IOC-Container, PSR-11-kompatibel
Unterstützt die Integration in ReactJs und andere Front-End-Frameworks sind ebenfalls in Ordnung, aber ich habe nur die ReactJS-Konfiguration geschrieben.
Middleware, die den PSR-15-Standard unterstützt.
Kapselige Anforderungen und Antworten, die gemäß dem PSR-7-Standard entworfen wurden, aber Laravel-ähnliche Schnittstellen hinzugefügt wurden.
Unterstützt die Einstellung von Abhängigkeiten, Routing und Middleware durch Annotation
Es unterstützt AOP, aber da es keine Vererbungsmittelmethode gibt, ist der Eintrittsumfang begrenzt. Derzeit unterstützt es den Store -Eintrag und den Eintrag für Controller. Gleichzeitig wurden dem Container entsprechende Methoden hinzugefügt, um Einstiegsfunktionen bereitzustellen.
Der Grund, warum der Vererbungs -Proxy nicht verwendet wird, ist, dass PHP keine ähnliche Proxy -Reflexions -Schnittstelle wie in Java hat. PHP -Vererbungs -Proxy muss eval verwenden oder die Klasse dynamisch deklarieren, was ein Sicherheitsrisiko hat.
Stellen Sie eine einfache Beobachterimplementierung an, obwohl im Allgemeinen nutzlos.
Verwenden Sie APCU, um Annotationen zu speichern
Es bietet eine Implementierung einer Task-Warteschlange, ähnlich einer Coroutine, die proaktiv aufgegeben werden kann. Da PHP jedoch keinen Multi-Threading-Mechanismus hat, kann es nicht nicht blockiert werden.
Da Sie zum ersten Mal diese Art von Projekt schreiben, wird es viele Designfehler und Schwachstellen geben. Es wird nicht empfohlen, das Projekt in einer Produktionsumgebung zu nutzen, nur zum Lernen. Wenn Sie bessere Vorschläge haben oder Mängel finden, können Sie sich gerne Feedback geben.
Der Zweck des Schreibens dieses Projekts besteht darin, sich auf das nächste Blog -Projekt vorzubereiten, da es keinen Rahmen für die Verwendung gibt. Daher wurde dieses Projekt 2333 erstellt.
git clone https://github.com/syfxlin/xkphp.gitcomposer install In einigen Fällen werden laminas/laminas-httphandlerrunner möglicherweise nicht normal installiert. Zu diesem Zeitpunkt müssen Sie zuerst laminas/laminas-diactoros installieren.
yarnphp -r " echo base64_encode(openssl_random_pseudo_bytes(32)); "composer migration:upphp -S 0.0.0.0:8000 -t publicNoch keiner
XK-PHP wird mit Hilfe von Otstar Lin und den folgenden Mitwirkenden geschrieben und gepflegt.
Otstar Lin -Personal -Website · Blog · GitHub
Open Source unter der Lizenz der Apache Lizenz 2.0.