|Hello, and welcome to your latest edition of phpweekly.
We have interviews and podcasts aplenty this week. The latest offering from Lately In PHP, discussing the roadmap of features for PHP 5.6; an interview with Maarten Balliauw, a technical evangelist with JetBrains; and an interview with Stefan Priebsch - Co-Founder and Principal Consultant at thePHP.cc. Hear what your favourite PHP experts have to say.
There are also lots of jobs advertised here this week, so if you're ready for a change of scene then take a look.
Have a great week, PHP fans.
Are PHP SuperGlobal Parameters Really That Big A Deal?
A new report out this week (PDF) from Imperva detailing the potential danger for attacks through vulnerable PHP SuperGlobal parameters suggests that organisations running PHP servers should ditch the use of these variables in application requests.
Using Procedural Code in PHP
Object oriented programming (OOP) in PHP has become increasingly popular since PHP 5 was released, and especially from PHP 5.3 onwards. Without doubt, writing a large application using OOP in PHP has a lot of advantages over using purely procedural code (and if you are new to PHP I strongly advise concentrating your efforts on OOP). But despite the advances PHP has seen in OO support, it is still a procedural language at heart and there are times when procedural is the way to go. Here are some examples...
Wow HHVM Is Fast......Too Bad It Doesn't Run My Code
On the HHVM.com blog, there's a post talking about the speed of the HipHop VM (from Facebook) but how it still doesn't support everything built into PHP (and the work being done to bring it up to parity).
Solving The PHP Internals Workflow
If you're not a subscriber to the php-internals mailing list, you may not know of several discussions happening right now. On of them relates to how the PHP project is currently run and includes suggestions from a wide range of folks for improvements. Phil Sturgeon has shared some of his own suggestions in a new post to his site
Building Realtime Web Apps with PHP
In part 2 of Phil Leggetter’s guide to realtime PHP apps, we take a lightning tour of the many options available to developers.
PHP Stream Notifications ❤ MongoDB
PHP Streams have several pretty nifty features that most people don't really know about; Filters, Wrappers, Context and Notifications. Documenting these is a bit difficult and getting the user to discover these features is even more problematic, as these things usually live outside of the normal path (function reference). Maybe I'll blog about these things in the future, but for now I want to talk about the Stream (context) Notifications - or more specifically; Stream Notifications in the MongoDB extension for PHP.
How To Make PHP Better
Many people seem overwhelmed over the recent exposure of some problems in the PHP internals. Anna Filina answers a few questions here for those who are worried about the state of PHP and provides a few ideas for improving things.
If PHP Ends Up Dead It'll Be Us Who Killed It
Brandon Savage writes - I read a very disappointing post by Anthony Ferrara called Rambling on Internals last week. It describes how frustrated Anthony has become with PHP’s internals mailing list, the process that PHP uses to select and create new features and the plain fact that there are many trolls on the PHP internals list who have their own agendas, not the agenda of the PHP project, at heart.
Tutorials and Talks
Installing v8js For PHP on a Mac
Run JS code inside PHP. Just... because :) I struggled for a while with this installation, so leaving a trail here for anyone looking.
Handling Global Data in PHP Web Applications
Russell Walker has a post on his site sharing some suggestions about effectively dealing with global data in your PHP applications - Almost every web application needs to handle global data. There are certain things that just have to be available throughout the entire code base, such as database connections, configuration settings and error handling routines. As a PHP developer, you may have heard the mantra 'globals are evil', but this naturally begs the question 'what should I use instead of global variables?'
Server-side React with PHP
On phpied.com Stoyan Stefanov has a new post showing how to do server-side React in PHP. React is a user interface library developed by Facebook and Instagram to make building UIs simpler.
Running Tasks in The Cloud with IronWorker
On the SitePoint PHP blog today there's a new tutorial showing you how to run tasks "in the cloud" using PHP and the Iron Worker service. The tutorial uses a Ruby-based CLI tool and this PHP Package to setup and execute the tasks. They walk you through the creation of a first task script and help you create the ".worker" file it needs to execute.
How To Get Laravel Set Up in a VM Using PuPHPet
On Reddit.com there's a new post from trymuchharder showing how to get a full environment - complete with Git, Composer, PHPUnit and an install of Laravel - up and running with Vagrant+PuPHPet. It's shared as a series of screencasts so you can follow along the whole process.
Installing SonarQube with Jenkins integration for a PHP project
In this second part of my Continous Integration setup I will detail the steps required to install SonarQube (previously called just Sonar, renamed to SonarQube with 3.6 release) and integrate it with the Jenkins server from the previous post so SonarQube will run a daily analysis of our PHP project. In the previous post I covered the installation of Jenkins on a CentOS server and integrated it with GitHub, so if you do not have Jenkins set up you might want to start there.
Using PHP DTrace on Oracle Linux
This post shows PHP and DTrace "dynamic tracing" in action on Oracle Linux. It follows my previous post on recent PHP patches to stabilise DTrace support.
Hashing Passwords with the PHP 5.5 Password Hashing API
Using bcrypt is the currently accepted best practice for hashing passwords, but a large number of developers still use older and weaker algorithms like MD5 and SHA1. Some developers don’t even use a salt while hashing. The new hashing API in PHP 5.5 aims to draw attention towards bcrypt while hiding its complexity. In this article I’ll cover the basics of using PHP’s new hashing API.
Al-Kashi PHP Statistical Package
Al-Kashi is a project that aims to provide a rich PHP package full of useful statistical functions for online business intelligence and data mining. Read this article to learn more about this PHP package and examples of its application.
|News and Announcements
WordPress Update Fixes Three Security Vulnerabilities
The open-source WordPress blogging platform has been updated to version 3.6.1, in order to fix a trio of security vulnerabilities.
Confoo 2014 Call For Papers - Last Chance to Submit!
ConFoo 2014 will take place at the Hilton Bonaventure Hotel in Montreal, Canada Feb 26 to 28th. Looking for web professionals to share their skills and experience. Submit your proposals between August 26th and September 22nd. ConFoo is a conference for developers that has built a reputation as a prime destination for exploring new technologies, diving deeper into familiar topics and experiencing the best of community and culture.
Ski PHP 2014 Schedule Announced
The Ski PHP conference (happening January 17th and 18th in Salt Lake City, Utah) has posted the schedule for next year's event.
Announcing thePHP Curriculum
Beginning in early 2014, we will introduce thePHP Curriculum to our international clients, your best opportunity to become an expertly trained Certified Web Professional or Certified PHP Craftsman. The International (English) version of thePHP Curriculum expands upon its successful implementation this year in Germany.
Building Testable Applications - February 24-25th 2014 in Montréal
This two-day training event will be held right before ConFoo. The attendees will learn how to design and implement testable applications with PHP. Each development step will be explained in-depth while a testable application is built, based on a detailed specification for a non-trivial web application that must deal with asynchronous processing and concurrency issues.
PHP Object-Oriented Solutions (by David Powers, published 10th September 2013)
With the surge of popularity of PHP 5, object-oriented programming is now an important consideration for PHP developers. This version-neutral book is a gentle introduction to object-oriented programming (OOP) that won't overburden you with complex theory. It teaches you the essential basics of OOP that you'll need to know before moving onto a more advanced level and includes a series of prepackaged scripts that you can incorporate into your existing sites with the minimum of effort.
PHP Town Hall - Episode #11: Bike Safety
Learn what happens when you wear high-heels on a bike and what can go wrong if you get into an unstable spin when you jump out of a plane. We also talk about code.
Lately in PHP Podcast - Episode #39: PHP 5.6 Roadmap and New Features
Now that PHP 5.5 stable versions have been released, it is time to plan the roadmap of features for PHP 5.6. This was the main topic discussed by Manuel Lemos and Cesar Rodas in episode 39 of the Lately in PHP podcast. They also commented about a new PHP core developer that was hired by SmugMug to work full time on PHP development, as a sort of sponsorship of the PHP project.
7PHP.com: PHP Interview With Maarten Balliauw Technical Evangelist at JetBrains
On 7PHP.com they've posted the latest in their series of community interviews. This time with Maarten Balliauw, a technical evangelist with JetBrains, maker of the popular PHP IDE PHPStorm.
Make Web Not War Interview
Back in March Stefan Priebsch was interviewed by Make Web Not War at Confoo. A video of that interview is now available here.
If you have a position that needs filling, let us know and we will include it.
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.
Junior PHP Web Developer to support charity clients at Fat Beehive in London
Are you personable? A problem solver? Passionate about web technology and interested in charity and not for profit clients? Fat Beehive are looking to hire a junior PHP web developer! We are excited to be looking for a proactive developer, a natural problem solver, who will enjoy working with our not-for-profit clients, and be an integral part of our team.
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 firstname.lastname@example.org 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.
Performance Telecom (UK) seek freelancer (Remote worker) - Python and PHP Developer
This position is primarily Python, but PHP skills are also required.
Interesting Projects, Tools and Libraries
A PHP library with a variety of string manipulation functions with multibyte support. Offers both OO method chaining and a procedural-style static wrapper. Compatible with PHP 5.3+. Inspired by underscore.string.js.
Bolt is a tool for Content Management, which strives to be as simple and straightforward as possible. It is written in PHP and uses either SQLite, MySQL or PostgreSQL as a database.
The DebugBar integrates easily into any projects and can display profiling data from any part of your application. It comes built-in with data collectors for standard PHP features and popular projects.
Pinba is an open source MySQL storage engine that acts as a statistics server for PHP. It uses the data received to analyse the performance of PHP apps and locate any problems quickly.
Search engine for websites using Google Custom Search Engine with a Google Site Search account.
Raven is a PHP client for Sentry (getsentry.com)
A PHP library for running timed tests. Simplifies the process of creating and running benchmarks. The library self-calibrates so that the framework itself is not counted in the amount of time it takes to complete any of the tests.
PHP 5.3+ library to push messages to a faye server.
Email building library which utilises swiftmailer. It enables the developer to send an email as plain/html version with automatic image detection/inline injection. It enforces template abstraction and offers injection of data.
A simple Dependency Injection library for PHP 5.3+. Jest looks to find the middle ground between the simplicity offered by tiny service locators like Pimple and the real dependency injection libraries like PHP-DI provide.
Simple PHP MVC system with a few tools.
`LINQ to Object` inspired DSL for PHP. Ginq is a DSL that can handle arrays and iterators of PHP unified.
Geolocation stack middleware that adds geolocation results to the request for subsequent middlewares by leveraging the Geocoder library.
An Object Oriented library to convert video/audio files with FFmpeg / AVConv.
A PHP SDK to work with DNSMadeEasy's REST API. This is a simple PHP library to work with DNSMadeEasy's v2.0 API. The operations are pretty low-level, although if required, I hope the community can work together to build a version that abstracts away most of the low-level operations.
So, how did you like this issue?