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 und konzentrieren uns auf die Benutzererfahrung von Ingenieuren Die historische Mission besteht darin, jeder PHP-Anwendung ein gutes Framework bereitzustellen.
100 % Unit-Test-Abdeckung, um Fehler direkt zu bekämpfen, basierend auf Zephir, um den Kern des Frameworks zu implementieren, und auf Swoole-Coroutine zurückgreifen, um die Geschäftsleistung zu verbessern, die sich in Zukunft schrittweise verbessern wird. Unsere Vision ist es, LEEVEL MIT SWOOLE BESSER ZU VERWENDEN, damit Ihr Unternehmen mehr Benutzerdienste unterstützen kann.
https://github.com/hunzhiwange/queryphp
https://gitee.com/dyhb/queryphp
Protokoll aktualisieren
[Framework] Teilen Sie den zugrunde liegenden Redis-Dienst auf und registrieren Sie ihn beim IOC Container können Sie ganz einfach
[Framework] verwenden, um Ihre eigenen DD- und Dump-Debugging-Funktionen zu löschen, und Sie müssen dies nicht mehr tun.
[Framework] Entfernen Sie die globale Funktion app und die hl-Hilfsfunktion und verwenden Sie den statischen Proxy, um App (alias Leevel) zu implementieren. App kann auf die Methode App::make ( ') zugreifen. Anfrage').
[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 behandeln zu können, fügen Sie eine Geschäftsverarbeitungsausnahme LeevelKernelExceptionBusinessException hinzu, und die Ausnahmeantwort wird ebenfalls erstellt durch 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 klarer zu machen.
[Framework] Assoziationsmodell, verbessert die spezielle Verarbeitung von ORM-Assoziationsabfragequellenwerten, die leer sind, führt keine nachfolgenden Abfragen mehr aus, reduziert Datenbankabfragen und behebt den Fehler, 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] Verbessern Sie das 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, führt die Systemabfrage und -löschung automatisch ein weiches Löschen durch. Sie können auch Daten mit weichem Löschen über withSoftDeleted abfragen forceDelete, um das Löschen zu erzwingen.
[Framework] Verbesserte Entitätsabfrage entität find ($id) in LeevelDatabaseDddEntity zu findEntity ($id), was leichter zu verstehen ist. Ausnahmen können Konflikte mit der Verwendung von find()-Abfragen vermeiden.
【Framework】Reparieren Sie die Verbindung zum Redis-Verbindungspool und der PHPRedis-Treiber unterstützt die erneute Verbindung.
[Framework] Der Validator konvertiert automatisch die Verifizierungsparameter not_between:1,5 in int und float, sodass das Framework die Gesamtrichtung der einheitlichen starken Typprüfung erreichen kann. LeevelValidateUniqueRule erkennt int und automatisch Float, um die Konvertierung von Datenbankabfragen anstelle der Indizierung zu vermeiden, wirkt sich negativ auf die Leistung aus.
[Framework] Verbessern Sie das Abfragedesign der Entität LeevelDatabaseDddEntity, entfernen Sie die magische Abfragemethode, __call und ___callStatic werden blockiert, alle Abfragen müssen die statische Eintragsauswahl durchlaufen (Aliassuche, beibehalten, um den QeePHP-Gewohnheiten Rechnung zu tragen) , Meta (reserviert, um QeePHP zu würdigen) Gewohnheit) initiiert, gepaart mit IDE-Helper-Unterstützung, unterstützt IDE perfekt.
[Framework] Das LeevelDatabaseDddEntity-Schnittbibliotheksdesign für die Entitätsverbindung wurde verbessert. Jede Entität implementiert „withConnect“ und „Connect“ für sich selbst, ist aktueller und kontrollierbarer und bietet eine Schnittbibliothekssicherheit für die 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] Korrigieren und löschen Sie die geleerte Funktion in Entitäten und Repositorys, die bereits Daten aktualisiert haben. Dies ist nicht erforderlich.
[Tests] Mehr als 10 Swoole-bezogene Testfälle und andere, mehr als 3080 Unit-Tests und über 10000 Behauptungen hinzugefügt.
[Anwendung] QueryPHP selbst ist ein Standard-Backend auf Basis von IViewUI, mit eigenem ressourcenbasierten Berechtigungssystem. Aufgrund zahlreicher 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 friert geplante Funktionen ein und behebt nur Fehler, Unit-Tests und verbessert die Dokumentation.
[Framework] Die offizielle Version von v1.0.0 wird nach 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.
Kontakt
Helfen Sie uns
QueryPHP wurde im Oktober 2016 entwickelt basierend auf dem DoYouHaoBaby-Framework, einem frühen PHP-Framework, das ich im Juli 2010 gestartet habe.
Wenn Sie es für möglich halten, können Sie es einem Freund empfehlen, es auszuprobieren und ihm zu folgen. Ich hoffe, dass ich interessierte Leute dazu anziehe, gemeinsam zu entwickeln. Das Dokument ist relativ einfach zu automatisieren, basierend auf Unit-Tests und Kommentaren.
Das obige ist der detaillierte Inhalt vonQueryPHP V1-beta.5 verbessert das ORM-Designerlebnis. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!