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 Wert application/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