|Hello PHP fans, we are kicking off this week's edition with two conferences for you to get your teeth into in 2014.
The International PHP Conference takes place this year in the city of Berlin, in June. A globally recognised event for PHP developers and web workers, exploring key topics and core technologies. Attendees will have the opportunity to meet with speakers, core developers and consultants, and there are often opportunities to evaluate your code.
PHP Craft in South Africa is split into two events. This year's theme is PHP Code Mastery & Craftsmanship. The first two-day main conference is in early April, followed a week later by a one-day Advanced Craft session.
The PHP development team has announced this week the immediate availability of PHP 5.6.0alpha1. This release marks the beginning of the PHP 5.6.0 release cycle.
Plus we bring you Part 2 of Bruno Skvorc's Horizontal Scaling of PHP Apps, where he talks about scaling the database, explains replication and covers some common pitfalls you might want to avoid.
Finally, the first issue of the year of php[architect] has been released, with articles about OOP, Neo4j and how to become a better developer.
Until next time,
Google Forms, Checkboxes and PHP 5.4 or 5.5
WordPress Google Form v0.63 introduced a change which allowed the plugin to work on newer versions of PHP, notably 5.4 and 5.5. Unfortunately that change has broken support for check boxes.
HHVM vs Zend Engine in PHP 6
The fabled PHP 6 is long overdue. This unicorn of the web dev world has been “coming” for decades now, and it’s still not clear whether or not it’s actually something that’s going to happen in this decade, or just an idea, a fantasy of the PHP userbase. Minor versions like 5.4 > 5.5 and 5.5 > 5.6 bring so many new features these days anyway, we often see them as major versions. For a great article on the unfortunate fate of PHP 6, please see here.
Tutorials and Talks
Automated Rsync - Without Compromising Security
Rsync is one of the most popular tools to synchronize data between two computers, and used mostly in taking backups using this sync feature. It’s easy to use and only uploads the changed files when a sync is necessary, so it’s effective in saving bandwidth and time too. Here is a quick work around that you can implement in your remote machine to prevent the connecting user from doing anything malicious, only those tasks that are needed to perform the rsync backup.
Horizontal Scaling of PHP Apps Part 2
In Part 1, Bruno discussed the horizontal scaling of the application layer – scaling out servers to handle the PHP code concurrently via load balancers and other means. He covered sharing of local data, touched on potential optimisation and explained the basics of load balancers. The application layer, however, isn’t the only thing that needs scaling. With a bigger demand for the app, the demand for higher read/write operations on the database also surfaces. In this part, we’ll look at scaling the database, explain replication and cover some common pitfalls you might want to avoid.
Sending Confirmation Emails with Phalcon and Swift
Today, sending emails is considered the basic functionality of any web application. Usually, an email is sent to notify the user of some kind of activity that has taken place on the website, such as when he registers the account, updates information, or when new friends have been found. In this short tutorial, Thien Tran Duy shows how to send emails via Gmail quickly from within a Phalcon sample application.
Arbitrary Precision and Big Numbers in PHP
In this article on sitepoint.com, Taylor Ren reviews the PHP capability to provide arbitrary precision number calculation/big integer calculation by reviewing 3 PHP modules: GMP, BC Math and php-bignumbers. He will demonstrate two real-world examples to see the powers/limitations of each. The first one will be calculating PI to arbitrary precision – (for the sake of the article, precision will be restricted to 1000 digits); the second will be a simple demonstration on RSA encryption/decryption.
Easy Setter Injection in Zend Framework 2
Matthew Setter at Malt Blue has recently been learning a lot about dependency injection and how it’s implemented in Zend Framework 2. He is less familiar with setter injection but has been learning how to do it, through ServiceManager-aware interfaces, and will share how it’s done in this post.
Migrating Legacy Data to WordPress
With an increasing number of users migrating to WordPress, moving data from an existing CMS to WordPress has become an essential process in the transition. Although migrating small databases from another CMS can be done in a few hours, large databases can take days or even weeks. This article discusses some of the points and recommends tools to consider when migrating existing databases to WordPress.
Implementing Secure Passwords in PHP 5.5
PHP has always had a few simple ways to implement password hashing to an extent. MD5 and SHA1 are examples of this, but the security of these methods is not what it should be. Many developers use MD5 and SHA1 without even adding a SALT, which is a string that helps to add complexity to the application. Some developers use something as awful as base 64 encoding and decoding simply because they can be easily manipulated. But these things are not secure folks, and the clever people who want to hack your site or steal your money can see right through them. Lucky for us, the folks at PHP have thought about this long and hard, and the result is a very simple PHP password hashing API that is not only easy to use, but fast and secure.
Design Patterns in PHP: Singletons
The singleton pattern is used to restrict the instantiation of a class to a single object, which can be useful when only one object is required across the system. Singletons are designed to ensure there is a single (hence the name singleton) class instance and that is global point of access for it. Along with this single instance we have global access and lazy initialisation.
Extending CodeIgniter Core Libraries to Add Your Own Functionality
CodeIgniter is a PHP framework built on the MVC design pattern. There is no doubt that it is popular as it's the most forked PHP project on Github ever, the second most watched PHP project on Github, and has a large group of followers and contributors. Why is it so well loved? The answer is that you can add your own functionality to the CodeIgniter core without even breaking a sweat. You can extend the core controllers, models and just about everything else with relative simplicity. Let's have a look at how we can do that.
|News and Announcements
PHP 5.6.0alpha 1 Released
The PHP development team announces the immediate availability of PHP 5.6.0alpha1. This release marks the beginning of the PHP 5.6.0 release cycle. All users of PHP are encouraged to test this version carefully, and report any bugs in the bug tracking system.
WordPress 3.8.1 Maintenance Release
After six weeks and more than 9.3 million downloads of WordPress 3.8, we’re pleased to announce WordPress 3.8.1 is now available. Version 3.8.1 is a maintenance release that addresses 31 bugs in 3.8, including various fixes and improvements for the new dashboard design and new themes admin screen.
International PHP Conference June 1st to 4th 2014, Berlin
The International PHP Conference is a globally recognised event for PHP developers, webworkers, IT managers and everyone interested in web technology. Once again, the conference will explore key topics and core technologies for developers and decision makers. Learn how to scale your applications, explain the details of Continuous Integration or evaluate different approaches to NoSQL.
PHP Code Craft 4th and 5th April 2014, Johannesburg
Two days of top international and local speakers, amazing talks and evening socials, with Rasmus Lerdorf as conference keynote. For advanced developers there is an additional one day event on April 12th in Cape Town, the Advanced Craft Session.
php[architect] January 2014 Edition
The first issue of the year has been released. With articles about OOP, Neo4j and how to become a better developer.
Modernising Legacy Applications in PHP: Early Access
Paul M.Jones has had several requests for early access to his new book, “Modernizing Legacy Applications in PHP,” as it is being written. As of this week you can purchase the book in its ongoing state at leanpub.com/mlaphp for the low-low price of $39 ($49 recommended).
Automate PHP Deploys 2014 (by John B. Wyatt IV, published 13th January 2014)
Are you a PHP programmer looking for a great way to automate your server? Are you a Rails programmer that has PHP applications to maintain? Do you simply want to automate setting up a Wordpress blog? Look no further than this great 20 page companion guide to Deploy Rails Bluebook. In one single book you can find how to setup a Ruby environment for PHP programmers.
Magento Search Engine Optimization (by Robert Kent, published 15th January 2014)
Maximize sales by optimising your Magento store and improving exposure in popular search engines like Google.
How to Setup A Linux Webserver (by Michael Wright, published 16th January 2014)
This book shows you how to build your own Linux Web server with Ubuntu Linux and host your own website at home for free, without having to pay a web hosting company like GoDaddy or Web.com. Whether you are ten years old or 80, even if you have never worked with Linux before and you are not that good with computers, you can setup a Linux Web Server by following the simple, easy-to-follow steps in this book.
If you have a position that needs filling, let us know and we will include it.
Kinesis Seeks Senior-Level PHP Talent! (Austin, Texas)
Kinesis is the established world leader for mobile survey software. We’re in the midst of refactoring our flagship product and reimagining our infrastructure as code using cutting edge tools and techniques. We’ve implemented distributed version control, continuous integration and inspection, and are aggressively re-architecting to support continuous delivery. We’re looking to add some experienced talent to our team to help us get there.
Single Founder seeking Senior PHP Talent
This one is a bit different! We decided to post it as Dan intrigued us. Single founder seeking either freelancers or employee number 1, with potential co-founder status. Read more on Dan's blog.
PHP Job in London with Signkick
Join a startup that is revolutionising the $33b outdoor advertising market.
Junior Developer for Performance Telecom, Newcastle Based.
Performance Telecom are looking for a Junior developer, based in Newcastle upon Tyne, to work on exciting big data and telecoms projects. This role would suit a recent graduate, though also someone who can drive and has access to their own transport. Contact [email protected] with your CV/Resume. This is NOT a remote position.
Developer at Sailthru (New York City)
We're hiring! Sailthru has many open roles, including: VP Data Science (NY), Android Developer (NY), Test Engineer (NY), Senior Developer (NY) and a lot more in the office of New York, San Francisco and London. Contact [email protected] for more information.
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 [email protected] 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.
Freelance Dev Leads
A concierge service for your freelancing business. Whilst this is a paid service for developers Glen, who runs this site, provides good solid curated freelance jobs to his list. We have used it ourselves and recommend giving it a go.
Interesting Projects, Tools and Libraries
Introduction to Sonata: The Core Application Design
Every Sonata application is built using the Foundation and UI APIs and therefore has essentially the same core architecture. UI provides the key objects needed to run the application, to coordinate the handling of user input and to display content in a webbrowser. Where applications deviate from one another is in how they configure these default objects and also where they incorporate custom objects to augment their application's user interface and behaviour.
DevDocs combines multiple API documentations in a fast, organised and searchable interface.
BucketAdmin – Our New Dashboard for your Next Web Application
Uniter allows you to execute PHP in the browser or in Node.js.
A PHP implementation of bower.
A simple Shopify API client in PHP.
PHP library to provide some CRUD functions in SQL databases.
BdD is php class for easy use PDO with only 2 functions - read & write.
PHP cli application package.
An Elegant CLI Library for PHP.
A PHP 5.3+ library for generating RFC 4122 version 1, 3, 4, and 5 universally unique identifiers (UUID).
CSSqueeze: Efficient CSS minification in a single PHP class licensed under Apache 2 and GPLv2.
A PHP client for the Ticket Evolution web services.
A minimal PHP client for generating Thumbor URLs.
ElementTree is a PHP library for handling a tree of components with XML-like features.
Set of system-independent functions from CleverStyle CMS.
Validatr is a simple multilingual Php Validator library for checking user's data.
So, how did you like this issue?