|Here we are again PHP fans, with your latest edition of phpweekly.com.
We start with a great special offer. 25% off the purchase price of PHP Beyond The Web by Rob Aley, with a limited offer coupon exclusively for readers of phpweekly.com! See our Reading and Viewing section for details.
Two podcasts from dev/hell this week, one recorded before True North PHP, the other after. Plus the 3rd offering from the Elephant in the Room podcast team, discussing all kinds of Test Driven Development.
What is Next For Symfony2?
Lukas Kahwe Smith takes a look at the popular PHP framework Symfony2. He asks the question what is next for the framework and where should the community next direct its attention?
Quicker, Easier, More Seductive: Restraining Your Service Locators
Paul M.Jones made a passing comment last week about service locators - "When it comes to Inversion of Control, a Service Locator is like the Dark Side of The Force: quicker, easier and more seductive. But it gets you into trouble later on. Go with Dependency Injection whenever you can instead." In this article he elaborates further.
As a project for this year's advent, Derek Rethans will be making an open source contribution for each day of the period. Focusing on resolving bugs in Xdebug, PHP's DateTime extension and OpenStreetMap, he invites readers to contribute to their favourite Open Source projects. Want to get involved?
Are TableGateways Worth it in Zend Framework 2?
Matthew Setter asks "Are TableGateways too hard to implement in Zend Framework 2? Are they too hard to justify the effort? That's what I was asked recently in a Twitter conversation. For me they're not. For me they are well worth the effort". Matthew has written this post to show why they're not and how they bring great flexibility, when implemented correctly.
The Fall of PEAR and the Rise of Composer
Ben Ramsey talks about package management in the PHP community.
Tutorials and Talks
Using PHP Streams Effectively
In a previous article from Sitepoint several months ago, we discovered the basics of PHP streams and how powerful they are. In this tutorial we are going to learn how to use this power in the real world. First we will learn how to build custom filters and attach them to a stream, before packaging filters inside a document parser application.
Find and Correct Misspelled Words with Pspell
Every site could do with a search function to indicate misspellings if no or too few results have been found. PHP's Pspell module allows for checking the spelling of a word and suggesting a replacement from it's default dictionary, or from a customised dictionary.
Imagick vs GD
If you want to create a thumbnail, apply a filter to an image or transform it in any other way, you will have to employ an image processing library in your PHP application. It means that you will probably choose GD or ImageMagick. But which one supports a wider range of image formats? Maybe one of them is slower than the other? What other criteria should be taken into consideration when choosing the right library? Read this article to find out.
Automated Testing with Selenium2 and PHPUnit
Selenium2 is a software testing framework for web applications. This tutorial focuses on automating browser testing using Selenium2.
Battle of the Autoloaders: PSR-0 vs PSR-4
If you've gone past the beginner stage in your PHP training, you've heard of PSR-0 - an autoloading standard that defines ways to automatically include PHP classes in your code. When Composer showed up and took the PHP package management world by storm, things changed. Due to some of its rules, folders often duplicated and became too deep when looking at PSR-0 class installations via Composer. Therefore some highly qualified PHP devs got together and put together a suggestion for a new standard: PSR-4.
Google App Engine and PHP: Getting Started
It's been a while since Google announced PHP Support on Google App Engine. This article series will take you through all the necessary steps in getting your app up and running on GAE. This tutorial uses PhpStorm which supports GAE projects out of the box, but you can use any IDE of your choice.
Beyond Clean Code
This is the 4th post in Anthony Ferrara's "Beyond" series. The three previous posts focused on reimagining OOP and questioning some of the core beliefs that we have come to take for granted. This one is slightly different, in that he talks about another angle of writing code: the process itself. People always talk about how code should be clean, but how do you write clean code?
Deploying a Laravel Application Using Capistrano
So you've just built a fancy web application and you're planning to put it online. This can be done in many ways. This article covers one approach to deploy your backend system to your production server. It will go through the following steps through the example of a Laravel application, but this can be applied to any other language or technology.
The Repository Design Pattern
The Repository Design Pattern is one of the most useful and widely applicable design patterns ever invented. Any application has to work with persistence and with some kind of list of items. The problem that all of these list management logics have in common is how to connect business logic, factories and persistence.
|News and Announcements
WordPress 3.8 Beta 1
The first Beta of the 3.8 is now available. The next dates to watch out for are code freeze on December 5th and a final release on December 12th.
Joomla! 2.5.16 Released
The Joomla Project is pleased to announce the immediate availability of Joomla 2.5.16.
Drupal 7.24 and 6.29 Released
Drupal 7.24 and Drupal 6.29, maintenance releases which contain fixes for security vulnerabilities, are now available for download.
php.net Modern Web Theme Goes Live!
The PHP web team are delighted to announce the launch of the new web theme that has been in beta for many months.
PHP Beyond The Web (by Rob Aley, out now) - 25% off Coupon Exclusively for subscribers to phpweekly.com!
Ever get the feeling that PHP could be useful for more than just websites? "PHP Beyond The Web" by Rob Aley is a new book that will show you how to write CLI scripts, system daemons, desktop software and more, all using your existing PHP skills. For one week only PHP Weekly News readers can save 25% by using coupon code ohSoVytlOEal at https://leanpub.com/php (valid until 6th December).
Elephant in the Room PHP Podcast Episode #3 - Schools of TDD
In this episode Konstantin and Mathias discuss the difference between fakes, stubs, mocks and spies; testing the outcome of an action; testing the communication between objects; Kent Beck-style classical TDD and the London School of TDD, with GOOS-style mockist testing.
dev/hell Podcast - Episode 37 Jets V Sharks
Recorded before True North PHP, this episode features Paul M.Jones, creator of the Solar framework and Aura component library. With a broad range of topics including dependency injection and human behaviour in tribes.
dev/hell Podcast - Dark Secret Branding
A second offering from Chris and Ed, this one recorded after True North PHP. This episode features a chat with web developer Jonathan Snook, discussing Twitter application development among other things.
Learning FuelPHP for Effective PHP Development (by Ross Tweedie, published 21st November 2013)
FuelPHP was one of the first frameworks built for PHP 5.3. It makes use of more advanced features of the language to allow you to focus on delivering features and code for your project. This practical guide will show you how to use FuelPHP to create projects quickly and effectively.
PHP Error Reporting - How To Do It Right (by Jay Docherty, published 19th November 2013)
This book gets stuck into how do PHP error reporting well, with practical examples and downloadable code. It also takes a broader look at strategies and best practices.
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
RedBeanPHP is a lightweight, configuration-less ORM library for PHP.
Sentry is a PHP 5.3+ fully-featured authentication and authorisation system. It also provides additional features such as user groups.
The Symfony PHP framework. Symfony2 is a PHP 5.3 full stack web framework.
The Iniscan is a tool designed to scan the given php.ini file for common security practices and report back results.
A framework agnostic PHP package that contains _extensions_ and helpers for the PHP primitive types (strings, numbers, array etc). It also contains common interfaces for _new_ types like collections etc.
A simple, streamlined PHP user-agent parser.
Better markdown parser for PHP.
MXUrlParser-PHP is capable of parsing a complete URL and extracting some parts of it like the URL and some domain parts.
Mongator is an easy, powerful and ultrafast ODM for PHP and MongoDB.
Instantiates a User Object, providing access to User Profile and other System data.
Simple clean API for PHP applications to use with logging.
Fully tested minimalistic PHP template engine. Include the class, set your templates location and start rendering.
REST Request Manager in PHP (using php class)
The Qafoo ChangeTrack tool allows you to track changes in classes and methods throughout the history of a PHP project.
So, how did you like this issue?