|As we come to the end of 2013 it has been quite a year for phpweekly.com. Founded in the spring, we have seen our newsletter subscription list grow from a very modest 7 in our first week, to an unbelievable 7800+ in the last edition of the year! We have been overwhelmed by the support shown to our humble offering, and cannot thank you all enough. May our list continue to grow and grow ;)
This week we have a special offer exclusively for phpweekly.com readers. Purchase a copy of Vic Cherubini's book "Expert PHP Deployments" and receive $2 off the price at the checkout with this discount code.
We also have the final instalment of Derrick Rethan's Contributing Advent series, ending on Christmas Eve. Having written 24 blog posts in 24 days, Derrick gives a recap of all the different things he has managed to accomplish in that time and advises what you can do to continue some of that work yourself.
May we take this opportunity to wish all of our readers a happy, peaceful and prosperous new year.
See you in 2014,
All the best,
Katie and Ade
We Are The 98.5% (and the 16%)
On November 4th the HHVM team went on a 3-week performance and parity lockdown. The lockdown officially ended on November 22th. Overall, this lockdown was a qualified success. Find out what happened.
Which is Lighter, Silex or Aura.Web Project?
Always remember that there is no such thing as “bloated” or “heavy” or “light”; there is only “heavier” or “lighter” or “more bloated” or “less bloated” in comparison to something else, writes Paul Jones.
High Quality PHP
The historical perception of PHP in the software development community has not been the best. Some think it is a language for non-programmers and tinkerers, generally resulting in software of questionable quality. From its beginnings as a simple scripting language for online guests-books, PHP has transformed itself in the last 15 years to support high-quality software development and enterprise deployment, and it has managed to do so without losing the roots of its initial success. In this article Benjamin Eberlei provides an overview on some of the different techniques and tools that are used in PHP today.
Tutorials and Talks
PHP and WMI – Dig Deep into Windows with PHP
There are many devices running a Windows operating system. Many of us who live in the nix based world have to work in this OS, or if we don't, we will, sooner or later. Besides the regular tools we can expect from a *nix system (say Apache, PHP, MySQL, C/C++ compilers, etc), Windows offers a set of unique features not present in any other OS, and WMI is one of them. In this article, we will address questions like: What is WMI? How do you use WMI with PHP?
Just over two years have passed since the last post about HHVM. What has changed in that time? Did anything? Let's see just how successful PHP's quest for performance was.
Provisioning Phalcon (and other tools) with Vagrant
Matthew Setter's last article on PuPHPet, last week on sitepoint, covered the easy GUI-backed creation of Vagrant VMs. PuPHPet is an absolutely awesome tool in getting up and running with a development environment really fast, and offers some very neat default options. In this tutorial, we'll make sure the Phalcon framework is installed by default when we run vagrant up. Pre-installing software on a Vagrant VM is called provisioning.
The PHP CachingIterator
Whilst writing his latest book, Cal Evans came across an interesting behaviour anomaly with CachingIterator. Learn here what he discovers.
Just-In-Time Debugging and PHP Exception Breakpoints with PhpStorm and Xdebug
In every project comes a moment where code stabilises and we don’t want to keep the debugger attached to our code all the time. Or maybe we just want to run our code and only attach the debugger when an error occurs or an exception is thrown. Meet Xdebug’s just-in-time (jit) mode and PHP Exception Breakpoints in PhpStorm!
Using Vagrant and Ansible For Distributing Educational Course Virtual Machines
Alex Bilbie has posted a guide to the steps he follows to create virtual machines for an educational course using Vagrant and Ansible.
Global Installation of PHP Tools with Composer
The Composer package manager, along with the Packagist repository site, is quickly becoming the defacto PHP package management system. It has recently come to light that you can install packages globally rather than locally into your project. This is most useful for development tools, such as PHPUnit, which are then available everywhere. To install a composer package globally, you run the usual require command, but with the addition of the global modifier.
Contributing Advent 24: Wrapping Up!
Having written 24 blog posts in 24 days, Derrick Rethans gives a recap on all the different things he has managed to accomplish in that time and advises what you can do to continue some of that work yourself.
|News and Announcements
PHP Framework of Choice
Bruno Skvorc is doing a survey on the most used PHP frameworks, with the results to be published in an article at the end of the week. If you would like to participate you need to have professional experience in at least two frameworks.
Joomla! 3.2.1 Released
The Joomla! Project and the Production Leadership Team are proud to announce the release of Joomla! 3.2.1 which resolves a significant number of issues and bugs.
Nomad PHP US Chapter - January 23rd 2014 20:00 CST (03:00 CET December 24th)
Understanding The Helter Skelter World of Testable PHP Applications. The world of testable PHP applications can seem confusing and the members of the community are often cult-like in their devotion to the tools and practices. What you need is a guide who is as crazy as the cultists but can explain the concepts to you without seeming like One Of Them. In this talk, long-time grumpy programmer and testing advocate Chris Hartjes goes over the basics of the concepts and tools that he uses every day to turn unruly PHP code into testable applications that seem like they are snapped together using lego blocks.
Nomad PHP European Chapter - January 23rd 2014 20:00 CET
A Stitch In Time Saves 9; or, Solving the N+1 Problem. When dealing with databases, developers frequently run into the N+1 problem, in which they populate domain objects via queries in loops. This causes terrible performance drags. There is a solution in plain PHP that makes the number of queries constant to increase performance overall. This talk by Paul Jones shows typical PHP code involving the N+1 problem, then shows how to solve the problem in plain PHP (that is, without a framework or ORM) It also includes editorialising about the origins of the N+1 problem in the developer mindset.
Expert PHP Deployments (by Vic Cherubini, published December 15th) - exclusive discount code
Expert PHP Deployments will teach you advanced concepts on how to deploy any PHP application using Vagrant, Phing, Capistrano, Nginx and PHP-FPM. This book contains over five years of PHP application deployment experience. From deploying open source software like Wordpress or custom Symfony or Zend applications, Expert PHP Deployments contains all of the information you will need to handle the most cumbersome of deployment tasks. Purchase this book and receive a $2 discount at the checkout, using discount code phpweekly.
Voices of the ElePHPant
Listen to this recent podcast interview with Jeff Carouth, organiser of the B/CS PHP user group.
Pro Drupal as an Enterprise Development Platform (by Jamie Kurtz and Thomas Besluau, published 18th December 2013)
How developers can save themselves time and money and build their applications faster, with fewer bugs, by using the Drupal CMS as a foundation for their projects. The days when custom client applications were built entirely from scratch are over. Today, it makes business sense to use a flexible, highly scalable framework such as Drupal, Joomla or DotNetNuke as a foundation. This book focuses on why Drupal makes a particularly strong choice for the majority of developers.
PHP Objects, Patterns and Practice (by Matt Zandstra, published 18th December 2013)
The book begins by covering PHP's object-oriented features. It introduces key topics including class declaration, inheritance, reflection and much more. These provide the fundamentals of the PHP's support for objects. It also introduces some principles of design. This edition introduces new object relevant features such as traits, reflection extension additions, callable type hinting, improvements to exception handling and many smaller language enhancements.
Practical PHP and MySQL Website Databases: A Simplified Approach (by Adrian West, published 18th December 2013)
A project-oriented book that demystifies building interactive, database-driven websites. The focus is on getting you up and running as quickly as possible. In the first two chapters you will set up your development and testing environment, and then build your first PHP and MySQL database-driven website. You will then increase its sophistication, security and functionality throughout the course of the book. The PHP required is taught in context within each project, so you can quickly learn how PHP integrates with MySQL to create powerful database-driven websites.
Persistence in PHP with the Doctrine ORM (by Kevin Dunglas, published 18th December 2013)
Persistence in PHP with Doctrine ORM is a concise, fast and focused guide to building a blog engine, with advanced features such as native queries and lifecycle callbacks.
If you have a position that needs filling, let us know and we will include it.
PHP Job in London with Signkick
Join a startup that is revolutionising the $33b outdoor advertising market.
Junior Developer for Performance Telecom, Newcastle Based.
Performance Telecom are looking for a Junior developer, based in Newcastle upon Tyne, to work on exciting big data and telecoms projects. This role would suit a recent graduate, though also someone who can drive and has access to their own transport. Contact email@example.com with your CV/Resume. This is NOT a remote position.
Developer at Sailthru (New York City)
We're searching for a talented developer who can take the challenge of scaling architectures and dive into leading technologies. You'll have the opportunity to work with a great team, in the heart of New York City and with great benefits such as working from home. Send your resume to Federico, firstname.lastname@example.org.
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 memached 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.
PHP (Drupal) developers at Torchbox (Bristol and Oxford, UK)
Passionate about PHP, delirious about Drupal and want to work on a wide variety of challenging yet fun projects for fantastic clients? If yes, then Torchbox would love to hear from you! In return, we can offer an enviable working environment (country park or buzzing Bristol), a competitive salary, all the usual kit and sometimes even a ski trip.
Full Stack Developer
Major television production company seeks an experienced web developer to join its digital division. The ideal candidate possesses a deep expertise and abiding love of web development, an incredible track record of producing stellar web applications (with a long list of URLs & GitHub repositories to prove it), a near-supernatural work ethic and a fantastic sense of humour.
Machine Learning / AI skills (project based)
Inovica are looking for someone to work with them on detecting ecommerce products on sites and extracting relevant information. In the first instance please email email@example.com stating the experience you have in this field. They don't have a job description online but will reply to every email they receive.
Message Digital Design Ltd is Hiring a Web Developer (PHP)
We are looking for an experienced developer to work in our spacious offices in central Brighton, helping to deliver high-quality websites, e-commerce and online systems to a wide range of clients. At Message we give a damn about building the web the right way, and the successful applicant will too.
Ballers Bridge is Hiring a Sr. Yii Developer
We are looking for a motivated and outstanding candidate to lead our product development. The ideal candidate is an experienced problem solver, quick thinker/learner, self-motivated and not afraid of challenges.
PHP Engineers for Bright.Com in San Francisco
We are looking for PHP engineers to join our growing team! The ideal candidate is language agnostic, and can work with both scripting languages (such as Python and PHP) as well as strongly typed languages (such as C++ and Java), and has a passion for taking an idea and exploring, tinkering, debating, and demonstrating the fastest, most efficient, flexible and scalable implementation approaches. Experience working with traditional SQL databases as well as newer technologies, indexes and data stores is key (such as Solr, ElasticSearch, Redis, or Neo4j), and you must be comfortable using Linux and other open source technologies.
Senior PHP Developer in Bucharest, Romania
We are searching for a passionate PHP developer who will be part of a team of senior programmers and experienced testing engineers, directly involved in technical development projects, using Agile Scrum as methodology.
Freelance Dev Leads
A concierge service for your freelancing business. Whilst this is a paid service for developers Glen, who runs this site, provides good solid curated freelance jobs to his list. We have used it ourselves and recommend giving it a go.
Interesting Projects, Tools and Libraries
A beautiful way to use powerful Linux/Unix tools in PHP. Easily and logically pipe commands together, capture errors as PHP Exceptions and use a simple yet powerful syntax. Works with any command line tool automatically.
A minimal PHP client for generating Thumbor URLs.
Unofficial Buffer SDK for PHP. This package is compliant with PSR-0, PSR-1 and PSR-2.
A modular MVC framework.
Cache wrapper library in php.
Hahns is a micro framework for PHP 5.4 and higher.
Chute is a library for doing MapReduce on iterators (Traversable) without any external dependencies.
This is a PHP port of the official LESS processor http://lesscss.org and should produce the same results as LESS 1.4.2.
PHP command-line interface.
An advanced, compact and lightweight MySQL database wrapper library, built around PHP's mysqli extension
This library is a pure PHP implementation of the AMQP protocol. It's been tested against RabbitMQ.
Small PHP library for transliteration
PHP 5 MVC Framework
A PHP framework for the Sauce Labs REST API
So, how did you like this issue?