Skip to content

Releases: mako-framework/framework

12.0.0

05 Jan 11:34
775b939

Choose a tag to compare

The major version bump is due to upping the required PHP version from 8.4 to 8.5 and a several breaking changes. Most applications built using Mako 11 should run on Mako 12 with just a few simple adjustments.

New

  • Added auto-restart option to the app:server command that enables automatic restart of the development server in the event of a fatal error.
  • It is now possible to send custom INI entries to the development server to configure PHP.
  • Made improvements to the development error handlers:
    • Several UI improvements.
    • Added syntax highlighting to code.
    • The development handlers may provide hints and suggestions to help resolve certain types of errors.
  • Made improvements to the production error handlers:
    • The 429 (too many requests) view will now tell the user when they can retry if a "retryAfter" date is provided.
  • Added support for "partitioned" cookies aka "CHIPS".
  • New and vastly improved image processing library (pixel) that replaces the the old pixl library.
  • Added CLI frame output component.
  • Added CLI notification output component for sending desktop notifications.
  • Added a SimpleCache (PSR-16) implementation to the framework core.
  • Added the following methods introduced in Redis 8.0.0:
    • Redis::hGetDel()
    • Redis::hGetEx()
    • Redis::hSetEx()
    • Redis::xAckDel()
    • Redis::xDelEx()
    • Redis::vAdd()
    • Redis::vCard()
    • Redis::vDim()
    • Redis::vEmb()
    • Redis::vGetAttr()
    • Redis::vInfo()
    • Redis::vIsMember()
    • Redis::vLinks()
    • Redis::vRandMember()
    • Redis::vRem()
    • Redis::vSetAttr()
    • Redis::vSim()
  • Added new validation rules:
    • exact_count
    • max_count
    • min_count
  • Added InjectCache attribute.
  • Added InjectSimpleCacheattribute.
  • Added InjectCryptoattribute.
  • The mako\env function can now cast env variable values to boolean, int, float, object and array types.

Changes

  • Made some changes to the InjectorInterface.
  • Removed the deprecated WinCache cache store.
  • Removed the deprecated Cursor::beginningOfLine() method.
  • Removed the deprecated CryptoManager::getEncrypter() method.
  • Removed the deprecated CommandHelperTrait::progressBar() method.
  • Removed the deprecated CommandHelperTrait::question() method.
  • Removed the deprecated CommandInterface methods:
    • CommandInterface::getCommand()
    • CommandInterface::getDescription()
    • CommandInterface::getArguments()
  • The default date output format for the ORM has been changed to ISO-8601.
  • Renamed the mako\cli\input\helpers namespace to mako\cli\input\components.
  • Removed the old pixl image processing library (replaced by the new pixel library).
  • Changed how "literal" CLI output formatting tags are defined (\<tag> → <literal:tag>).
  • Changed the function signature of the mako\env function.
  • Simplified syntax for registering middleware and constraint parameters in route groups.

Deprecations

  • Deprecated the following Redis methods:
    • Redis::ftConfigGet()
    • Redis::ftConfigSet()
    • Redis::ftTagVals()

Improvements

  • Various improvements and optimizations.

Check out the upgrade guide for details on how to upgrade from 11.0.*.

11.4.4

19 Sep 21:33
4371ff3

Choose a tag to compare

Changes

  • Prevent unnecessary warnings from PHPStan.

11.4.3

16 Sep 20:18
e42ab86

Choose a tag to compare

Changes

  • Moved ingress prefix logic to the router.

11.4.2

16 Sep 15:01
8e0967d

Choose a tag to compare

New

  • The request class can now strip a configurable prefix from the request path.

11.4.1

05 Sep 08:42
26e3864

Choose a tag to compare

Bugfixes

  • Fixed issue with deleting records using an ORM object with the SensitiveStringTrait trait.

11.3.1

01 Sep 07:52
c234c5b

Choose a tag to compare

Bugfixes

  • Fixed issue with deleting records using an ORM object with the SensitiveStringTrait trait.

11.4.0

30 Aug 18:19
7a9a781

Choose a tag to compare

New

  • The container can now resolve parameters with the help of custom injector attributes. The following attributes are included by default:
    • InjectConnection which allows you to inject a specific database connection.
    • InjectConnection which allows you to inject a specific Redis connection.
    • InjectConfig which allows you to inject a config value.
    • InjectEnv which allows you to inject a environment variable value.
  • Added disableAfterSunset option to the Deprecated middleware.

Changes

  • Increased the default PBKDF2 key derivation iteration count in the OpenSSL encrypter to improve security. The default can be overridden using the key_derivation_iterations configuration parameter.

Compatibility

  • PHP 8.5 compatibility.

Deprecations

  • Deprecated the CryptoManager::getEncrypter() method. Use the CryptoManager::getInstance() or CryptoManager::getCrypto() methods instead.

All deprecated features will be removed in Mako 12.0.

11.3.0

28 Jul 10:31
adebcf4

Choose a tag to compare

New

  • Added "insert and return" functionality to the query builder. The feature is currently supported by the Firebird, MariaDB, PostgreSQL, SQLite and SQL Server compilers.
    • Query::insertAndReturn()
    • Query::insertMultipleAndReturn()
  • Added SensitiveString type to the database library. It can be used to encapsulate sensitive strings to prevent them from being logged in query logs.

Changes

  • MariaDB now has its own connection and query compiler classes that extend the MySQL classes. Use the mariadb: prefix in your connection dsn instead of mysql: to take full advantage of the MariaDB features.
  • The ResultSet::getPagination() return type is now nullable.

11.2.1

26 May 12:49
42ab18b

Choose a tag to compare

Improvements

  • All the query builder aggregate methods now also allow a Raw instance in addition to a column name.
  • The Query::aggregate() method is now public.

11.2.0

24 Mar 19:02
7fc9c55

Choose a tag to compare

New

  • The class finder can now find enums.
  • Added a CLI output component that makes it easy to print a set of aligned labels and values.
  • Reactor CLI commands can now prompt for missing arguments if they use the PromptForMissingArguments attribute.
  • Added new methods to the CLI Input class:
    • Input::makeNonInteractive()
    • Input::makeInteractive()
    • Input::isInteractive()
  • Added global --non-interactive reactor argument.
  • Added Environment::noColor() method.
  • CLI output now respects the NO_COLOR environment variable.

Changes

  • The select and confirm CLI inputs are now interactive and more user friendly.

Deprecations

  • Deprecated the Command::question() method. Use the Command::input() method instead.
  • Deprecated the Cursor::beginningOfLine() method. Use the Cursor::moveToBeginningOfLine() method instead.

All deprecated features will be removed in Mako 12.0.