|Greetings, and welcome to another edition of PHP Weekly.
The big news this week is that the PHP Development Team has announced the two latest PHP releases - 5.5.2 and 5.4.18. Both are available immediately.
I hope you enjoy today's newsletter. All comments, criticisms and lavish praise welcome ;)
I'm always on the look out for good PHP articles to include, so whether you write them or read them, please email me with them.
Just Some Lovely PHP Code Really.
The League of Extraordinary Packages has one driving mission: to develop useful and usable PHP packages of the highest quality possible that solve real problems, that are either not being solved in PHP already, or are not following our determined rules for quality. We're using modern tools, standards and practices to distribute, test and strengthen the code.
Progress in the PHP-FIG
The PHP Framework Interoperability Group (PHP-FIG) has been around for 4 years, and it's produced 4 PSR's, which to some is a sign of inevitable doom or something. To those "in the know" the future is looking bright, and I'd like to let you all know what is going on.
PHP And MySQL Scaling: Preparing A Startup For Growth
MySQL and PHP are an excellent foundation for startups that plan to scale their infrastructure from the inception of their business.
Open-Source PHP Gets Updates for Stability, Security
The open-source PHP language is one of the most widely deployed technologies on the Web today, powering millions of Websites (including eWEEK). This past week, two important updates were issued for PHP, providing both security and bug fixes. Like many things in the open-source world (and technology in general), there isn't just one version of PHP that is currently in use—in fact, there are now at least three main stable releases, including PHP 5.5, 5.4 and 5.3. The new security updates are for the 5.5 and 5.4 branches.
10 Best PHP Tools for Developers
No doubt PHP is one of the most popular languages amongst developers and aids them in creating innovative and dynamic web applications. PHP developers keep looking for useful and handy php tools which they can use to make their workflow and web related tasks easier, faster, and better. There are scads of php tools available over the internet for php developers, but finding an appropriate php tool is quite an arduous task and demands effort and time. For saving your precious time and endeavours, I have gathered some of the best php tools for developers that would help you with your development tasks and let you create innovative and useful web applications.
Tutorials and Talks
Using Facebook's Realtime Updates and Subscription API
Facebook’s real-time updates allow us to declare our interest in certain information about our users and have Facebook notify us when it changes, instead of us continually querying the API. Although Facebook recommends we retain a minimum amount of user data, it’s prudent to maintain a balance. Indeed, it makes more sense to store certain information, such as a user’s name and her list of friends, than to continually query for it. Subscribing to information updates helps ensure that our data always stays current.
Switching From TDD to BDD With Behat and Symfony2
Recently I started a small extra project with a smart fellow from my local PHP User Group. Since the project was quite simple and both of us were willing to learn something new, we decided to give BDD a try. In the PHP world BDD means Behat, Mink and PHPSpec.
Dependency Injection as a tool for testing
Dependency injection is a simple design pattern that provides several benefits, one of which is the ability to vastly improve your unit test suite. In this post I am going to be looking at how this is done and how it relates to certain testing methodologies.
Accessing private PHP class members without reflection
Marco Pivetta writes - Several weeks ago I was working on a very tricky issue on ProxyManager. The problem is simple: instantiating ReflectionClass or ReflectionProperty is slow, and by slow, I mean really slow! The reason for this reasearch is that I'm trying to optimise a "hydrator" to work with larger data-sets by still keeping a low initialisation overhead. PHP 5.4 comes with a new API for Closures, which is Closure#bind().
PHP Static Analysis in Sublime Text
Coding Standards have been around for the longest time and recently they're starting to become more widespread in PHP. While learning Python I really enjoyed how Sublime Text 2 would shout at me for using too many empty lines, using tabs instead of spaces and even things like declaring unused local variables, importing modules that were never used, etc. This was pretty cool, and I was soon writing beautiful Python code without any concern over which way things should be done. I've been doing this with PHP for the last year, but trying to get a new-hire going with this stuff was hard. We smashed through it, taking notes, so now I've written it up for you guys.
Using Composer in an Existing Project
I've got an application (okay, scratty PHP script) which glues together some API things and shows them onto a dashboard for me. Recently, I updated it to use Guzzle as the consuming client, since twitter now needs me to authenticate (I wrote about that if you're interested), and I used Composer to bring the new library in. It was very simple so I thought I'd share it as it's quite minimal example, and those are my favourite kind.
New in Symfony 2.4: Show logs in console
I'm happy to announce a new feature that will be available in Symfony 2.4: You can automatically show your log messages in the console output of commands. This eases giving feedback in your console commands dramatically. Before I show you how to use this feature, let's take a look at what problem it solves.
Speedup Symfony2 on Vagrant boxes
Using Symfony2 inside a Vagrant box is considered to be very slow, even when using NFS. I can confirm the experience and know many others that reported the same.
|News and Announcements
PHP 5.5.2 Released
The PHP development team announces the immediate availability of PHP 5.5.2. About 20 bugs were fixed, including security issue in OpenSSL module (CVE-2013-4248). All users of PHP are encouraged to upgrade to this release.
PHP 5.4.18 Released
The PHP development team announces the immediate availability of PHP 5.4.18. About 30 bugs were fixed, including security issues CVE-2013-4113 and CVE-2013-4248. All users of PHP are encouraged to upgrade to this release.
PHP Conference Argentina 2013
4-5th October in Buenos Aires. PHP Conference Argentina is the largest developer conference in Argentina, and one of the main IT events in Latin America, featuring an impressive line up of seasoned speakers.
Wordpress 3.6 "Oscar"
The latest and greatest WordPress, version 3.6, is now live to the world and includes a beautiful new blog-centric theme, bullet-proof autosave and post locking. Also a revamped revision browser, native support for audio and video embeds and improved integrations with Spotify, Rdio, and SoundCloud.
Reading and Viewing
PHP Quick Scripting Reference (by Mikael Olsson published 14th August 2013)
The PHP Quick Scripting Reference is a condensed scripting code and syntax reference to the PHP scripting language, the most popular Web scripting language in use today. It presents the essential PHP script in a well-organised format that can be used as a handy reference.
Handbook of PHP Syntax (by Mikael Olsson published Oct 2012)
ProgrammingVideoTutorials.com (PVT) is an online education library for beginning programmers. Their highly focused tutorials explain only what is relevant and practical without any unnecessary repetition or theory. This book presents PVT's PHP tutorial in a convenient and easy-to-use format.
PHP Advanced and Object-oriented Programming (by Larry Ullman published Sep 2012)
Readers can take their PHP skills to the next level with this fully revised and updated PHP Advanced: Visual QuickPro Guide, Third Edition! Filled with fourteen chapters of step-by-step content and written by bestselling author and PHP programmer Larry Ullman, this guide teaches specific topics in direct, focused segments, and shows how PHP is used in real-world applications.
Building Modern Web Applications
Steve Francia gave this presentation to a packed house at DevCon5 in NYC July 24th. DevCon5 is a web developers conference and this year it focused on HTML5.
If you have a position that needs filling, let us know and we will include it.
Performance Telecom (UK) seek freelancer (Remote worker) - Python and PHP Developer
This position is primarily Python, but PHP skills are also required.
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.
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.
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.
Interesting Projects, Tools and Libraries
A Guzzle client for Encoding.com's XML API.
Flexible CRUD / Scaffolding for CakePHP. Crud was built to be scaffolding on steroids, and allow developers to have enough flexibility to use it for both rapid prototyping and production applications, even on the same code base - saving you even more time. It is very fast to install, 2 minutes tops, is very flexible and has tons of configuration options.
AMP: Asynchronous Multiprocessing for PHP Servers and Applications
AMP parallelizes asynchronous RPC-style function calls to job servers and worker process pools. Its goal is to trivialise distributed PHP processing and failover by eliminating the difficulties of threading and non-blocking semantics. AMP's OS-agnostic functionality is available in both Windows and POSIX environments and requires no additional PHP extensions.
Simple Access Control List (ACL) for PHP.
The elefunds SDK for connecting to the elefunds API via PHP. This SDK is especially helpful for shop implementations, check out the /Examples and /Documentation Folders.
Library for Lithium PHP web framework that provides an alternative to its built-in data models.
Wrapper for shared memory and locking functionality across different PHP extensions.
A PHP library for dealing with the Pingdom REST API for you to automate your interaction with the Pingdom system.
aip - Application Server in PHP
Web server interface for PHP, inspired by Ruby’s Rack and Python’s WSGI. It provides a common API for connecting PHP frameworks and applications to webservers. The main idea is that your app, if built for this protocol, will be able to preload resources, preconnect to databases and respond to requests really fast.
A simple and extensible data mapper library for PHP and MySQL
Ardent - a general library for PHP
While developing and helping others develop PHP applications I noticed the trend to use PHP's arrays in nearly every task. Arrays in PHP are useful but they aren't well suited to object-oriented programming since they are not objects. I made this library to make writing object-oriented code easier.
A PHP client library for statsd.
This project was created in order to provide project skeleton when starting a new PHP project.
Provides a clean readable PHP API to the Zoho Rest API
Find Us, Follow Us, Promote Us :)
With Special Thanks
Thanks this week to those PHP fans who have aided and assisted with this newsletter. We couldn't produce it without you, and all help is greatly appreciated.