|Welcome to your latest edition of phpweekly.com.
We start with several new releases this week, including PHP 5.5.15 and 5.4.31, as well as Joomla! and Drupal updates.
After last week's article listing 10 Most Common PHP Mistakes, Anna Filina has been asked to contribute some tips of her own.
The Refactoring Legacy Code series continues to focus on business logic, in this the 9th and latest installment.
Also, Cal Evans and the team at Voices of the ElePHPant chat with Evan Coury, owner of Roave.
And finally, the Three Devs and a Maybe Podcast this week features Simon Holywell, lead developer at Mosaic in Brighton.
Enjoy your weekend PHP fans :0)
Help us keep PHP Weekly going
Please help us to keep doing this each week by visiting our sponsor:
From our sponsors:
PHP Core Developers versus Facebook: Round 3 - The PHP Specification
Recently Facebook developers played on another episode of a saga that seems to antagonise Facebook and PHP Core developers. This time they announced an initiative to create a formal specification document for the PHP language. Read this article to learn more about this and previous episodes of this saga, and what this may mean for the future of PHP.
MVC - a Problem or a Solution?
When solving web-application problems, we are forced to use MVC. The dev community often frowns upon those who don’t use it, but seldom lets those they’re frowning upon ask why. So why is MVC the best?
Common PHP Mistakes
Anna Filina was recently asked by one of her readers to give feedback on the recently published article: 10 Most Common PHP Mistakes. Anna was asked to contribute to this list, so here are 7 more tips she found very common in her code reviews and various audits.
The Neverending Muppet Debate of PHP 6 v PHP 7
Phil Sturgeon has posted his take on the whole "6 versus 7" debate.
Tutorials and Talks
More Tips for Best Practices in WordPress Development
Welcome to the second part of the series. In the first article, we explained the WordPress Coding Standards, how to avoid namespace collisions, comments in the code and some basic security tips. Today, we are going to go a bit deeper and write some more code and learn some techniques to improve performance and security of our plugins.
Refactoring Legacy Code: Part 9 - Analysing Concerns
In this tutorial, we will continue to focus on our business logic. We will evaluate if RunnerFunctions.php belongs to a class and if so, to which class? We will think about concerns and where methods belong. Finally, we will learn a little bit more about the concept of mocking.
Testing Phonegap/Cordova Applications Fast as Hell in the Device
Normally when we work with Phonegap/Cordova applications we work in two phases. First is the "fast" phase, when we develop the application locally using our browser. We change something within our code, then we reload our browser and wait for the outcome.
Internal PHP Function Usage
Joshua Thijssen asks - How many internal PHP functions (things like count(), strpos(), array_merge() etc), does PHP have? Depending on which version you use, and how many extensions you have loaded, somewhere between 1000 and 2000 would be a good guess. But how many of these internal functions are you REALLY using? One of the biggest (if not THE biggest) source of PHP applications is obviously GitHub. So with a simple query, we can fetch repositories based on a language.
I’ve got all this PHP. Now what? — Parsing PHP in Go
After reading and learning about Go, Stephen Searles has been using it to create a nearly feature-complete PHP parser.
Creating Real Time Applications with PHP and WebSockets
This article will explore the main PHP libraries used to create real time, bi-directional applications between clients and servers over WebSockets.
Install PHP CodeSniffer on Windows Machine
In the programming world there are many tools available which can help us to improve productivity. These productivity tools can help to reduce development time, help to improve code quality, help to track bugs easily, help to build products easily, etc. This article focuses on improving Code Quality.
Downloading Gmail Attachments in PHP – An Update
Sameer Borate has posted an updated version of his previous post on downloading Gmail attachments, answering a lot of questions put to him on the subject along the way.
Using Guzzle with Twitter via Oauth
In a previous article, we found out about Guzzle and how it can aid us in the task of establishing communication with third party APIs over HTTP. It also offers a series of ‘subscribers’, log-subscriber being one of them and we saw how easy it was to integrate monolog into it. While interacting with Github’s API we discovered that it supports basic authentication (sending plain username/password). But what if the API we want to use just offers OAUTH authentication?
Real-World WordPress Benchmarks with PHP5.5, PHP5.6, PHP-NG and HHVM
The team at Kingsta has posted an article this week comparing the benchmark results of some comparisons they have made between PHP 5.5, PHP 5.6, PHP-NG and HHVM.
|News and Announcements
PHP 5.5.15 is Released
The PHP Development Team announces the immediate availability of PHP 5.5.15. This release fixes several bugs against PHP 5.5.14.
PHP 5.4.31 is Released
The PHP development team announces the immediate availability of PHP 5.4.31. Over 10 bugs were fixed in this release.
Joomla! 3.3.3 is Released
The Joomla! Project and the Production Leadership Team are proud to announce the release of Joomla! 3.3.3. This is a maintenance release for the 3.x series of Joomla! and addresses issues introduced in 3.3.2 with the e-mail cloaking code and user configuration options not applying correctly.
Joomla! 2.5.24 is Released
The Joomla Project is pleased to announce the immediate availability of Joomla 2.5.24. This is a maintenance release for the 2.5 series of Joomla! and addresses two issues found with the e-mail cloaking code introduced into the 2.5.23 release.
Drupal 7.30 is Released
Drupal 7.30, a maintenance release with several bug fixes (no security fixes), including a fix for regressions introduced in Drupal 7.29, is now available for download. See the Drupal 7.30 release notes for a full listing.
PHPLicengine Ver 2 Released
PHPLicengine announces the new version of its online solution to automate licenses for PHP software.
The next version of HHVM has been released.
The Loosely Coupled Podcast: Episode 8 - Do You Even Polyglot?
In this episode Jeff and Matt talk about the idea of polyglotism, the benefits, practical advice about choosing which languages to learn and how to be successful while learning new languages. You should go out and find a new language and prepare to give it the time it deserves. It’s best to find a mentor or someone to help you and step out of your language or paradigm comfort zone.
Three Devs and a Maybe Podcast: Functional Programming with Simon Holywell
This week we are lucky to have Simon Holywell on the show to talk all things Functional Programming. Initially starting off with a concrete definition of Functional Programming, we move on to a brief history of the paradigm and immutability. Following this we explain recursion (and tail-recursion), along with closures and higher-order functions. From this base we are able to then talk about the different languages available to you which cater towards the functional mindset (i.e. Haskell). We then set our sights on the PHP language and what/wish it had to offer when exploring the functional paradigm. Finally, we mention his upcoming book, along with experiences presenting at user-group meet-ups.
Voices of the ElePHPant - Interview with Evan Coury
Cal Evans talks to Evan Coury, owner of web development and consulting firm Roave.
Adopting PHP Faster with Arrays - Webinar August 26th 2014, 17:00 GMT
This session examines why array processing is so important and how many of the over 70 array functions relate to RPG operation codes and built-in functions. This intermediate level session is important for the RPG programmer exploring PHP for production purposes. Register now.
DeskPRO is hiring a QA Engineer with Codeception Experience. (London or Remote / Perm or Contract)
Join our team and lead the QA effort at DeskPRO. Your initial focus will be building a large acceptance test framework in codeception.
SHAREIGHT Full Stack Developer - London
SHAREIGHT are looking to add talented full-stack developers to their team. To gain a place in our team you should have solid experience building and maintaining complex software systems. Developers who apply creativity and passion to solve human problems with software and technology will fit right in with us. We work in an Agile way and value team players who can collaborate with others to deliver elegant solutions.
CMNTY is Looking for a Symfony2 PHP Developer!
CMNTY Corporation develops online communities. Our SaaS solutions will belong to your main task areas. You will be responsible for the architecture, planning and development of our products. You will implement new features, find and fix bugs and optimize code. Visit our Facebook page to learn more.
Developer for Performance Telecom
Performance Telecom require a developer, based near Durham, UK, to work on an exciting Customer Satisfaction system. This role would suit someone with experience as well as someone who is willing to learn new 'stuff'. Contact email@example.com with your CV/Resume and for more information. This is NOT a remote position.
DeskPRO is hiring Full Stack PHP Developer (Symfony/AngularJS) in London or Remote.
Join our small London based team (excellent remote workers considered as well) building a large PHP application where your work will have immediate impact on our millions of end users. Lots of interesting projects coming up including adding elasticsearch and memcached to our stack, writing a DeskPRO app for telephony based upon Twilio, integrating our software with other companies APIs, adding functionality to our phonegap mobile app as well as continuing the development of our core software platform.
Interesting Projects, Tools and Libraries
phpunit - apologies for the missing link in last weeks edition.
The PHP Unit Testing framework.
The easy way to learn web frameworks.
Simple data objects and enumerations in PHP.
Core of the project necessary for operation.
Simple PHP Library for RESTful APIs.
PHP classes and traits to facilitate domain driven design.
PHP class for batch file processing.
Simrace result reader for PHP.
Execute PhantomJS commands through PHP.
Cron manager for PHP.
A PHP library that turns any type of value into a human-readable string.
Elastica is a PHP client for elasticsearch.
Cloak is a library that takes a code coverage.
PHP Matrix data structure.
Standalone PHP 5.4 Controller layer.
Grunt survival pack.
Rapid workflow for project maintainers and contributors.
So, how did you like this issue?