We are very happy to announce the release of v4.0.0 Release Candidate (RC) 3!.

Github Tag

We streamed this release live! https://youtu.be/iAGWIW9A4Mc

This release fixed quite a few bugs (thanks community!). We have also introduced support for PSR-13, ability to build Hypermedia Links

We are nearly there. 5 documents left to rewrite, a bit of work on DevTools and fixing a few bugs that were found in the previous iteration.

You can see the remaining cards for v4 in our project page.

Regarding the documents, you can check our progress in this issue:

https://github.com/phalcon/docs/issues/2322

Changelog

Added

Added support for PSR-13 links and evolvable links #14507 Added Phalcon\Html\Link\Link Added Phalcon\Html\Link\LinkProvider Added Phalcon\Html\Link\EvolvableLink Added Phalcon\Html\Link\EvolvableLinkProvider Added Phalcon\Html\Link\Serializer\Header Added Phalcon\Html\Link\Serializer\SerializerInterface

Added Phalcon\Collection:getKeys and Phalcon\Collection\getValues for getting data from the collection #14507

and for getting data from the collection #14507 Added has-one-through relations to Phalcon\Mvc\Model and Phalcon\Mvc\Model\Manager #14511

and #14511 Added Phalcon\Mvc\Model::hasOneThrough()

Added Phalcon\Mvc\Model\Manager::addHasOneThrough()

Added Phalcon\Mvc\Model\Manager::existsHasOneThrough()

Added Phalcon\Mvc\Model\Manager::getHasOneThrough()

Added Phalcon\Mvc\Model\ManagerInterface::addHasOneThrough()

Added Phalcon\Mvc\Model\ManagerInterface::existsHasOneThrough()

Added Phalcon\Mvc\Model\ManagerInterface::getHasOneThrough()

Added Phalcon\Http\Request::numFiles to return the number of files in the request #14519

Changed

Changed Phalcon\Paginator\Adapter\Model Removed the data parameter Added model parameter to pass model class Added optional parameter parameters which is used as the parameter Model::find()



Fixed

Fixed Phalcon\Annotations\AnnotationsFactory:newInstance to return the correct object back #14494

to return the correct object back #14494 Fixed return types: Phalcon\Db\Adapter\PdoFactory::load() now returns Phalcon\Db\Adapter\AdapterInterface Phalcon\Db\Adapter\PdoFactory::newInstance() now returns Phalcon\Db\Adapter\AdapterInterface Phalcon\Logger\LoggerFactory::load() now returns Phalcon\Logger Phalcon\Validation\ValidatorFactory::newInstance now returns Phalcon\Factory\ValidatorInterface

Fixed Phalcon\Container:get to use getShared transparently #14502

to use transparently #14502 Fixed Phalcon\Mvc\Model to include correct model instances in messages metadata #14510

to include correct model instances in messages metadata #14510 Fixed Phalcon\Di\Injectable::__get() to return shared instance by default #14491

to return shared instance by default #14491 Fixed Phalcon\Mvc\View::loadTemplateEngines() to not share engine with other views by default #14491

to not share engine with other views by default #14491 Fixed Phalcon\Mvc\Model\Manager::getRelations() and getRelationsBetween() to return many-to-many relations correctly #14509

and to return many-to-many relations correctly #14509 Fixed Phalcon\Logger to correctly allow transactional logging #14514

to correctly allow transactional logging #14514 Fixed Phalcon\Annotations\Adapter\Stream::read and Phalcon\Annotations\Adapter\Stream::write to use serialize / unserialize vs. var_export #14515

and to use / vs. #14515 Fixed Phalcon\Http\Request::hasFiles to return boolean and true if files are present #14519

to return boolean and if files are present #14519 Fixed Phalcon\Logger\Adapter\Syslog to correctly log Syslog messages #14522

to correctly log Syslog messages #14522 Fixed Phalcon\Mvc\Model\MetaDataInterface::getIdentityField and Phalcon\Mvc\Model\MetaData::getIdentityField to also return null if the identity field is not present #14523

and to also return if the identity field is not present #14523 Fixed Phalcon\Storage\Serializer\Json to serialize objects that implement the JsonSerializable interface #14528

to serialize objects that implement the interface #14528 Fixed Phalcon\Collection to correctly return one level nested objects that implement JsonSerializable #14528

to correctly return one level nested objects that implement #14528 Fixed Phalcon\Mvc\View to only include first found instance of view when using multiple view directories #12977

Removed

Removed Phalcon\Logger\Formatter\Syslog - really did not do much #14523

Installation/Upgrade

The packages in packagecloud.io are being updated (at the time of this post) and will be ready soon. You will need to use the mainline repository to install v4.0.0-rc2. You can also download the zip file, as well as DLLs for Windows, from our release page here.

You can also clone the repository and checkout the tag, and then run

zephir fullclean zephir build

to install the new extension. Detailed installation instructions can be found in our documentation page.

Note: It might take a bit of time for the DEB and RPM packages to be built from when this blog post is published.

Thank you

Once again a huge thank you to all of our contributors! You guys have helped us a lot. You can help us even more by installing this version and testing it. If you find bugs, please report them in our Github Issues page. Alternatively you can always join us in our Discord server or our Forum.

Chat - Q&A

Support

Social Media

Videos

<3 Phalcon Team