Skip to content

Releases: letsdrink/ouzo

2.0.2

12 Sep 11:19
9cc81a6
Compare
Choose a tag to compare

Bug fixes:

  • [Core] Fixed phtml render dynamic properties

2.0.1

31 Aug 12:03
a501707
Compare
Choose a tag to compare

Enhancements:

  • [Utilities] Added Strings::SPACE.

Release 2.0.0

19 Jun 12:01
cf9c0ff
Compare
Choose a tag to compare

Support for PHP 7.x is dropped. Minimal PHP version required is 8.0.

Breaking changes:

  • [Core] Removed setting of default environment to prod.
  • [Core] Renamed EnvironmentSetter to Environment, deleted set() method from Environment and init().

Enhancements:

  • [Core] Added ignore list to Backtrace::getCallingClass().
  • [Utilities] Added Arrays::lastOrNull().
  • [Utilities] Added Stopwatch and Ticker classes.
  • [ORM] Added support for DISTINCT ON in PostgreSQL dialect.

Release 1.8.0

26 Mar 13:23
a19891b
Compare
Choose a tag to compare

Support for PHP 5.6 is dropped. Minimal PHP version required is 7.4.

Enhancements:

  • [Utilities] Added Arrays.getDuplicates(), Arrays.getDuplicatesAssoc().
  • [Utilities] Added FluentArray.getDuplicates(), FluentArray.getDuplicatesAssoc().
  • [Core] Added database migration tools (migrate:run and migrate:generate).

Release 1.7.0

13 Oct 13:49
08c6848
Compare
Choose a tag to compare

