|Hello, and welcome to another edition of phpweekly.
We have a mixed bag for you this week, including announcements from Google, WordPress and Joomla, and two PHP blogs.
The first is Episode #40 from an old hand, Lately in PHP, discussing more new features for PHP 5.6. The second is brand new from Elephant in the Room. In this, their very first episode, they discuss a number of topics, including the importance of design and caching.
Enjoy your weekend, catch up next week.
PHP on Google App Engine Now Generally Available
The search giant has announced unfettered support for one of the world's most popular scripting languages. PHP is now in preview on Google App Engine, fully available to the general public. The preview status means that it is no longer necessary for developers to whitelist their applications for deployment.
Content Storage Done Right
Jackalope and PHPCR have been a reccuring topic on this blog, writes Lukas Kahwe Smith. Back in 2009 we here at Liip began exploring the possibility of integrating Jackarabbit, the reference implementation of the Java Content Repository specification, with PHP. The vision was two fold: First up we wanted to make it possible to directly interact with content stored in AdobeCQ or Magnolia. Additionally we also felt it would be a great asset to the PHP CMS world to be able to leverage all the power of JCR from PHP, hence PHPCR. Now four years later we finally have the first stable releases of PHPCR, Jackalope and the hibernate inspired object mapper PHPCR ODM.
GitFlow or GitHubFlow – Which is Right for You?
Matthew Setter writes - Recently, I’ve been getting serious about Git, both learning it inside and out as well as the different development workflows which are commonly used with it. Why? Because I want to spend as little time as possible doing development. This may sound rather strange when I’m a very active web application designer & developer having the good fortune of working with a healthy group of clients. But I’ve felt for too long that I spend too much time, as Michael Gerber would say, working in my freelance business, not on it. Whether a freelancer yourself or not, perhaps you feel the same?
Tutorials and Talks
How To Find The Directory of Your WordPress Theme in PHP
To get the directory of the current theme (or child theme) you can use get_stylesheet_directory_uri(). Here’s how to use it...
How to Query DNS Records using PHP
DNS records are meant to be stored on a DNS server. Using these servers you can easily get specific DNS records for your own application, apply specific limits etc. This article shows you some ways to get or query DNS records using PHP.
Using the Event Dispatcher in a Silex Application
Gonzalo Ayuso has a new post showing you how to use the Symfony event dispatcher in a Silex-based application. His example involves a simple image processing example, creating a Silex endpoint that creates an image with a given string. He notes that handling it all at once and then unlinking at the end of the request is one way to handle it. The other is to use the event dispatcher to add an event lister (as a closure) to happen "on terminate" to unlink the path it's been given.
Testing Apigility Code-Connected REST APIs
Lorenzo Ferrara has a recent post to his site involving the recently released Apigility from Zend and how to to create a basic API endpoint (with code) for a REST API (complete with screenshots). He talks about creating the first API and what kinds of code files were created as a result - a configuration and three for the API itself: a collection, an entity and a resource file. He shows the changes he made to the resource to return static data from a set of fortunes and the entity class to use it. His screenshots show the results of a few REST requests, one for all of the "cookies" and a few others for specific cookie instances.
CI: Deployments and Static Code Analysis with Drupal/PHP
In this post, I'm going to explain how Jenkins, Phing and SonarQube can help you with your Drupal (or any PHP-based project) deployments and code quality, plus walk you through installing and configuring them to work with your codebase. Bear with me... it's a long post!
Rails-like Console for PHP
If you’ve ever used Ruby on Rails, you know it has an amazing console that allows you to execute code within a fully bootstrapped application environment. With the rails console command, you can gain access to your database and models in a command-line interface read-eval-print loop (REPL) for your application. This is made possible by interactive Ruby, irb. I’ve always been curious why PHP frameworks like WordPress and Magento don’t embrace a similar type of tool, even though PHP has a similar command-line interface that you can access by running php -a in your terminal.
Building a Live-score Widget Using PHP Web Sockets
Building a Web App With Symfony 2: Bootstrapping
On the SitePoint PHP blog today, Taylor Ren has started up a new series about building web applications with the Symfony 2 framework. In this first post he looks at one of the initial steps - bootstrapping (setting up) the framework and application. This first part helps you get everything all set up - the latest version of the framework, Composer and checking for the default page to make sure everything's configured correctly. From there he starts to get into the "guts" of the application, introducing the MVC elements (entities), routing concepts and database configuration/integration.
PSR-2 v CodeSniffer PSR-2: A Success Story
In a new post to his site Phil Sturgeon talks about the "success story" around the PSR-2 PHP-FIG standard and his work to get the PHP CodeSniffer checks to be more correct for it.
Responsive Images Using Picturefill and PHP
Sharding PHP with MySQL Fabric
Johannes Schlüter has a new post to his site showing how to use the MySQL Fabric functionality to do sharding in your PHP application. The MySQL Fabric (recently released) is "an integrated environment for managing a farm of MySQL server supporting high-availability and sharding." He walks you through the installation of the support for Fabric and how to configure it for storage.
Zephir - Build PHP Extensions Without Knowing C
Due to PHP being written in C, for a long time now the only way to extend it was to either rely on the current generation of enthusiastic greybeards, or take up C. For many, the latter wasn't an option. We, the high level developers of today, are far too lazy to take up such a wonderfully precise, demanding, low level, OCD-centric language. It would take me just as long to waddle through an intermediate C program as it would an experienced low level developer to develop a pretty cross-browser compatible JS radial context menu. So how, then, is a PHP developer supposed to enrich PHP itself with much needed functionality?
|News and Announcements
WordPress 3.7 Beta 2
WordPress 3.7 Beta 2 is now available for download and testing. This is software still in development, so we don’t recommend that you run it on a production site.
Ski PHP 2014 Schedule Announcement
Ski PHP 2014 has announced the schedule for the upcoming conference, which will be on January 17-18, 2014 in Salt Lake City, Utah, USA.
Joomla! 3.2 Beta1 Released
The Joomla! Project is pleased to announce the availability of Joomla! CMS 3.2 Beta1. Community members are asked to download and install the package in order to provide quality assurance for Joomla 3.2. Joomla 3.2 is scheduled for release on or around November 6th, 2013.
Lately in PHP Podcast Episode #40 - More New Features For PHP 5.6
On PHPClasses.org they've posted the latest episode of their podcast, "Lately in PHP", episode #40 - "More New Features for PHP 5.6".
Elephant in the Room PHP Podcast - Episode #1 Design is Hard
We decided at the PHPNW13 conference to start a PHP podcast. In our very first podcast episode ever, we discuss the importance of design. And, because we might as well start with a bang, we talk about caching and naming things as well. We’re all over the place :–)
High Performance Drupal: Fast and Scalable Designs (by Jeff Sheltren, published 14th October 2013)
How can you help your Drupal website continue to perform at the highest level as it grows to meet demand? This comprehensive guide provides best practices, examples and in-depth explanations for solving several performance and scalability issues. You’ll learn how to apply coding and infrastructure techniques to Drupal internals, application performance, databases, web servers and performance analysis. Covering Drupal versions 7 and 8, this book is the ideal reference for everything from site deployment to implementing specific technologies such as Varnish, memcache, or Solr. If you have a basic understanding of Drupal and the Linux-Apache-MySQL-PHP (LAMP) stack, you’re ready to get started.
Rise of the Native Cloud Developer – ZendCon Keynote
At his keynote session at ZendCon, Peter Magnusson shared some of the important and sometimes unexpected lessons Google learned while building for the cloud – such as the importance of lightweight execution containers, relying on failure and how to overcome the speed of light when building distributed systems.
If you have a position that needs filling, let us know and we will include it.
Senior Software Engineer (PHP) London
The Lead engineer will possess entrepreneurial drive and hold a track record of significant engineering achievement and demonstrated ability to achieve goals in an innovative and fast paced environment. They will write and deliver code that meets all specifications, have mastered design patterns and are able to codify and apply best practices to work produced. They will be a recognised leader who effectively trains and mentors junior employees.
Software Engineer (PHP) London
This role involves working in an agile software engineering team across a number of products including transactional web-sites and a high capacity, high availability, content management system that supports global online activities. Combining strong technical analytical skills, domain and product knowledge with effective planning, they will participate in the development of key backend business logic components of web applications that drive online web properties
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 Engineers for Runtriz.com in Hollywood, CA
We are looking for an experienced web developer to work on a small, productive team. Team members should be able to work full-time with a high level of focus and dedication. It's important that team members have a problem-solving attitude and can work through issues without needing a lot of help or guidance. We're looking for people who are always striving to learn new technologies and enjoy spending free time experimenting with and learning new development techniques and languages. If you feel like this describes you please click on the link for more info.
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.
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 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.
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
Imagine is a OOP library for image manipulation, built in PHP 5.3, using the latest best practices and thoughtful design that should allow for decoupled and unit-testable code.
PHP Image Workshop is an open source class using GD library that helps you to manage images with PHP. This class is thought like photo editing software (Photoshop, GIMP...): you can superimpose many layers or even layer groups, each layer having a background image.
Ratchet is a PHP library to let developers create real-time, bi-directional apps between clients and servers over WebSockets. It makes building event-driven apps (rather than traditional HTTP request/response apps) quick and easy.
phpThumb is a PHP library that handles all the hard work on creating thumbnails with only a few lines of code. It accepts any source types for images (from the filesystem, URL or database) and all popular image formats. Images can be rotated, cropped and watermarked, their quality can be defined and there is even a built-in caching to minimise the server load. phpThumb also has a wide collection of filters including contrast, blur, brightness, applying rounded corners and more.
HybridAuth is an open source PHP library for authenticating through multiple social services and ID providers. The services supported include OpenID, Facebook, LinkedIn, Google,Twitter, Windows Live, Foursquare, Vimeo, Yahoo, PayPal and more. It can be integrated easily into existing websites by inserting a file and few lines to the sign-in/up pages.
A library easing the combination of Phockito & PHP Unit. PhockitoUnit exists to marry PHP Unit with the Phockito mocking framework in an everlasting love praised by PHP developers everywhere.
The PHP library package of Les Ateliers Pierrot. This package is a set of PHP basic classes commonly used (in our work) to facilitate other developments. It contains some global classes to extend to start on a robust base, some useful helpers for some methods often used etc. For a full review of what the library embeds, have a look at the src/Library/ directory contents.
PHP SQL Server Reporting Services Client Library. Concrete SoapClient subclasses to access all four SQL Server Reporting Services endpoints.
doctrine PHPCR admin
This bundle integrates the SonataAdminBundle with the Doctrine PHPCR project. Check out the documentation on Resources/doc. Warning: documentation files are not rendering correctly in Github (reStructuredText format) and some content might be broken or hidden. Make sure to read raw files.
Common utils for PHP projects.
The Bugsnag Notifier for PHP gives you instant notification of errors and exceptions in your PHP applications. Bugsnag captures errors in real-time from your web, mobile and desktop applications, helping you to understand and resolve them as fast as possible. Create a free account to start capturing errors from your applications.
ElementTree is a PHP library for handling a very simple tree of components with XML-like features.
Gearman auto-scaling workers for PHP. Allows workers to be automatically spawned based on configuration and limited by system load. Workers automatically die with no jobs to process. This project is in the early stages but comments/input welcome from anyone who finds this useful. To view a demo PHP application that pulls this in via Composer then see GAS-PHP-Demo.
So, how did you like this issue?