We are excited to announce the immediate availability of Phalcon 3.0.1 [LTS].

This maintenance release fixes bugs and improve the stability of Phalcon:

The Phalcon team is very excited to share some news with our community!

The last few months, we have been working hard to push 2.1 out, which contains significant enhancements as well as some API changes that require attention so as not to break compatibility with your application. On top of that we have been working in making Zephir PHP7 compatible so that you can enjoy Phalcon in your PHP7 application. Some news first though:

We are excited to announce the immediate availability of Phalcon 2.0.13!

This maintenance release number of bug fixes (outlined below). We had 2 more minor releases providing minor fixes since our last blog post, and the CHANGELOG for those is listed below:

We are excited to announce the immediate availability of Phalcon 2.1 RC 1!

This version is our first LTS version and it will be supported 3 years from its final release date. Also, this will be our last release candidate before the final version of Phalcon 2.1.

Phalcon 2.1 introduces a great number of improvements, striving to make Phalcon even a better framework. Final version will be available in two weeks.

PHP7 was released on the 3rd of December, 2015. This new version brought forward a large number of new and exiting features (https://php.net/manual/en/migration70.new-features.php) to PHP. Perhaps one of the biggest of the new features is a new Zend Engine (the engine that powers PHP).

This new engine, code named PHPNG, will give some of your applications double the performance speed.

Some benchmarks that have been run so far:

  • WordPress 3.6 – 20.0% gain (253 vs 211 req/sec)
  • Drupal 6.1 – 11.7% gain (1770 vs 1585 req/sec)
  • Qdig – 15.3% gain (555 vs 482 req/sec)
  • ZF test app – 30.5% gain (217 vs 166 req/sec)

It is only natural that once it came out the PhalconPHP community was dying to know when we would get a chance to work with PhalconPHP and PHP7.

The Problem

We all know that PhalconPHP is written in Zephir starting with version 2.0, and that this language compiles its code into a C PHP Extension. Because of PHP7’s new engine the extension had to be rewritten and adapted to the new specifications.

The Solution

Knowing this, the PhalconPHP team started working since last year on an updated version of Zephir to make the compiled code work with PHP7.

After a few months we are finally delivered PhalconPHP 2.1 and Zephir 0.9.x which brings PHP7 support.

Installing PhalconPHP with PHP7

You will need to install PHP7+ and Zephir 0.9.2a-dev (or its latest branch). After you have them installed go to PhalconPHP 2.1.0+ branch and download the source code.

Installation example:

root@localhost:~$ cd cphalcon-2.1.x/
root@localhost:~/cphalcon-2.1.x$ zephir build —backend=ZendEngine3

If you get these warnings ignore them:

Warning: Variable "_SESSION" assigned but not used in Phalcon\Session\Adapter::remove in /root/cphalcon-2.1.x/phalcon/session/adapter.zep on 204 [unused-variable]

     }
    -^

Warning: Variable "beforeLine" assigned but not used in Phalcon\Debug::showTraceItem in /root/cphalcon-2.1.x/phalcon/debug.zep on 339 [unused-variable]

       beforeLine, firstLine, afterLine, lastLine, i, linePosition, currentLine;
    -------------^

Warning: Variable "possibleSetter" declared but not used in Phalcon\Mvc\Model::assign in /root/cphalcon-2.1.x/phalcon/mvc/model.zep on 440 [unused-variable]

      var key, keyMapped, value, attribute, attributeField, possibleSetter, metaData, columnMap, dataMapped;
    ----------------------------------------------------------------------^

Warning: Function "\\sodium\\randombytes_buf" does not exist at compile time in /root/cphalcon-2.1.x/phalcon/security/random.zep on 119 [nonexistent-function]

       return \\Sodium\\randombytes_buf(len);
    ----------------------------------------^

Warning: Function "\\sodium\\randombytes_uniform" does not exist at compile time in /root/cphalcon-2.1.x/phalcon/security/random.zep on 310 [nonexistent-function]

       return \\Sodium\\randombytes_uniform(len);
    --------------------------------------------^

Compiling...
Installing...
Extension installed!
Don't forget to restart your web server

root@localhost:~/cphalcon-2.1.x$  service php-fpm restart

That’s it!

You now have PhalconPHP and PHP7 working.

Can you expect PhalconPHP to be even faster? No, but you can expect to see your your app be much faster since your PHP code will run better with the new engine. Plus, you won’t have any overhead since PhalconPHP is a extension. The best part of all this is that you get all the new features that PHP7 brings to the table.

Do take into account that PHP7 is still rather new, and most of the commonly used extensions like memcache, memcached, and redis are available in Dev/Beta branches, so you need to reinstall them.

Best of luck to all and enjoy PhalconPHP + PHP7.

We are excited to announce the immediate availability of Phalcon 2.0.10!

This is the tenth maintenance release in the 2.0.x series, adding more fixes and improvements to make the most of Phalcon.

We are excited to announce the immediate availability of Phalcon 2.0.9!

This is the ninth maintenance release in the 2.0.x series, adding more fixes and improvements to make the most of Phalcon.

We are excited to announce the immediate availability of Phalcon 2.0.8 and Phalcon 2.1.0 beta 2!

This is the eighth maintenance release in the 2.0.x series. In regards to Phalcon 2.1, the second beta introduces bug fixes and new features intended to stabilize our next major release.

Phalcon is a framework that differs from the rest. We can’t update the source code from composer like other frameworks, we have to recompile the extension with each new update. Some can find this as a problem. Others, like us, find it entertaining.

Phalcon recently launched its new version (2.0). With this new version we’ve seen a large number of improvements, but as with every software we’ve also got some new bugs. However some of us can’t wait for the new release to get the bug fix, we need the latest and greatest version. This is where we need to either compile Phalcon from Zephir or download the latest build.

To get the latest version of Phalcon go to PhalconPHP’s GIT and get the version of the branch you are using. (For this article let got with 2.1.x.)

[https://github.com/phalcon/cphalcon/tree/2.1.x][https://web.archive.org/web/20160322143039/https://github.com/phalcon/cphalcon/tree/2.1.x]

Now you have 2 options, the build way or the recompile way. On this article we will focus on the build way.

The Build Way

Download the latest version either via GIT or direct download

 [root@server ~] wget https://github.com/phalcon/cphalcon/archive/2.1.x.zip

 [root@server ~] unzip 2.1.x.zip

 [root@server ~] cd cphalcon-2.1.x/

List everything on the folder

[root@server cphalcon-2.1.x] ls
build  CHANGELOG.md  codeception.yml  codecept.phar  composer.json  config.json  CONTRIBUTING.md  docs  ext  optimizers  phalcon  php-tests  README.md  run-tests.sh  tests  unit-tests

We can see 2 folders: build and ext. If we are installing the latest stable version we normally go with the folder build; but since we are going to install the latest unstable version we need to got to the folder ext

[root@server cphalcon-2.1.x]  cd ext

Now we need to compile the new version. Simply run the install command

[root@server cphalcon-2.1.x] ./install

That’s it, restart PHP-FPM or Apache. Welcome to the edge of Phalcon. ;)

[root@server ext] /etc/init.d/php-fpm restart

Enjoy. If you find bugs please report them on github.

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.