|Welcome to our latest edition of phpweekly.com. This week's newsletter is bursting at the seams with tutorials, podcasts and libraries aplenty.
For all of those football fans eagerly awaiting the World Cup 2014 last 32 teams groupings, to be announced tomorrow, php[architect] has published a simplified simulator to generate potential groups in less than 30 lines of code.
Paul M Jones discusses the gruelling 8 months it has taken to get PSR-4 passed and Derick Rethans kicks off his Contributing Advent project, where he will focus on resolving a bug every day of the advent period.
Enjoy your read ;)
Quicker, Easier, More Seductive: The Difference Between Factories, Registries and Service Locators
In last week’s episode of this unexpected series, Paul M Jones wrote “Go ahead and use Service Locator, but make sure each Locator contains only one type of object. This condition of restraint will keep a single locator from becoming a menace.” The “only one type of object” constraint generated some discussion regarding factories and registries.
Fund The Development of Your Website Selling Shares via Ranktrader
Ranktrader is a site that works like the stock exchange for websites. It is a new concept that lets website owners sell shares and earn money to fund the development of their sites.
Becoming a PHP Professional: The Importance of Others
This is a partial follow up to Bruno Skvorc's previous article about becoming a PHP professional, but now with a focus on mentorship. He is interested to hear opinions on his ideas and impressions, cultivated over his years in the industry.
PSR-4 “Autoloader” Has Passed
Paul M Jones wrote up the initial “Towards A Package-Oriented Autoloader” essay on 26 Mar, and the first formal proposal document on 03 Apr. Counting from the date of that first formal proposal, it has taken exactly 8 months of discussions, one botched vote, one rescinded vote, an entirely new FIG workflow, and four or five rewrites to get PSR-4 passed. Maybe 8 months doesn’t sound so long when you look back on it, but while you’re in the middle of it, it’s interminable.
Tutorials and Talks
Useful PHP Snippets
PHP is the most widely used language when it comes to server-side programming. Whether you are a beginner or an advanced programmer and you use it in your work, this article will be very useful for you. A small collection of useful and interesting php snippets designed as finished functions, that can be easily transferred into a class or library file for later use.
How to Create an RSS Feed Using PHP and PDO
A great thing about the recent developments in social media and social networking, is the ability to easily distribute and share great unique content. But how can you get your content listed and indexed across the web?
10 Steps to Installing PHP 5.5 with PECL Memcached on CentOS 6/RHEL
On the moojuice.net website this week - This was a tricky one, although not as convoluted as getting memcached compiled on OSX. CentOS.6 does not come with PHP 5.5 so you have to look elsewhere. I don't trust any repositories other than EPEL and IUS. PHP 5.5 is available in the IUS repository, which is fantastic, but the repository is lacking a php55u-pecl-memcached package to easily install the extension. This article shows what you need to do to get it working.....
Contributing Advent 1: Xdebug and Hidden Properties
Last week Derick Rethans announced a new seasonal project, where he would be making an open source contribution for each day of the period. Here is the first contribution, a bug from Xdebug "Hidden Property Names Not Shown". Check his website daily for each new update.
Decoupling The Framework
We spend a lot of time discussing and analysing the features and merits of several frameworks, trying very hard to make sure we find the perfect one to use for our project. Rightfully so: picking the wrong framework can lead to a slew of issues down the road in terms of maintenance and scalability. But what if we didn't have to? What if the effect of picking the wrong framework could be negligible? Read Kristopher Wilson's article for all the answers.
How to Dynamically Localise TinyMCE
One-click App Deployment with Server-Side Git Hooks
This post shows the user how to deploy a simple website using no more than a git post-release hook. It covers just enough background information so that the reader can go further and expand their knowledge as their time permits.
Installing PHP 5.5 and Apache 2.4 on Windows 8
This tutorial shows how to install PHP 5.5 and Apache 2.4 on a Windows machine. This should work on any Windows operating system that PHP 5.5 supports.
Custom DTrace Probes for Perl on Oracle Linux 6
A few years ago, Chris Andrews developed the libusdt library for dynamic language developers to publish custom DTrace providers easily. Last September, Chris adapted his library so that it works with Oracle Linux 6 DTrace and the Unbreakable Enterprise Kernel 3. This post explains how to use Perl Devel::DTrace::Provider module in this context.
Create a RESTful API with Apigility
On the 7th October 2013, Zend introduced Apigility to the world. Once you get beyond the name, you see a very interesting project that allows you to easily create a web service without having to worry about the nitty-gritty details. Which details? Well, Apigility will handle content negotiation, error handling and versioning for you, allowing you to concentrate on your application. In the recently tagged 0.7 release, Apigility also supports both HTTP and OAuth2 authentication. In this tutorial we will create a simple REST API that allows us to view a list of music albums, showing how to start using Apigility and how to publish an API using this tool.
Translation and Text-to-Speech with Microsoft Translator
Text to speech is a popular technique used by many websites to provide their content in an interactive way. The generation of artificial human voice is known as Speech Synthesis. Even though it's highly popular, there are very few speech synthesis services, especially when looking for those free of charge. Microsoft Translator is one of the services we can use to get a speech service with limited features. In this tutorial, we are going to look at how we can use Microsoft Translator API to translate content and then make audio files using said content.
Clustering in PHP: Session Management
In the first two parts of this series (Introduction to Clustering in PHP and Clustered File Systems and PHP) we explored using the file system in various configurations to help cluster PHP. This final installation will explore another method that doesn't utilise PHP's session management in any way.
A Simplified World Cup Draw Generator
If you’re a football fan, your anticipation for next year’s World Cup in Brazil is growing. This Friday, we will know the groupings for the 32 teams that will participate in the finals. php[architect] has put together the (simplified) simulator shown in the gist below. Using PHP’s shuffle() function and SPL iterators, we can generate potential groups in less than 30 lines of code.
|News and Announcements
Nomad PHP European Chapter - December 19th 2013 20:00 CET (13:00 CST)
Matt Frost presents Mocking Dependencies in PHPUnit. Writing good unit tests is nearly impossible with out being able to mock your dependencies. This talk will cover why you should mock, when you should mock and a practical approach on how to mock. Learning to mock will add value to your tests as well as your application.
Nomad PHP - December 19th 2013 20:00 CDT (03:00 CET December 20th)
Sara Golemon presents Scaling PHP With HipHop. HipHop is the Open Source PHP language compiler and runtime designed and used by Facebook. HipHop offers a significant speed improvement over the official PHP runtime and supports most of its core features. This session will provide an introduction to how and why to use HipHop over PHP and the benefits it offers.
PHPBenelux Conference 24-25th January 2014, Antwerp
The conference, tutorials and Friday night social event will take place at Hotel Ter Elst in Antwerp (Belgium). Don’t worry if you haven't yet bought your tickets. The “early bird” discounted tickets are just about sold out, but normal price tickets will become available after December 6.
WordPress 3.8 RC1
We’re entering the quiet but busy part of a release, whittling down issues to bring you all of the new features you’re excited about with the stability you expect from WordPress. There are just a few days until the “code freeze” for our 3.8 release, which includes a number of exciting enhancements, so the focus is on identifying any major issues and resolving them as soon as possible.
PHP Town Hall Episode #16 - Laravel 4.1, Go and the Vagrant Fistfight
Taylor Otwell returns for a second time and regular guest Zack Kitzmiller turns up to coerce Taylor into letting him speak at LaraCon 2014. Taylor was the first guest ever had on PHP Town Hall talking about his plans for Laravel 4 before it was even released, so this gives us a great opportunity to look back on the year and see how things have gone. They discuss the changes to Laravel and it’s community and discuss how various changes in the PHP ecosystem (like PHP 5.3 support becoming less of a demand) could effect Laravel 4.1. They also argue about Go and fight about Vagrant and Chef for a bit.
Elephant in the Room PHP Podcast Episode #4 - Testing Resistance
In this episode, Konstantin and Mathias discuss some of the reasons the team have trouble getting started with testing. They talk about how frameworks, and especially their documentation, do little to make it easier.
Data Massage: How Databases have been Scaled from One to One Million Nodes
Despite the CAP theorem, databases have been scaled from one to one million nodes. Globally distributed, highly available and fast. Databases supporting ACID transactions. How? A story and slides from a three hour long workshop at the PHP Summit 2013 (Berlin) by Ulf Wendel.
WordPress 3.5 Complete 3rd Edition: Third Edition (by Karol Krol, published 25th November 2013)
"WordPress 3.5 Complete: Third Edition" is a practical guide for anyone who wants to start their journey as a web developer. This WordPress book takes you through a step-by-step process of planning out and then building your site.
The Definitive Guide to MongoDB: A Complete Guide to Dealing with Big Data using MongoDB 2nd Edition (by David Hows, published 6th November 2013)
The Definitive Guide to MongoDB, Second Edition, is updated for the latest version and includes all of the latest MongoDB features, including the aggregation framework introduced in version 2.2 and hashed indexes in version 2.4. MongoDB is the most popular of the "Big Data" NoSQL database technologies, and it's still growing. David Hows from 10gen, along with experienced MongoDB authors Peter Membrey and Eelco Plugge, provide their expertise and experience in teaching you everything you need to know to become a MongoDB pro.
If you have a position that needs filling, let us know and we will include it.
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, email@example.com.
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 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 client driver for the RethinkDB query language (ReQL).
Kengai is a simple but powerful configuration tool for your PHP applications.
Annotations is a very simple PHP library that lets you create APIs that react to metadata with great flexibility and no headache.
PHP Library based on Guzzle to consume Bit.ly API
A simple wrapper to parse and save csv files in PHP 5.4+. This package is compliant with PSR-0, PSR-1, and PSR-2.
Swift Mailer is a component based mailing solution for PHP 5.
CharcoalPHP is NOT a MVC-based web framework but a flexible task oriented web framework.
raven-php is a PHP client for Sentry.
Snapsearch Client PHP Generic is PHP based framework agnostic HTTP client library for SnapSearch.
PHP Classifier is a text classification library with a focus on reuse, customisability and performance. Classifiers can be used for many purposes, but are particularly useful in detecting spam.
Official low-level client for Elasticsearch. Its goal is to provide common ground for all Elasticsearch-related code in PHP; because of this it tries to be opinion-free and very extendable.
Composer-compatible translation framework for PHP 5.3+
This library provides an extension to the Standard PHP Library.
An Object Oriented library to convert video/audio files with FFmpeg / AVConv.
So, how did you like this issue?