The digest of interesting news and materials from the world of PHP for the last two weeks No. 21 (07/01/2013 - 07/15/2013)

We bring to your attention the next selection with links to news and materials.
Enjoy reading!
News and Releases
- TIOBE Index: PHP is rebuilding - According to recently published data on the index of popularity of the programming languages TIOBE
, the popularity of PHP is growing. For 2013, it was PHP that showed the highest growth rate - 1.64%, and compared to July last year - 2.17%, which is also the highest result, and +2 points in the rating. The authors attribute the growth to the release of ZF2 in September last year, but I think this is not the main and not the only reason. - Phalcon 1.2.0 released - The fastest PHP framework has been updated. A detailed list of changes is available in the beta announcement .
- EllisLab is looking for a new owner for CodeIgniter
- Immediately after the announcement of the release of CodeIgniter 2.1.4 , EllisLab announced that, for a number of reasons, it was not able to support the framework. Many are skeptical about the future of CodeIgniter and are considering alternatives ( Goodbye CodeIgniter, hello Laravel ), but at the moment CodeIgniter remains one of the most popular PHP frameworks with the largest number of offers for working on freelance exchanges. - Fenom - yet another PHP template engine
- This “yet another template engine” turned out to be an absolutely wonderful tool - it outperforms Twig and Smarty in performance, while consuming less memory and more compact code. Bravo! - 3 years Behat - The popular BDD tool is 3 years old and the author writes about what has been achieved during this time and what is planned to be implemented in the near future.
- Silex 1.1 Released - A popular microframework based on Symfony components has been updated. The release discontinued support for Symfony 2.1 and 2.2. There is also a short post about integrating Stack and Silex.
- The PHPStorm 7 early access program has started - I remind you that thanks to the program you can use the IDE beta versions absolutely free and legally, and, of course, be the first to try all the new features.
- A draft draft of the HTTP 2.0 specification is published
- News not directly related to PHP, but all web developers should definitely familiarize themselves with the specification that will determine the future of the web. - Releases PHP 5.4.17 and the PHP 5.3.27 - If the first release is a common set of fixes, the second is remarkable that was the last regular release 5.3 branch. During the year, if necessary, security bug fixes will be issued, but in general this is the decline of the 5.3 era.
- PHPCI - Continuous Integration for PHP Projects - A free open source tool specifically designed for continuous integration of PHP applications. The main goal was ease of use, therefore, of course, this is not Jenkins / TeamCity.
- Yii 1.1.14 RC
- A massive release of the current branch of the framework is planned. Users expect a lot of changes and new features.
Php
- We are participating in the development of the PHP core - If you want to join the number of contributors in the PHP core, then this post will be a great starting point. The author described the main points that are worth paying attention to and, in addition, published the vagrant-php-src-dev project , which allows you to raise a virtual environment ready for experiments on PHP sources with one command.
- Dynamic Impurities in PHP
- A detailed comparison of two methods for implementing impurities
in PHP using standard tools without using extensions and traits has been made at the hubpost. - We get access to the private members of the class in PHP without using reflection - the author was not satisfied with the slow speed of ReflectionClass and ReflectionProperty, and he decided to try the Closure :: bind method , the use of which showed the result much better.
- PHP 5.5: Generators - In the wake of the release, a post about a new feature has been released. In addition to the review, an example of the use of generators as a data provider in unit tests is given. Let me remind you of a good demonstration of the efficiency of generators as well as a small library from Nikita Popov, in which iterative functions like
map()andfilter()implemented with the help of generators.
Learning Materials
- Monads in OOP PHP - A post about monads in PHP in support of the author's library MonadPHP .
- Acquaintance with Yii 2 based on the creation of a simple blog
- The link is a good hub with a tutorial, and in the meantime, work on Yii 2 is in full swing: the documentation is being updated , the basic skeleton application and a demonstration of a new component for debugging are available . - July issue of Web & PHP magazine - Now articles from the issue can be read on the magazine’s website, and the PDF version, as before, is available for download. In this issue, you should pay attention to the article on the integration of Node.js and PHP , as well as a review of Symfony2 .
- User library Array_column () - A new function array_column () was added in PHP 5.5 , and for those who do not want to upgrade to 5.5, the author of the function created a micro-library with the implementation thereof.
- Install Jenkins and integrate with GitHub for a PHP project - A small tutorial on how to install Jenkins and configure integration with GitHub so that the application build starts automatically when pushing. Also a lot of useful information about using Jenkins with PHP projects can be found here .
- Creating a React PHP search engine
- An interesting post that describes how to create an indexing daemon using React PHP. - Parameterized Routes on AngularJS and Silex - A small note on how to extend Controller in AngularJS for convenient use of parameterized routes.
- We save PHP-sessions in Redis - A detailed tutorial in which you will find a description of the motives for using third-party storage for sessions, some basic information about processing sessions and storing data, as well as directly an example implementation of SessionHandlerInterface for working with Redis.
- PHP-sessions in Erlang Mnesia - If with the storage of sessions in Redis it is more or less obvious, then in this post an exotic solution is considered. However, this is just an experiment so far inapplicable in production.
- Data structures for PHP developers: trees - In the previous post of the series, we talked about the stack and the queue, this time a bit of theory and examples in PHP about trees. The post will be useful to young developers and those who are just starting.
- Vagrant Guide for Beginners , 2 , 3 - It’s not for nothing that Vagrant posts are regularly found in digests, because this tool allows literally one team to raise a virtual environment that is ready for work. It is especially convenient, for example, when a project requires special configuration and software, and you don’t want to change / clutter your native OS for development. If you haven't tried Vagrant + Puppet yet, start now by reading the posts. In addition, for PHP there is an excellent graphical generator of Vagrant manifests - PuPHPet .
- Building a CRUD-application on Yii in a few minutes - A small elementary tutorial on Yii 1.1. Although all the information is in the documentation
, for those who are just starting out, the post may be useful. - \ Zend \ Db \ Sql - we build queries easily and efficiently , 2 , 3 - Three tutorials for beginners on working with the database using Zend classes.
- Integrating Varnish Cache with a PHP application , 2 - A couple of tutorials on how to speed up PHP applications through the use of the Varnich Cache HTTP accelerator.
- PHPStorm + XDebug + Bitbucket: development on a remote server in a small team
- In the hubpost, the author described a scheme for working on a PHP project without developers using local web servers. - Improving PHP performance on Windows with Profile Guided Optimization (PGO) - An interesting post on optimizing data-based profiling used in PHP binaries for Windows.
- Automatic "fluid interface" and ArrayIterator in PHP-models
- The author of the Habrapost shared his solution to the problem of simple and clear access to the model properties. - PHP implementation of the Chicken virtual machine - Posted by ReactPHP Igor Wiedler, has ported an implementation of an esoteric programming language whose only symbol is "chicken" . Of course, there is no practical application, but the code can be a good subject to study.
- Laravel 4: how to keep code organized - A few tips on how to prevent confusion in the code of a Laravel project as the application grows.
- We create flexible controllers in Laravel 4 - Laravel Tutorial, which covers the topic of using repositories.
- Statistics on the use of databases, servers, versions of Java and PHP in the cloud
- Habrapost with statistics from the popular PaaS - Jelastic. - Is your Framework so fast or is it enough to test the performance of Nello World
- A small but interesting hubpost: “study as many solutions as possible, take the best from them, combine successful implementations”. - About open source libraries - An excellent post in which the author collected best practices for organizing and designing a code repository for publication for general use. So, if you implemented the library and want it to be popular, and also want to get a constructive feedback, then be sure to check out the post.
- Sending notifications from PHP - The author has implemented a simple and lightweight solution for managing notifications - Notificator . Notifications can be sent by mail, use Ubuntu desktop notifications, or implement your own custom handler.
- What's New in PHP 5.5 - Good post about new features of PHP latest version.
- PHP in 2013 - At a meeting of PHP users in London, Rasmus Lerdorf made a presentation. Slides are available via the link, and here you can watch the video.
- Using ncurses in PHP
- A great hub for using the ncurses library, which allows you to create complex and convenient console utilities.
Link to the previous issue.