Change Log¶
Alle erwähnenswerten Änderungen in der Komponente werden hier dokumentiert.
[Unreleased] 2022-11-17¶
1.45.1 - 2022-11-11¶
Geändert¶
- Transformer empty prüfung umgestellt auf === ''
application/source/data/Transformer.class.php
1.45.0 - 2022-11-11¶
Hinzugefügt¶
-neue Klasse Transformer application/source/data/Transformer.class.php
1.44.0 - 2022-07-29¶
Geändert¶
neuen rollbackStackCounter , verhindert das ein Commit gemacht werden kann wenn innerhalb einer Transaktion ein rollback voher schon ausgeführt wurde application/source/persistence/relation/DataObject.class.php
Behoben¶
in der Methode rollbackTransaction muss geprüft werden ob der transactionStackCounter>0 , nur dann rausspringen application/source/persistence/relation/DataObject.class.php
Hinzugefügt¶
application/source/persistence/CommitNotAllowedException.class.php
application/source/persistence/NoOpenRollbackAvailableException.class.php
1.43.0 - 2022-07-11¶
Geändert¶
neue Methode getSubject application/source/net/mail/Mail.class.php
1.42.0 - 2022-01-30¶
Hinzugefügt¶
Neue Klasse AlvinePersistenceRelationSQLOperationNotIn
1.41.0 - 2021-11-12¶
Geändert¶
Methode isLimitToClass und checkLimitation um einen Parameter $subclass erweitert um auf auch Unterklassen prüfen zu können /source/types/Collection.class.php
1.40.0 - 2021-11-03¶
Hinzugefügt¶
- Erweiterung um die Cookieoption
samesite
- CORS Funktionen und entsprechende neue Header
Geändert¶
- SQL Fehlermeldung besser herausgeben
- Typen hinzugefügt und kleinere Ungenauigkeiten beseitigt
Behoben¶
- Komponentenpfad wird nicht korrekt aufgebaut in der Funktion
getClassPath
der Klasse\Alvine\Core\ComponentLoader
1.39.0 - 2021-10-13¶
Geändert¶
- neue Methoden merge und reset
/source/data/ValidationReport.class.php
1.38.0 - 2021-09-02¶
Geändert¶
- ValidationReport Namespace umgezogen zu
Alvine\Data\ValidationReport
\Alvine\Persistence\Model\ValidationReport
ist nun Deprecated
1.37.0 - 2021-08-05¶
Geändert¶
- getReplaceString in eine Methode ausgelagert
/source/text/MessageFormatter.class.php
Hinzugefügt¶
- MessageHierachicalFormatter
/source/text/MessageHierachicalFormatter.class.php
1.36.0 - 2021-07-25¶
Hinzugefügt¶
- neue Klasse Operators für das zusammen fassen von mehreren Operators
/source/util/constraint/Operators.class.php
- neue Klasse für ODER operationen
/source/util/constraint/OrOperators.class.php
- neue Klasse für UND operationen
/source/util/constraint/AndOperators.class.php
1.35.0 - 2021-03-12¶
Geändert¶
- Copyright hinweise und Tests für Amount
- Umstellung des Build-Prozesses auf Make und das neue Build-Phar
- Fehlermeldung verbessert
- Übersetzungen überarbeitet
Behoben¶
- Die Komponente lässt sich nicht bauen und der Upload geht in das falsche Verzeichnis
- Die Fehlermeldung bei XML-Parser lässt keine Rückschlüsse auf die Datei
- Überflüssige Zeile file_put_contents entfernt
1.34.0 - 2020-12-16¶
Geändert¶
- beim Inludieren von MockProviderForObjectStorageUpdate hat MockProviderForObjectStorage gefehlt, die Reihenfolge des Includes ist nicht gesichert
- AlvineMeasureAmount Berechnungsfunktionen geändert , immer wenn newInstance gemacht wird, wird static:: verwendet
1.33.0 - 2020-11-04¶
Hinzugefügt¶
- neue Abhängigkeitstabelle der unterstützten PHP Versionen
- neue Abfragen für Ländercodes Alpha3/Alpha2
Geändert¶
- Anpassungen für die Umstellung auf PHPUnit9 und PHP8
Behoben¶
- Korrekturen im Serialize-Interface
- Serialisierung von Nicht-ISO-Zeichen
- Kompatibilitätsanpassungen am Script checkRequirements.php
- SerializableImplementation angepasst , static Properties werden nun nicht mehr serialisiert
1.32.0 - 2020-10-07¶
Behoben¶
- Funktionalität des Transaktionszählers behoben
1.31.0 - 2020-08-28¶
Hinzugefügt¶
- Neue Regel zum Prüfen ob eine Funktion verfügbar ist
Geändert¶
- Verbesserungen der URI-Klasse
- Verbesserung des URL-Testings
- Umstellung der AlvineCoreComponent Methode
- Wenn Das Modul Intl nicht installiert ist kommt es zu ParseErrors
- Englische Texte/Fehlermeldungen hinzufügen
Behoben¶
- PHP7.4 liefert für den MIME-Type einer leeren Datei stat
inode/x-empty
den Wertapplication/x-empty
1.30.0 - 2020-06-25¶
Hinzugefügt¶
- Neue Funktionalität eines Transaktionszählers
Geändert¶
- die Beschreibung von append angepasst
- Erweiterung der Phar Erstellung um die Möglichkeit Dateien oder Verzeichnisse auszuschließen
1.29.0 - 2020-06-16¶
Geändert¶
- [ALE-717] Dokumentation der Messwerte
- [ALE-718] Methoden um Objekte in der Objektmap setzen zu können
- [ALE-719] Überarbeitung der Währungsklassen über Script
- [ALE-720] Anpassungen an der Dokumentation, hinzufügen von Typen, Anpassungen Measurement
1.28.0 - 2020-06-02¶
Hinzugefügt¶
- [ALE-710] Implementierung von Mutable und Imutable siehe Gitlab-Issue #6
Geändert¶
- [ALE-703] Umstellung auf Jekyll
- [ALE-704] - [ALE-709] Anpassungen an der bootstrap.inc.php
- [ALE-711] Documentation Mutable und Imutable
- [ALE-712] Collection und ObjectMap auf limitToClass AlvineTypesClassType::getNormalizedName umstellen
- [ALE-714] Measurement mit Rückgabewerten ausstatten
Behoben¶
- [ALE-715] AlvineMeasureSIStandardModel Error: Call to a member function equals() on string
- [ALE-716] BUGFIX für falschen Rückgabewert
1.27.0 - 2020-04-06¶
Geändert¶
- [ALE-701] Collection auf getID() umbauen
1.26.0 - 2020-02-05¶
Hinzugefügt¶
- [ALE-680] Neue Klasse XAlvineHintField
- [ALE-681] neues Interface AlvineCoreInstantiableFromMap
- [ALE-686] Neue Klasse XRealIpField
- [ALE-694] eigene Methode Component::getResourceText um an die Localen zu kommen
- [ALE-695] Neue Methode Directory::getLastChilds
Geändert¶
- [ALE-677] Componentenklasse strict setzen und Returnvalues definieren.
- [ALE-679] Änderung der Komponente; Die Methoden install und deinstall wurden entfernt
- [ALE-688] Erweiterung der Fields um Methoden zur Stingerzeugung
- [ALE-689] GenericStatements können nun auch mit Maps umgehen
- [ALE-691] SQLFunctions vereinfachen (eine Funktion für das Setzen des Status)
- [ALE-692] Erweiterung der Definitionen um Expressions
- [ALE-693] Das initialisierne des Encodings muss bei jedem Aufruf passieren
Behoben¶
- [ALE-690] BUGFIX: GenericStatements können nun auch mit Maps umgehen
1.25.0 - 2019-10-15¶
Hinzugefügt¶
- [ALE-670] Neuer Header für Cloudflare Standard
- [ALE-673] Neue Interfaces InstantiableFromJson und InstantiableFromArray
- [ALE-674] Neue Interfaces InstantiableFromArrayHelper
Geändert¶
- [ALE-664] Typo in Funktion File::setDirectory
- [ALE-669] Typedeklaration für die Klasse Basic
Behoben¶
- [ALE-671] Wird eine URI ohne Pfad angegeben, so kommt es zu einem 403.
- [ALE-672] Relative URI ohne Domain wurden falsch geparsed eq: /de/home
1.24.0 - 2019-09-12¶
Geändert¶
- [ALE-664] Typo in Funktion File::setDirectory
1.23.0 - 2019-09-12¶
Geändert¶
- [ALE-659] Dokumentation und Typhinting in der Funktion Alvine::getShortID
Behoben¶
Beim Absenden einer E-Mail muss EHLO und HELO den eigenen Server mitgeben
1.22.0 - 2019-07-08¶
Geändert¶
- [ALE-645] Stringumwandlung von Map; ArrayHelper und KeyValue verbessert
- [ALE-646] Erweiterung der Dokumentation im Bereich der Typen
- [ALE-647] Überarbeitung verschiedener Typen
Behoben¶
- [ALE-644] Der Methode StringType::encode() hat der zweite Parameter gefehlt
1.21.0 - 2019-07-04¶
Behoben¶
- [ALE-642] AlvineUtilLoggingHandlerFileTest::testNoDirectoryException schlägt fehl
1.20.0 - 2019-06-11¶
Geändert¶
- [ALE-639] Speicherung von hierarchischen Passwörtern implementieren
- [ALE-640] __toString für FileInputStreams implementiert
1.19.0 - 2019-04-11¶
Hinzugefügt¶
- [ALE-634] Neue Klasse AlvineNetHttpHeaderAccessControlAllowCredentialsField
- [ALE-635] Neue Klasse AlvineNetHttpHeaderAllow
Behoben¶
- [ALE-636] Beim SMTP-Client funktioniert die Anmeldung nicht, wenn authorisation gesetzt wurde aber kein Username und kein Passwort.
1.18.0 - 2019-04-04¶
Hinzugefügt¶
- [ALE-630] neue Funktion AlvinePersistenceRelationSQLFunctionsGroupConcat
Geändert¶
- [ALE-631] Zusätzliche Statemens (ausserhalb von Field-Values für ein DefinedStatement zulassen
- [ALE-632] Nicht gesetzte Standardvariablen wie SERVER_NAME muss abgefangen werden
1.17.0 - 2019-03-14¶
Hinzugefügt¶
- [ALE-625] Neue Klasse Component
Geändert¶
- [ALE-624] AlvinePersistenceObjectNotFoundException sollte kein Logging schreiben
- [ALE-626] Die Methode LoggingHandlerFile::getInstance gibt File und nicht static zurück
Behoben¶
- [ALE-627] AlvinePersistenceRelationSQLSelectDefinedStatement
1.16.0 - 2019-02-08¶
Geändert¶
- [ALE-622] Übergabe des PluralKeys über den Formatstring
1.15.0 - 2019-01-07¶
Geändert¶
- [ALE-619] Erweiterung des Headers um x-helo-human
Behoben¶
- [ALE-620] ReflectionClassConstant schmeisst Fehlermeldung das Parameter nicht verfügbar
1.14.0 - 2018-12-18¶
Geändert¶
- [ALE-611] Permissionfehler gesondert abfangen
- [ALE-613] Event-Subscriber muss immer eigene Instanz zurückgeben
- [ALE-615] Die Überprüfung der Schreiberlaubnis braucht das Ergebnis des aktuellen Datensatzes
Behoben¶
- [ALE-612] Überprüfung Testfunktion der Assembly Klasse
- [ALE-614] Ändern des Benutzers funktioniert nicht
- [ALE-617] Die Methode getObjectByID setzt Voraus das im Modell die Konstante OBJECT_ID definiert ist
1.13.0 - 2018-10-23¶
Hinzugefügt¶
- [ALE-604] Hilfsfunktion OrOperator|AndOperator::getInstanceForValuesIn für erstellen von SQL-Abfragen
- [ALE-605] Neue IsNull SQL-Funktions-Klasse
Geändert¶
- [ALE-603] Timeout bei HTTP-Clients übergeben
- [ALE-606] Die Alvine-Methode kann nun mit unset und isset auf properties umgehen
- [ALE-609] Erweiterung der Sicherungsklassen und des Security-Context
Behoben¶
- [ALE-581] AlvinePersistenceManager : findObject UUID durfte nicht 0 sein
- [ALE-607] Im Mailclient darf kein Leerzeichen zwischen Befehl und Adresse stehen. Außerdem muss die E-Mail-Adresse in < und > stehen (siehe RFC)
- [ALE-608] Wenn jemand die Konstante mimetypes überschreibt stimmen die Werte nicht mehr
1.12.0 - 2018-08-28¶
Hinzugefügt¶
- [ALE-600] Neue DayOfWeek-Klasse und Berechnung von Referenzen
Geändert¶
- [ALE-590] Umstellung ObjectType von stdClass auf Map
- [ALE-591] Erweiterung der Standard-Logger-Namen
- [ALE-594] Optimierungen für PHPUnit 7
- [ALE-595] Verzeichnis bei Fehler Directory::create mit ausgeben
- [ALE-597] Im Storeage wurde ein sonstiger Feheler (Badproperty) in einem NotFound Exception vesteckt.
Behoben¶
- [ALE-592] Im Test erfolgt Prüfung noch auf StdClass und nicht AlvineCoreAlvine.
- [ALE-596] Es wird immer nur ein Eintrag hinzugeügt, da das Ergebnis von attach immer $this und damit true ist
- [ALE-598] containProperty gibt es nicht
1.11.0 - 2018-06-08¶
Hinzugefügt¶
[ALE-586] Neue Tag und Tags Klasse [ALE-587] Neuer Header AccessControlAllowOriginField
Geändert¶
- [ALE-578] Besseres Konfigurationsmanagement
- [ALE-579] Konfiguration soll mit Streams umgehen können
- [ALE-584] Komponenteneigenschaften nur laden, wenn es diese gibt
- [ALE-588] Objekte können bei der Implementierung von toJson auf unterster Ebene auch Objekte sein und keine Arrays
- [ALE-589] Umstellung des bindings von foreach über die Felder auf foreach über die records
Behoben¶
- [ALE-580] PHP 7.2 Anpassungen
- [ALE-583] mcrypt ist in PHP 7.2 deprecated
1.10.0 - 2018-02-20¶
Geändert¶
- [ALE-556] Feldwerte müssen mit null umgehen können
- [ALE-574] Client -> aufruf von context und connect absichern
1.9.0 - 2018-01-15¶
Hinzugefügt¶
- [ALE-563] Neue Methode Session::clearTranscripts()
- [ALE-564] Erweiterung der SQL-Klassen um Funktionen und Operatoren
Geändert¶
- [ALE-562] Wird kein Wert im Datum übergeben sollte NULL zurückgegeben werden.
- [ALE-567] Log automatisch flushen
- [ALE-569] DefinedStatement::join um $append erweitert
- [ALE-571] Die __toString-Methode sollte bei relationalen Feldern das Feld als SQL-Zeichenkette zurückgeben
- [ALE-572] Statements müssen mit Records ausführbar sein, damit man kein SQL-Injection bekommt.
Behoben¶
- [ALE-566] Die Datei GroupBy wird nicht gefunden
- [ALE-568] Statusmeldung in HTTPstatuscode wird nicht verwendent
- [ALE-570] HierarchicalProperties wirft bei bestimmten strukturen den Fehler Notice: Indirect modification of overloaded element
1.8.0 - 2017-10-31¶
Geändert¶
- [ALE-561] Die AccessControlListImplementation verwendet nun kein associated mehr
Behoben¶
- [ALE-559] Orderby nur ausführen, wenn der Wert gesetzt ist
- [ALE-558] Map::getValue nicht im InstanceHelper aufrufen
1.7.0 - 2017-10-24¶
Hinzugefügt¶
- Neues Interface Comparable
- Neue Klasse FloatType für Floats
- Neue Klasse HashMap für Objekte
- Erweiterung der Locale-Klasse umd die Methode getLocaleString()
- PropertyText mit addTemplate erweitern, damit Templates hinzugefügt werden können.
- Übernahme der Modellierung der Persitence aus dem Application-Framework
- Neue zentrale Modell-Klasse für die Datenhaltung
- Neue Klasse AlvineSecurityAuthenticationRightless
Geändert¶
- Überarbeiten des Einheitensystems
- Erweiterung um Statusprüfung in der Funktion dispose
- Erweiterung der Persitese, damit auch Relationale-MYSQL Tabellen verwendet werden können
- InvalidConfigurationException durch ConfigurationException ersetzen
- SMTP-Klasse im Zuge von AWS SMS verbessern
- Mindestanforderung für das Framework ist jetzt 7.1
- ObjectStorage muss besser prüfen ob eine Manager verfügbar ist
- Datumsklasse soll auch mit dem Datum 0000-00-00 umgehen können
- Exceptions in ObjectStorage::getObject() nicht mehr verschleiern
- Anpassungen in den SQL-Klassen
Behoben¶
- Das Ergebnis von Component::getDependencyExceptions() ist ein Array
- Implementierungen des Iterator-Interfaces mit einem false als Value laufen nicht durch
- PreparedStatement werden nicht ausgeführt wenn der Type Boolean, aber der Wert eine Zeichenkette ist.
- Korrektur der Extension Zuweisung in der sendEHLO Methode
1.6.0 - 2017-05-30¶
Hinzugefügt¶
- Die Mailklasse kann nun auch über STARTTLS verwendet werden
- Klassen haben nun einen Namespace in phpunit
Behoben¶
- AlvineDateTime::fromNow()
- Zeichensatz korrigiert
- Void ist in PHP 7.1 geschützt, daher Klasse geändert in VoidView
Ältere Veröffentlichungen¶
Hinzugefügt¶
- [ALE-371] Neue Klasse Authentication
- [ALE-373] Erweiterung der Route-Klasse um Zugriffsberechtigung
- [ALE-381] Im Router die Zugangsprüfung einfügen
- [ALE-383] Parser für XML Route erweitert
- [ALE-385] Neue Klasse AlvineApplicationWebRoutePermission
- [ALE-387] DefaultAccessControl::containAuthenticationEntity()
- [ALE-394] Nodelist erweitern um die Methode find
- [ALE-398] Berechtigungsprüfung über die Gruppe der Autorität
- [ALE-402] Berechtigungen über Gruppe
- [ALE-404] Neuer statuscode
- [ALE-415] Neue Methode Form::disableBrowserValidate() um dieses Attribute einzufügen
- [ALE-418] Berechtigungen bei der Verwendung von ObjectStorage auf Record-Ebene
- [ALE-434] Neue Klasse für ContentDispositionField
- [ALE-436] Neue Image-Klasse für HTML-UI
- [ALE-437] XML-Node um getAttributes erweitern um auf die Attribute zugreifen zu können
- [ALE-438] Implementierung des AlvineCoreInstantiableFromProperties Interfaces
- [ALE-441] Neue Methode Directory::isAbsolute() und File:::isAbsolute()
- [ALE-447] Neue Header-Felder integriert Server, Via, TE, Trailer
- [ALE-448] XML-Tags sind meist kleingeschrieben und die Tags-Klassen sind in CamelCase, das führt dazu das diese nicht gefunden werden.
- [ALE-450] Neues Interface Instantiable
- [ALE-455] Neue Managerklasse für den Zugriff auf die Storage-Objekte
- [ALE-456] Gebundene Objekte innerhalb von Objekten einzeln abspeichern
- [ALE-459] Über den Manager gespeicherte Objekte sollen beim laden die gleiche Referenz erhalten
Verbessert¶
- [ALE-356] Der Name String ist in PHP7 reserviert
- [ALE-361] Socketklasse: Das Timeout gilt nicht, wenn Zeichen übertragen werden.
- [ALE-362] Das Schreiben der Logger-Handler im Finalize der Anwendung gezielt anstoßen
- [ALE-368] PHP 7 Umstellung für ParameterString
- [ALE-375] Feintuning des Anmeldesystems
- [ALE-376] Neue Klasse ClassType
- [ALE-377] Aufräumarbeiten und Dokumentation
- [ALE-379] IndexObserver üerarbeiten, dass dieser über ein Mapping dynamisch erweitert werden kann
- [ALE-380] Alvine Basisklasse um isInstanceOf ergänzt und getClass() auf ClassType umstellen
- [ALE-382] Session und Web::authenticate() optimieren
- [ALE-384] Signatur des AlvineApplicationWebViewInternError::getInstance() den Presenter übergeben
- [ALE-386] Erweiterung der Identity-Klassen zum Anlegen von Objekten mit definierter ID
- [ALE-390] Erweiterung, damit das File-Objekt auch mit anderen Resourcen umgehen kann
- [ALE-392] ClassType ergänzen, damit man Namespace und Klassenname ermitteln kann
- [ALE-396] Umstellung auf Bootstrap 4
- [ALE-400] Diverse Testfälle nachziehen um Codeabdeckung zu erhöhen
- [ALE-406] Beim Anlegen eines Queries Übernahme der Sortierung aus dem FilterDokument
- [ALE-408] Anpassungen im Rahmen der Anwenungsoptimierung
- [ALE-409] Copyrightumstellung auf 2016
- [ALE-410] Beim Parsen einer XML-Node sollen bei closes Nodes den Wert null und nicht ='' erhalten
- [ALE-411] Environment auch für cygwin Umgebung richtigen Wert für OS zurückgeben lassen
- [ALE-412] Fehlermeldung in den UI-Controls an Bootstrap 4 angepasst
- [ALE-413] ID des Attributes im Delete-Button auch als ID des Objekts speichern und type=submit für den button setzen
- [ALE-414] Logging im HTTP-Client auf Trace umstellen
- [ALE-416] Löschbutton um die Klasse alvineFormAjax ergänzt um diesen per Jquery abzusenden
- [ALE-417] Beim Löschen von temporären Dateien im destruktor funktioniert die Exception nicht
- [ALE-420] Float ist in PHP7 reserviert
- [ALE-423] Die Nutzung von uasort ist teilweise unsauber implementiert.
- [ALE-429] Performanceoptimierung der Type-Klasse
- [ALE-432] Implementierung des SeekableInterfaces in der NodeList
- [ALE-433] Die Methoden dürfen den internen Counter nicht verändern
- [ALE-442] Wenn kein Verzeichnis angegeben wurde soll kein mkdir aufgerufen werden, sondern direkt eine Exception geworfen werden.
- [ALE-451] Im Producer die Config in der Exception ausgeben, damit geprüft werden kann, ob diese verfügbar
- [ALE-454] Indexierung der AccessControllListe
- [ALE-461] Erstellen einer File-URL aus einem Directory vereinfachen
Behoben¶
- [ALE-321] Filter in den Objekt-Views zeigt keine Werte an
- [ALE-363] Löschen der Sortierung in der Liste geht nicht
- [ALE-366] Leere Konfigurationswerte verursachen einen Fehler beim lesen des nächsten Wertes
- [ALE-367] ENV Variablen werden nicht ersetzt
- [ALE-378] Vom IndexFinder muss es mehrere Objekte geben können
- [ALE-388] Die Property-Klasse schliesst einen Stream nicht sorgfältig
- [ALE-389] php://memory wird nicht richtig dargestellt
- [ALE-391] Loghandler File-Handler umstellen, das beim Typ Stream kein Verzeichnis erstellt wird
- [ALE-399] Im Riak-Test wird auf ein nicht vorhandendes Bild getestet
- [ALE-401] Der Test AlvineI18nUtilPluralRulesTest::testParsingException3 schlägt fehl
- [ALE-403] Wenn das Trennzeichen am Ende steht "Entscheidung:" wird eine Exception geworfen
- [ALE-405] In der ObjectStorage::writeObject() wurden Exceptions abgefangen ohne diese weiter zu bearbeiten
- [ALE-407] Resourcepath ist ein String und kein Objekt in der View-Klasse
- [ALE-421] Die Sortierreihenfolge im Accepted-Header stimmt bei PHP7 nicht mehr
- [ALE-425] Bei einem Redirect wird der "alte" Body mitgesendet
- [ALE-426] Proxyhandling auch im Redirect
- [ALE-427] Die Namespaces von MySQL und SQLite sind besonders und müssen explizit kodiert werden.
- [ALE-428] HTTP-Fehler beim Aufruf von Solr
- [ALE-430] Umstellen des Parsings der ValueMap auf PHP-Funktion parseString
- [ALE-431] Der Aufruf von NodeList::getChildren() führt zu einem Fehler wenn es keine Nodes gibt.
- [ALE-435] Der Header im REST-Client kann null sein
- [ALE-440] File::getDirecotry() gibt das Protokoll nicht zurück, das führt bei phar zu Problemen
- [ALE-458] AlvinePersistenceManagerTest Failed
- [ALE-460] AlvineNetHttpHeaderContentTypeField bei textxml muss per default utf-8 zurück geliefert werden