Enhancements:

  • [ORM] Model implements Serializable and JsonSerializable interfaces (issue #203).
  • [ORM] Changed Model::deleteEach to use iterator instead of fetching all elements at once (issue #254).
  • [ORM] Fixed fetchIterator to properly use cursor underneath.
  • [ORM] Implemented upsert functionality (Model::createOrUpdate).
  • [ORM] Fixed using primary key value when given as an attribute, instead of using sequence.
  • [DI] Added constructor injection for arguments with types defined (issue #265).
  • [DI] Implemented injection of private fields for parent class.
  • [DI] Implemented injection through factory class.
  • [DI] Implemented named parameters for constructor injection.
  • [DI] Implemented lazy loading for singleton classes.
  • [DI] Added module loader.
  • [Utilities] Added equalsIgnoreCase to Functions and FluentFunctions (issue #263).
  • [Utilities] Added ToStringBuilder in the apache-commons style.

Bug fixes:

  • [Utilities] Fixed Clock to support DST changes when adding hours, minutes or seconds.
  • [Utilities] Fixed Arrays::getNestedValue when keys lead to non-existing element with scalar parent.
  • [MVC] Added clearstatcache before downloading files.
  • [Tests] Fixed handling of null return type for mock objects.

Release 1.6.1

29 Mar 14:39
Compare
Choose a tag to compare

Enhancements:

  • [Core] Added Validatable::errors(), so multiple errors can be added at once.
  • [Core] Added Whoops library (issue #243).
  • [Core] Removed separate 404 view (you have to check http code in exception.phtml)
  • [ORM] Added Db::query()->fetchIterator() method (issue #241).
  • [ORM] Added support for EXISTS subqueries.
  • [ORM] Added ModelQueryBuilder::fetchIterator() (issue #242).
  • [ORM] Added Restrictions::isIn().
  • [Tests] Added Assert::that() (issue #245).
  • [Tests] Added Assert::thatBool().
  • [Tests] Added Assert::thatArray()->keys().
  • [Utilities] Added Functions::notNull().
  • [Utilities] Added Arrays::isAssociative() and Arrays::concat().
  • [Utilities] Added UnbatchingIterator.
  • [Utilities] Added FluentArray::flip().
  • [Utilities] Json::decode() and Json::encode() will from now on, throw exceptions on invalid input.
  • [Utilities] Added Json::safeDecode() and Json::safeEncode().
  • [Utilities] You can now read URL parameters as controllers' method arguments (issue #244).
  • [Utilities] Clock.useTimezone() accepts both string or DateTimeZone.
  • [Utilities] Added Strings::containsIgnoreCase.
  • [Debug] After renderPartial(), you can now find PARTIAL and END PARTIAL HTML comments along with partial name.

Bug fixes:

  • [Core] Fixed searching routes with a @ character.
  • [ORM] Fixed query parenthesis (issue #239).
  • [ORM] Insert returns id of the last inserted element as int.
  • [ORM] Fixed EmptyQueryExecutor::fetchIterator() method.
  • [Tests] More verbose message when null is passed to Mock::verify() (issue #236).
  • [Utilities] Fixed extracting ArraysAssert.
  • [Utilities] Fixed Arrays::toArray() for empty string, false and zero.
  • [Utilities] Fixed Strings::remove() when given falsy argument (like '0').
  • [Utilities] Removed $encoding parameter from Strings::uppercaseFirst().
  • [Utilities] Clock will not modify parameter DateTime.

Release 1.6.0

15 Jun 09:47
Compare
Choose a tag to compare

Enhancements:

[Utilities] Implemented Arrays::contains method (issue #103).
[Utilities] Added Clock::isAfterOrEqualTo and Clock::isBeforeOrEqualTo.
[Utilities] Added multi-byte safe Strings::uppercaseFirst.
[Utilities] Added pseudo localization support.
[MVC] Layout has now access to view variables.
[ORM] Added exception handling for invalid query.
[Utilities] Added Functions::endsWith method.
[Tests] Added verifier - Mock::receivedTimes (issue #153).
[Utilities] Added method Strings::removeAccent.
[Tests] Handle parameters in ControllerTestCase::get.
[ORM] Added BatchInserter.
[Utilities] Added Strings::substringAfter method.
[Utilities] Added FluentArray::sort method.
[Utilities] Added FluentArray::filterByAllowedKeys method.
[DI] Added dependency injection support (IoC container).
[Tests] Added chain to Mock::when (issue #209).
[ORM] Added Restrictions:regex method (issue #213).
[Core] ControllerFactory use Injector (issue #223).
[Utilities] Added FluentArray::groupBy method.
[DI] Injector can inject itself.
[DI] Injector config can be modified after injector initialization.
[Utilities] Added support for ArrayAssert::extract method (issue #231).
[Utilities] Added methods Functions::inArray and Functions::notInArray.
[Utilities] Refactored Booleans.
[Utilities] Added Arrays::shuffle.
[Core] Added Controller::getRequestHeaders.
[Core] Added options to PDO.

Bug fixes:

[Utilities] Fixed ArrayAssert, so that it does some type checking based on Arrays::contains behavior (issue #192).
[MVC] Fixed major performance issue with routes validation.
[ORM] Fixed inserting records with no values (issue #216).
[Tests] Support for controller tests without configured database.
[Core] Fixed json decode to make it compatible with PHP7 (issue #191).
[ORM] Fixed method Model::nullifyIfEmpty.
[Core] Fixed ForbiddenException - takes errors.
[Tools] Fixed generating models (issue #214).
[Core] Bootstrap::addConfig loads everything multiple times on consecutive executions (issue #218).
[Tools] Fixed generating @property (issue #168).
[ORM] Handle in batch inserter tables without primary key.
[Core] Fixed exception when config was not added to Bootstrap.
[Utilities] Fixed SkippingIterator so that map function is not applied on skipped elements.
[ORM] Fixed BatchInsert with fetched relations (issue #230).
[Utilities] Fixed cache for nulls.
[Core] Fixed render 404 on RouterException.
[Utilities] Fixed null handling for Optional.
[Utilities] Fixed String::contains for multi-byte.
[Utilities] Added limit (10) to number of requests being kept in Stats (issue #217).
[Utilities] Fixed comparing in Functions::notEqual and Functions::equal with type check.
[Utilities] Fixed reset JSON on error.

Release 1.5.1

28 Jul 15:03
Compare
Choose a tag to compare

Enhancements:

[ORM] Added support for subqueries in Query.
[Utilities] Added Functions::random.
[Utilities] Added Iterators (issue #189). 

Bug fixes:

[MVC] Request stats are now logged only when debug is enabled. 
[MVC] Added more verbose logging when controller was not found (issue #187).
[Utilities] Fixed Arrays::removeNestedKeys.

Release 1.5.0

15 Jun 08:18
Compare
Choose a tag to compare

Enhancements:

[Utilities] Extended Comparator::compareBy to support multiple expressions (issue #169).
[ORM] Added possibility of using multiple Restrictions in Any::of for the same key.
[Utilities] Added Suppliers::memoizeWithExpiration that returns supplier which caches the result of function.
[Core] Minimal log level can be assigned to a particular class/name in logger configuration.
[Core] Added Validatable::validateEmpty method.
[ORM] Extended Restrictions::between with modes: inclusive, exclusive etc. (issue #176).
[ORM] When using DbTransactionTestCase transactions are disabled (issue #178).
[Core] Added support for CSRF token in forms.
[Tools] Added method that lists all generated URI helper methods (GeneratedUriHelper::allGeneratedUriNames).
[Utilities] Implemented Optional class (issue #72).
[ORM] Added support for SELECT ... FOR UPDATE - with ModelQueryBuilder's lockForUpdate method.
[ORM] Added support for DELETE USING.
[MVC] Session is being closed when downloading or streaming file.
[MVC] Added support for UTF-8 characters in routes.

Bug fixes:

[Localization] Fixed I18n::loadLabels not to load translation file if it was already loaded (issue #173).

Release 1.4.1

11 Feb 09:52
Compare
Choose a tag to compare

Enhancements:

[ORM] New restrictions: isNull and isNotNull.
[ORM] Added EmptyWhereClause class.
[Utilities] Objects::getValue supports arrays now. It means that all functions depending on it (e.g. Functions::extract) supports arrays as well.
[ORM] Added switch for model generator to utilize shorthand array syntax (issue #160).
[ORM] Added switch for model generator to display output instead of saving file (issue #158).
[ORM] Added support for sorted hasMany relations (issue #171).
[Tests] Added ArrayAssert::isEqualTo method.

Bug fixes:

[Utilities] Added Arrays::mapEntries (issue #156).
[ORM] Fixed null parameters in where clause (issue #161).
[ORM] Fixed model generator namespace and folder name (issue #149).
[Utilities] Added Arrays::uniqueBy (issue #159).
[Tests] Changed ArrayAssert::hasSize, so that it shows original array when assertion fails (issue #163).
[ORM] Fixed insert when sequence is empty (issue #174).