QueryPHP v1.0.0-beta.5, diese Version verbessert hauptsächlich ORM und optimiert viele Details.
Über QueryPHP
QueryPHP ist ein modernes, leistungsstarkes PHP-Progressive-Coroutine-Framework. Wir orientieren uns immer noch hauptsächlich an traditionellen PHP-FPM-Szenarien, wobei die Benutzererfahrung von Ingenieuren unsere historische Mission ist, sodass jede PHP-Anwendung über ein gutes Framework verfügt.
100 % Unit-Test-Abdeckung, um Fehler direkt zu bekämpfen, basierend auf Zephir, um den permanenten Kern des Frameworks zu realisieren, und sich auf Swoole-Coroutine zu verlassen, um die Geschäftsleistung zu verbessern, und es wird sich in Zukunft schrittweise verbessern. Unsere Vision ist es, LEEVEL MIT SWOOLE BESSER ZU VERWENDEN, damit Ihr Unternehmen mehr Benutzerdienste unterstützen kann.
https://github.com/hunzhiwange/queryphphttps://gitee.com/dyhb/queryphphttps://www.queryphp.com
Update-Protokoll
【Framework】HTTP-SERVER-Unterstützung und traditionelle PHP-FPM-Version Die Weiterleitung von Anrufen an Controller i ist völlig konsistent und einheitlich geplant.
[Framework] Teilen Sie den zugrunde liegenden Redis-Dienst auf und registrieren Sie ihn im IOC-Container, der bequem verwendet werden kann.
[Framework] Löschen Sie Ihre eigenen DD- und Dump-Debugging-Funktionen, die Sie nicht benötigen es mehr.
[Framework] Entfernen Sie die globale Funktions-App, die HL-Hilfsfunktion, implementieren Sie App (alias Leevel) über einen statischen Proxy, App::path(), App kann auf die Methode App::make('request') im IOC-Container zugreifen .
[Framework] Löschen Sie alle Schnittstellendesigns im Proxy LeevelKernelProxyIApp, löschen Sie den Proxy in der Komponente und verwenden Sie @method, um den IDE-Helfer zu implementieren, und bauen Sie ein Tool ein, um einen solchen Befehl automatisch zu generieren.
[Framework] Optimieren Sie den Swoole-Hot-Reload-Code, um das Testen zu erleichtern.
[Framework] Verbessern Sie die Systemausnahmebehandlungskomponente, ändern Sie die integrierten Ausnahmen des Systems in abstrakt, um die Vererbung der Geschäftsschicht zu erleichtern und Ausnahmen besser verarbeiten zu können, fügen Sie eine Geschäftsverarbeitungsausnahme LeevelKernelExceptionBusinessException hinzu, und die Ausnahmeantwort wird auch von Middleware verarbeitet.
[Framework] Der Kernel und das Routing unterstützen die Verarbeitung von CORS-Optionsanforderungen, indem sie benutzerdefinierte Middleware verwenden, um domänenübergreifende Zugriffsprobleme einfach zu lösen, die Routing-Bindungs-Analysemethode aufzuteilen und den Code sauberer zu machen.
[Framework] Assoziationsmodell, Verbesserung der speziellen Verarbeitung von leeren ORM-Assoziationsabfragequellenwerten, Ausführung nachfolgender Abfragen nicht mehr, Reduzierung von Datenbankabfragen und Behebung des Fehlers, dass verschachtelte Assoziations-Vorladeabfragen nicht ausgeführt werden.
[Framework] Fügen Sie einen statischen Zugriff auf jede Hilfsfunktion der Komponente hinzu und teilen Sie jede Kumite-Funktion in eine separate Datei auf, um einen einfachen f-Aufruf zu ermöglichen.
[Framework] Fügen Sie weitere konstante Entitäten wie CONSTRUCT_PROP_WHITE, MIDDLE_SOURCE_KEY hinzu, um die Hartcodierung einiger vereinbarter Namen von Entitäten zu vermeiden.
[Framework] Verbesserte Datenbank-PDO-Abfrage. Wenn es sich um eine Zahl handelt, wird eine Zahl anstelle aller Zeichenfolgen zurückgegeben.
[Framework] Query fügt Unterstützung für where('foo', '=', null) hinzu, um sehr spezielle Szenarien zu behandeln. In der Vergangenheit wurden Fehler direkt gemeldet.
[Framework] Verbessertes Design der Entität LeevelDatabaseDddEntity toArray, jetzt wird Null automatisch ignoriert.
【Framework】Verbessern Sie das Design im Zusammenhang mit der Entitätseigenschaft LeevelDatabaseDddEntity und greifen Sie mit withProps, withProp, hasProp, prop darauf zu.
【Framework】Verbessern Sie das Design im Zusammenhang mit dem weichen Löschen von Entitäten LeevelDatabaseDddEntity. Sobald eine Entität mit const DELETE_AT definiert ist, werden Daten mit weichem Löschen durch das System automatisch gelöscht. Sie können auch Daten mit weichem Löschen über withSoftDeleted und forceDelete abfragen Löschung erzwingen.
【Framework】Verbessern Sie die Entitätsabfrage entity find($id) in LeevelDatabaseDddEntity zu findEntity($id), wodurch Konflikte mit der Verwendung von find()-Abfragen vermieden werden können.
【Framework】Reparieren Sie die Verbindung zum Redis-Verbindungspool und der PHPRedis-Treiber unterstützt die erneute Verbindung.
[Framework] Der Validator konvertiert die Verifizierungsparameter not_between:1,5 automatisch in int und float, sodass das Framework die Gesamtrichtung der einheitlichen starken Typisierung erreichen kann. Ausnahmedatenbank-Eindeutigkeitsüberprüfung LeevelValidateUniqueRule erkennt automatisch int und float, um eine Konvertierung zu vermeiden Typen in Datenbankabfragen, anstatt den Index zu verwenden, um die Leistung zu beeinflussen.
[Framework] Verbessern Sie das Abfragedesign der Entität LeevelDatabaseDddEntity, entfernen Sie die magische Abfragemethode, _call und __callStatic werden blockiert, alle Abfragen müssen über die statische Eintragsauswahl (Aliassuche, beibehalten, um den QeePHP-Gewohnheiten Rechnung zu tragen) initiiert werden, Meta ( reserviert, um den QeePHP-Gewohnheiten Tribut zu zollen) und dann Mit der Unterstützung des IDE-Helfers wird die IDE perfekt unterstützt.
[Framework] Verbessertes Entitätsverbindungsdesign der LeevelDatabaseDddEntity-Schnittbibliothek, jede Entität implementiert withConnect und connect selbst, ist aktueller und kontrollierbarer und bietet Schnittbibliothekssicherheit, Sandbox, ConnectSandbox.
[Framework] Verwenden Sie PDOStatement->debugDumpParams(), um die endgültige SQL abzurufen, und schreiben Sie gleichzeitig die SQL in das Protokoll in der Debug-Komponente, um die Entwicklung und das Debuggen zu erleichtern.
[Framework] Die Transaktionsarbeitseinheit LeevelDatabaseDddUnitOfWork fügt Unterstützung für weiches Löschen und starkes Löschen hinzu und umfasst auch die Anpassung des Warehousing LeevelDatabaseDddRepository.
【Framework】Reparieren und löschen Sie die geleerte Funktion in Entitäten und Repositorys, die bereits Daten aktualisiert haben.
[Tests] Mehr als 10 Swoole-bezogene Testfälle und andere, mehr als 3080 Unit-Tests und mehr als 10.000 Behauptungen hinzugefügt.
【Anwendung】QueryPHP selbst ist ein Standard-Backend auf Basis von IViewUI, mit einem eigenen ressourcenbasierten Berechtigungssystem. Aufgrund einer Vielzahl von Anpassungen am Framework wurde das Backend entsprechend angepasst, um die Bedienung zu erleichtern.
【Anwendung】QueryPHP selbst führt hauptsächlich Workflows ein, um Quarkvorgänge zu verbessern und Abfragen in Dienste zu integrieren.
RoadMap
【Framework】Beta 4-6 bietet hauptsächlich perfekte Unterstützung für die neueste Version der Swoole 4-Coroutine.
[Framework] Die RC-Version wird die geplanten Funktionen einfrieren und nur Fehler beheben, Unit-Tests durchführen und die Dokumentation verbessern.
[Framework] Die offizielle Version von v1.0.0 wird mit der PHP 7.4-Version https://wiki.php.net/todo/php74 veröffentlicht und ist für die Veröffentlichung im Jahr 2019.12 geplant.
Kontaktinformationen
https://www.queryphp.com
QQ-Gruppe 288751294
E-Mail: 635750557@qq.com
Helfen Sie uns
QueryPHP wurde im Oktober 2016 auf Basis meines frühen PHP-Frameworks DoYouHaoBaby entwickelt im Juli 2010.
Wenn Sie es für möglich halten, können Sie es einem Freund empfehlen, es auszuprobieren und ihm zu folgen. Ich hoffe, dass es interessierte Menschen dazu bringt, gemeinsam zu entwickeln. Das Dokument ist relativ einfach zu automatisieren, basierend auf Unit-Tests und Kommentaren.
2010-heute von Xiangmin Liu