|Welcome to this week's packed edition of phpweekly.
Following last weeks malware issues on php.net, is PHP really secure?
The CodeConnexx Conference, hosted by PHPWomen, has been announced for next month. This two-day, one track conference aims to bring together everyone interested in talking about code. Book your tickets now for November 8th and 9th.
Also Version 3.7 of WordPress, named “Basie” in honor of Count Basie, is available for download or update in your WordPress dashboard.
Look out for Cal Evans new post on his site about a book he's published covering a topic not really focused on in the PHP world - command-line usage. This ebook "Signaling PHP" is available to download now.
Hope you enjoy your read,
Is PHP Secure?
In a classic watering hole attack, hackers compromised php.net last week, a well-known, respected high-traffic website and planted malware in a bid to infect unsuspecting visitors. On Oct. 24, Google began to flag php.net as being a site hosting malware, i.e., potentially a watering hole. According to PHP.net, malware was served to "a small percentage" of users between Oct. 22 and Oct. 24. That's a very big deal with huge implications. Is PHP itself now at risk? What about all the people who visit php.net?
RESTing with Symfony2
Lukas Kahwe Smith shares his experience of attending and speaking at Symfony Camp UA in Kiev, last weekend.
Publish Your Failures; or, The Way Of All Frameworks
Paul Jones has an interesting post on his site talking about how your "framework of choice" will eventually fail even if there is long term support for it. He points to another article about trial and error and emphasises that (as Richard Feynman has said) failures are just as important as successes. Paul goes on to talk about the usefulness of stepping outside of your norm - your framework of choice - and getting a wider perspective on how others do things.
Tutorials and Talks
Google App Engine for PHP with PhpStorm
On the Google Cloud Platform blog there's a recent post showing you how to directly integrate the Google App Engine PHP support with the popular PHP IDE PhpStorm for seamless development. His example shows how to integrate the IDE with the Google Cloud SQL service. He shows how to create a new user (via the API console) and how to connect that user in PhpStorm. He includes a CREATE statement for a sample table and the PHP code to connect.
Symfony2 Components Overview EventDispatcher
The ServerGrove blog continues their spotlight on the various components that make up the Symfony2 framework in their latest post about the EventDispatcher. The post includes a brief introduction to the Mediator design pattern and how the EventDispatcher implements it. Sample code is included showing how to make a dispatcher, add events and dispatch an event to a waiting listener. There's also a comparison between "event listeners" and "event subscribers", pointing out that the latter has more flexibility when it comes to event priority.
Running Symfony 2 Applications in OpenShift
Hasin Hayder has posted a guide to getting a Symfony2 application up and running in an OpenShift instance. OpenShift is a cloud hosting service that makes deploying and scaling applications simpler. He shows you how to set up a Zend Server (5.6) instance and grab the repository through a git checkout. The commands to create a new Symfony2 application (via Composer) are also included. With a small change to the .gitignore, the needed configuration files and directories will no longer be ignored and will be pushed. There's also a bit of information about setting up and using the provided database instance.
Install and Run Symfony 2.3.6 projects in OpenShift instances in just one minute with this boilerplate repository
Hasin Hayder has a new post today sharing a boilerplate configuration and setup he's created to get Symfony2 running on OpenShift in "just one minute". OpenShift is RedHat's platform as a service that makes it easier to set up and deploy web apps. This repository helps you set up the Symfony instance that's ready to go. He walks you through the steps you'll need to create the OpenShift "gear" and configure it to work with Symfony and MySQL.
Data Providers and Arrays
Chris Hartjes, testing guru, has a post talking about using arrays in data providers for your unit tests. More specifically about some odd behavior one developer was seeing in their tests. The issue (example code included) was in how the data providers are expecting the data to be returned. His test was expecting an array but the data provider was returning things incorrectly. As Chris points out, the provider should return an array of arrays. The fix is easy, but could be confusing to someone not used to this slightly unusual return format.
Auto Generate Properties Dynamically For All Your Classes Using Magic Methods & Reflection
Accessing private class properties via getters and setters is a pretty standard way to write your applications. Unfortunately it can be time consuming to write them for every property your class may have. On 7PHP.com Khayrattee Wasseem has a few ideas (including using PHP's own Reflection functionality) to dynamically create them. He shows two different methods to accomplish this kind of dynamic access, one using traits and the other using normal class inheritance. Also included is the code illustration for each solution and he talks a bit at the end of each section about why that method might be better than the other.
Introducing Laravel Part 2
The Developer Drive blog has posted the second part of their series introducing the Laravel PHP framework. In this new tutorial they build on the basics from part one to briefly discuss controllers and the Eloquent ORM. They explain some of the basics of controllers first including a bit of sample code showing how to output a basic view and add a new route. Following that is a brief look at using the ORM and making a model - a Post - and defining the table it relates to.
Encryption Methods Using PHP
Posted on the YourHowTo tutorial website this week - Encryption is the basic of them all when it comes to security. In basic scripting md5 is the easiest basic method of encryption. A lot of developers use this for basic protection, including wordpress developers for their passwords. I confirmed this today when a client of mine was having issues with his access in his wordpress blog. Well anyway, in this article I’m going to show you some easy encryption methods using php.
Install Lighttpd Web Server on Linux
Lighttpd was designed for security, speed, compliance and flexibility, all in one little package. It has been used in the past to serve several big websites like wikipedia, youtube and meebo. This article shows you how you can install this web server on linux Ubuntu / Debian operating systems. There is no repository needed for Lighttpd so you just need to proceed and run the command.
Debugging PHP Applications with HHVM
On the Qandidate.com blog there's a new post showing you an easy way to debug HHVM applications via the built-in debugging tool and it's command line interface. The HHVM is the virtual machine version of the HipHop compiler Facebook created to speed up PHP execution. To illustrate, they create a super simple PHP script and show how to start up the HHVM in debug mode. They introduce you to the commands you'll need to step through the script execution and locate the breakpoints where errors are happening. You can do things like print out the current values of variables, set conditional breakpoints and get a stack trace for the execution so far.
Using Scrypt in PHP-based Websites
Scott Arciszewski has posted a new tutorial to his site helping you get scrypt installed as an alternative to some of the other cryptographic functionality that's already supported by PHP. He walks you through the exact steps you'll need to get scrypt installed and working happily with PHP (provided you have root on the machine). Thankfully, it's pretty easy thanks to the scrypt extension updated version of a scrypt wrapper you can use in your applications.
Symfony2: Some Things I Don't Like About Bundles
Matthias Noback has shared a few things he doesn't like about Symfony bundles, the drop-in components that easy extend Symfony-based applications. For each section there's an explanation and sample code where needed to illustrate the point.
|News and Announcements
Joomla! 3.2 Beta 2 Released
The Joomla! Project is pleased to announce the availability of Joomla! CMS 3.2 Beta 2. 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.
CodeConnexx November 8-9th 2013, Masstricht
CodeConnexx is a two-day, one track conference that aims to bring together everyone interested in talking about code. As we know, choosing a career as a coder comes with its own set of life challenges and we want to talk about those too. In short, this conference is a different kind of conference, as it connects those two pieces of the puzzle together in one event. Every technical talk will be followed by a talk about life skills and work/life balance. There will also be plenty of social opportunities to get to know the other attendees. Not only do we want to help you bridge the gap between work and life, we want to help you connect with each other as well. CodeConnexx, hosted by PHPWomen, will take place in Maastricht, Netherlands on November 8th & 9th 2013. We sincerely hope you are able to join us.
WordPress 3.7 "Basie"
Version 3.7 of WordPress, named “Basie” in honor of Count Basie, is available for download or update in your WordPress dashboard. This release features some of the most important architectural updates made to date.
Wanted: New Emacs PHP Mode Maintainer
For the past three years Eric Ritz has been maintaining the most popular PHP Mode for GNU Emacs. However, with less time to devote to the project he is searching for a developer to take his place as the maintainer by the beginning of 2014.
PHP Town Hall Episode #14 - Ship Like a Canadian, Eh?
The PHP Town Hall podcast has released their latest episode this week - Episode 14, "Ship Like a Candian, Eh?". In this episode Ben and Phil are joined by Lee Tengum, who has sold more apps than Phil and Ben have even thought of. He founded Pancake Payments which has been featured in Inc. Magazine and is doing very well in the very crowded sector of invoice, time-tracking and basic project management. You can listen to this latest episode either through the in-page player or by downloading the full mp3 directly. You should also subscribe to their feed to get the latest updates from the show.
Twitter API Engagement Programming with PHP and MySQL (by Adam Green, published 21st October 2013)
Adam Green draws on five years of Twitter application consulting work and an additional 25 years of software development experience to create a unique blend of strategy and code in this book.
Cal Evans has a new post on his site about a book he's published covering a topic not really focused on in the PHP world - command-line usage. The book, "Signaling PHP" covers the use of the process control extension to handle command-line signals. The eBook is available for purchase and download now at a suggested price of only $5 USD. If you've been looking for a quick, concise guide to using process control in PHP, you should check it out.
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, firstname.lastname@example.org.
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
Mobile_Detect is an open source PHP class for detecting mobile devices. It uses the User-Agent string combined with various HTTP headers in order to detect the mobile environment. The class can easily understand whether the platform is mobile, tablet or desktop. Also, functions exist for detecting whether it is iPad, iPhone, Android, Blackberry, etc. We can even drill-down to the versions of the platforms and browsers if needed. It has a huge library of devices (including Nook, Nexus, Kindle, Archos..) and browsers for a stable detection.
Zebra_Image is an open source and lightweight image manipulation library built with PHP. The library is object-oriented, requires only the PHP GD2 extension and supports resize, crop, rotate and flip operations. It works with .JPG, .GIF + .PNG formats and can convert one format to another after each action (transparency is preserved as well).
Unirest is a pack of lightweight HTTP libraries for many languages (PHP, Ruby, Python, Java and Objective-C). It has support for GET, POST, PUT, UPDATE, DELETE operations and its methods + response structure are the same in all languages. The usage is very simple and straightforward. Also, it is documented well.
jqmPhp is an open source project that aims to simplify using jQuery Mobile with PHP. It is a pack of PHP classes that can generate the HTML outputs which jQuery Mobile is expecting within a few lines. The classes are on separate files (with names parallel to the JQM’s features) so you can choose to only use the necessary ones. It covers almost all the features of the framework, it is very well-documented and supported with examples.
A Parser for CSS Files written in PHP. Allows extraction of CSS files into a data structure, manipulation of said structure and output as (optimised) CSS.
A simple authentication bundle for Laravel 4. It features roles, permissions, password salting and is fully extendable.
A PHP library for communicating with the Twilio REST API and generating TwiML. You can install twilio-php via PEAR or by downloading the source.
PHP library for interacting with ApiAxle APIs. ApiAxle is a proxy that sits on your network, in front of your API(s) and manages things that you shouldn't have to, like rate limiting, authentication and caching. It's fast, open and easy to configure.
A simple migrations system for php. Phpmig is a (database) migration tool for php, that should be adaptable for use with most PHP 5.3+ projects. Phpmig aims to be vendor/framework independent and, in doing so, requires you to do a little bit of work up front to use it.
The next generation of the EVE Online API Library Pheal. PhealNG is a refactoring of Pheal to meet more modern PHP development standards, for example to support namespaces and PSR-0 classloading.
EArray is a PHP Class to provide convenient ways to access a PHP Array. Convenient accessing nested array, supporting a default value and normal array operation.
The Slash Programming Language
Slash is a new programming language for the web. It is mainly inspired by Ruby and PHP, with hints of Python and Perl. PHP is a great tool that is virtually unmatched in its domain - ie. ‘slap a script on a server and have it run’. The problem is that PHP’s idiosyncrasies make it awkward and sometimes even painful to program in. Slash combines PHP’s simple execution model with the elegance of Ruby’s object model. The result is a language that lets you achieve results quickly while being a joy to use.
So, how did you like this issue?