It has been a really busy month and a half. We concentrated all of our efforts in developing Phalcon 0.5.0, which outlines a huge rewrite of core parts of the framework. We increased flexibility, extensibility and added more features while still keeping performance high.

Most of the examples and features present in previous versions work - however there might be some unexpected behavior (bugs) lurking around. All the tests are passing in our Travis CI server and the official site has been running on 0.5.0b1 for a few days now with no problems.

This is the last part of the introduction series regarding our upcoming release of Phalcon 0.5.0.

With the 0.5x release, we have made changes in the architecture, introducing more components the framework while still keeping performance very high. We felt that the ORM could use some additional optimization as well as functionality, so that was the last area we concentrated on. We have made many improvements in the database and ORM components, such as the use of PDO, improved security with automatically binding parameters and much more.

The third installment of our blog posts regarding the upcoming 0.5.0 version is about the MVC implementation. Below follows implementation concepts and examples of a MVC application using Phalcon 0.5.0.

As far as the MVC implementation is concerned, our main goal with 0.5.0, was to make it more flexible than ever, giving more control to the developer. Due to this, Phalcon is now able to load simple MVC applications and multi-module ones.

In addition to the dependency injection component seen in the previous post of the introduction series, a new component makes its appearance in Phalcon 0.5: the Events Manager. Its purpose is to intercept the execution of most of the components of the framework by creating “hook points”. These hook points allow the developer to obtain status information, manipulate data or change the flow of execution during the process of a component.

In the following example, we use the EventManager to listen for events produced in a MySQL connection managed by Phalcon\Db. First of all, we need a listener object to do this. We create a class which methods are the events we want to listen:

Development in the new version of Phalcon 0.5.0 is well underway. In this new version we are introducing new components for the community to use. In the blog posts to follow, we will explain these new features in length.

With Phalcon 0.5.0 (still under development) we are introducing a new design pattern called Dependency Injection. In short, objects should not be instantiated inside a class, rather injected using constructors and/or setter methods. This pattern increases testability in the code, thus making it less prone to errors.

Following up on the 0.4.2 release a few weeks ago, we have a fresh update to address some issues and minor bugs.

We are also very excited to announce the release of the 0.5.0 alpha 1 version! This new branch offers many improvements and a huge refactoring of the framework. We are happy that the changes we have introduced have increased performance even more.

As we continue to enhance Phalcon with new functionality and features, we have migrated all of our documentation on Read the Docs, a service that hosts documentation for open source projects such as ours.

Utilizing this service allows for:

Our main goal is to make Phalcon a great framework that everyone can benefit from.

With that in mind, the 0.4.x branch was a great step forward and we are preparing for 0.5.x which will be a big redesign. The new branch will require some refactoring which we want to discuss with you. New changes will be introduced, big but necessary, which will affect the functionality of current applications.

We are excited to announce that Phalcon supports the PostgreSQL RDBMS:

Projects
We're a nonprofit organization that creates solutions for web developers. Our products are Phalcon, Zephir and others. If you would like to help us stay free and open, please consider supporting us.