Welcome, PHP fans, to this weeks edition of phpweekly.com.
Plenty of PHP releases to start with this week, including PHP 7.0.0 Beta 3 and PHP 5.6.12. All are available now and recommended for immediate upgrade.
Also this week, Symfony has announced that all its maintained branches are 100% compatible with PHP7, in anticipation of its imminent release.
We have the final part in the series on how to create a custom payment method module in Magento, with a demonstration about the remaining checkout process.
Plus SymfonyCon 2015 has been announced for December, in the Symfony hometown of Paris.
And finally, the PHP Round Table Podcast this week looks at developers' experiences with documentation, and how it can be improved.
Anything missing from our newsletter that you would really like to see? Please feel free to drop me a line and share, at [email protected].
Cheers
Katie and Ade |
We love our sponsors. Why not try them?
|
Articles
Appserver – a Production-ready PHP-based Server
It has been just over a year and a half since the team at TechDivisionGmbH were interviewed on SitePoint about their paradigm changing PHP application server system called appserver.io. At the time of the interview, appserver was just breaking out as an alpha. Since then, a lot has happened and appserver is now GA as a production system, currently in version 1.0.6, with version 1.1.0 on the horizon.
An Homage To Strict Coding
Strictness is not a specific design pattern or best practice, it’s much more general than that. Strictness is about constantly looking for ways to reduce ambiguity in a design. Coding languages and software tools offer us all sorts of opportunities to do that - it’s up to us to take advantage of them.
Symfony Achieves 100% PHP7 Compatibility
PHP7, the new version of the programming language Symfony is built with, will be released at the end of the year. The recent release of its third beta has brought us another step closer to the final stable release. During these past few months, we've been working very hard to achieve full PHP7 compatibility. This effort accelerated during the past weeks and we're glad to announce that all Symfony maintained branches are now 100% compatible with PHP7.
Stop Returning Arrays (Use Objects Instead)
When returning large amounts of data, it can be common to turn to a built-in PHP data structure: the array. But in object-oriented code, arrays make poor object-to-object data transfer mechanisms. Object-oriented programming is, and should be, focused on objects. That means that each array should be converted into an object, and collections too. |
Tutorials and Talks
Resumable File Upload (Part 2)
In Part 1 of this series, we went through the steps to implement the front part of the application. Here in Part 2, we will work on the backend system.
Create a Custom Payment Method Module in Magento: Part Three
In this series, we're working on how to create a custom payment method extension in Magento. In the previous two parts of this series, we created a basic module to provide the back-end configuration for our custom payment method and list our custom payment method in the checkout process. In the last part of this series, we'll create a demo payment gateway page to demonstrate the remaining checkout process.
Writing Highly Readable Code
We are always told that commenting our code is important. Without comments, other developers will not be able to understand what we did and our future selves will recoil in horror when doing maintenance. Readable code, however, is not only about comment text. More importantly it is about the style, structure and naming. If you get into the habit of writing easily readable code, you will actually find yourself writing less comments.
Why is Slim 3 Not So Slim Anymore
There is a common misconception that Slim 3 has plenty of files and is no longer slim. Slim 3 does indeed contain more files than Slim 2, and this has been the result of being more flexible and moving away from the Not Invented Here (NIH) philosophy. Installing Slim 3 through composer will install all its dependencies, and when doing a PHP file count you will notice we have doubled in file count.
Deadlocks Are Not Dangerous. Just Try Again.
Set the appropriate isolation level, wrap a unit of work into a transaction and do expect it to fail. Therefore this pattern is recommended.
Functional HTML Rendering with PHP
When you’re working with a programming language that doesn’t have templating per default and you’re not in the mood - or don’t see the need - for templating, your first course of action is to write something to obviate having to print and concatenate everything.
How to Create a Mock REST API for Testing In nodejs
There is a frequent requirement during api development to create a mock api quickly so that other team members can use the same to test their respective part of the project. For example, front-end developers might need the api endpoints to test their designs. Rather than wait for the complete api to be finished, developers can create a mock api quickly for testing. This nodejs module by typicode helps front-end developers who need a quick back-end for prototyping and mocking REST apis.
How to Create a Simple PHP CMS with SEO Friendly Links
Nowadays search engines like Google value more and more the user experience provided by the sites to rank their site pages well. So, SEO (Search Engine Optimisation) often means making the sites more user friendly. One aspect that contributes to Web site pages being ranked well is to have friendly URLs that allow the user to know what pages are about just looking at the URLs. Read this tutorial to learn how to create a simple content management system that uses user friendly URLs for the content pages, so you can implement in your own projects without having to use other large CMS systems.
PHP Object-Oriented Programming Beginner's Guide
Class is like your house blueprint. Before your house is constructed, there is a house blueprint. It is not an actual house, but a plan how this house will look, how many rooms it will have and so on. Then the house will be constructed by following the blueprint exactly. In this analogy, the house blueprint is a class and your actual house is an object. We can have unlimited objects of a class, just like we can build unlimited exact houses by following the same house blueprint.
Save Memory by Switching to Generators
Since the release of PHP 5.5, we now have access to generators. Generators are a pretty cool language feature, and can allow you to save quite a bit of memory if they are used in the right places.
Introduction to Elasticsearch in PHP
In this tutorial, we’re going to take a look at Elasticsearch and how we can use it in PHP. Elasticsearch is an open-source search server based on Apache Lucene. We can use it to perform super fast full-text and other complex searches. It also includes a REST API which allows us to easily issue requests for creating, deleting, updating and retrieving of data.
Dealing with Exceptions in a Laravel API Application
Exceptions are a very important method for controlling the execution flow of an application. When an application request diverges from the happy path, it’s often important that you halt execution immediately and take another course of action. In today’s tutorial I’m going to show you how I structure my Laravel API applications to use Exceptions.
Continuous Deployment Environment with Docker, AWS EB and Codeship
This is the first part of a series of tutorials in which we will configure a virtual machine, join the configuration to the project, and automatically deploy and connect everything together with a continuous delivery tool. |
News and Announcements
PHP 7.0.0 Beta 3 Released
The PHP development team announces the immediate availability of PHP 7.0.0 Beta 3. This is the fifth pre-release of the new PHP 7 major series. All users of PHP are encouraged to test this version carefully, and report any bugs and incompatibilities in the bug tracking system.
PHP 5.6.12 is available
The PHP development team announces the immediate availability of PHP 5.6.12. 12 security-related issues were fixed in this release. All PHP 5.6 users are encouraged to upgrade to this version.
PHP 5.5.28 Released
The PHP development team announces the immediate availability of PHP 5.5.28. 12 security-related issues were fixed in this release. All PHP 5.5 users are encouraged to upgrade to this version.
PHP 5.4.44 Released
The PHP development team announces the immediate availability of PHP 5.4.44. 11 security-related issues were fixed in this release. All PHP 5.4 users are encouraged to upgrade to this version.
SymfonyCon - December 1-5th 2015, Paris
SensioLabs is proud to organise the third edition of SymfonyCon, the international Symfony conference. This year, to celebrate Symfony’s 10th birthday, the conference takes place in Paris, Symfony’s hometown! Two days of workshops, followed by the two day conference, finishing with a hackday. A limited number of Early Bird tickets are available now.
OSCON - October 26-28th 2015, Amsterdam
OSCON in Amsterdam celebrates, defines and demonstrates the best that open source has to offer. From small businesses to the enterprise, open source is the first choice for engineers around the world. Early Bird tickets are available now.
True North PHP - November 5-7th 2015, Toronto
True North PHP is a conference designed to showcase Toronto's talent and give back to the community that has given so much. The Call for Papers is now closed, and Early Bird tickets are on sale soon.
Madison PHP - November 14th 2015, Wisconsin
Join us on Saturday, November 14th, 2015 for a one day, three track conference in Madison, Wisconsin that focuses on PHP and related web technologies. This event is organised byMadison PHP and is designed to offer something to attendees at all skill levels. The Call for Papers is now closed, and tickets are on sale.
Forum PHP - November 23rd-24th 2015, Paris
This annual conference gathers all PHP and Open Source communities, pros and PHP lovers. With 2 days, 3 tracks and all the best developers involved in PHP7, the Call for Papers is only open for another two days. |
Podcasts
Laravel IO Podcast: Episode 32 - Adam Wathan Is Strong
In this episode, the crew discusses simple code, staying focused, Adam vs. The Hulk, and coding music.
Acquia Podcast: Excited about Drupal 8 - Meet Acquia CEO Tom Erickson
Part 1 of 2 - I recorded an audio-only conversation I had recently with Tom Erickson, Acquia's CEO. In this podcast, Tom and I talk about how he met Acquia's founders Dries Buytaert and Jay Batson, why Drupal looked like a good bet even back in 2007, how Drupal has changed and grown, the advantages and challenges of running a business in the open source world, the Drupal community, how Acquia Cloud Site Factory helps businesses manage hundreds of sites in a cost-effective way, Acquia's contributions to Drupal over the years, "community open source", and what Tom is excited about in Drupal 8. Tune in next time for the down-low on what Acquia's "Drupal 8 All-In" effort is all about.
dev/hell Podcast Episode 63 - Made in Ontario
So we recorded this nearly two months ago, but some family stuff delayed the release of this and Episode 64 (coming very soon). On this episode we talk about large developers, cars, Ed learning Java against his will, and Chris re-learning how to teach people.
Voices of the ElePHPant - Interview with Sandy Smith
This week Cal Evans chats with a member of the php[architect] team, Sandy Smith.
MageTalk Magento Podcast #54 - A Day of Days [feat. Paul Boisvert]
Paul Boisvert pulls back the curtain to give us a peak into Magento 2 and what it's like working at the greatest company on Planet Earth.
Run Geek Radio Podcast: Episode #7 - Don’t be a Jerk
Adam Culp, the host of Run Geek Radio, relays his conference speaking plans for the next couple of months. Following that he announces his plans to start training for the Keys100 in May. The topic for this episode is how developers treat other developers and consultants, and how we should strive to stick to the facts, stay professional, and not get personal. He shares a story of a friend and the trials they went through because another developer, in their haste to convince the client of their value, went on the attack of the consultant.
PHP Round Table Episode 26 - Documentation & Developer Experience
Documentation can make or break a project but it's often completely overlooked until the very end. And if we don't think about how developers will interact with our project before writing our opening <?php tag, we could end up with a very ugly API. We'll discuss some strategies we can take to improve the overall developer experience with "good" documentation and clean APIs.
Free The Geek Podcast: Episode 2 - The Mythical Man Month with Paul M. Jones & Speaking Engagements
In this episode, I have a fireside chat with internationally recognised PHP expert, and all around good fella Paul M. Jones, about one of his all-time favourite books - The Mythical Man Month. We talk about why the book is so valuable to him, how it's helped shape his career over the years, and the lessons it can teach all of us as software developers - lessons still relevant over 50 years after it was first published, in 1975. I've also got updates on what's been happening for me personally in my freelancing business; including speaking at php[world], attending the inaugural PHP South Coast, and much, much more. |
Three Devs and a Maybe Screencast - PHP Extension Development for Beginners with Joe Watkins
In our very first screencast episode Edd is lucky to chat with PHP core developer Joe Watkins, discussing PHP 5 and 7 Extension Development for Beginners.
Submit a Form and Post Data Using jQuery and AJAX - Video Tutorial
In this jQuery tutorial, you’ll learn how to submit a form, post the data and format the response using jQuery and AJAX.
Office Dev Show - Episode 4 - Getting Started with PHP
This week's show features a detailed introduction to building on Office 365 with PHP. Richard diZerega goes through how to build a PHP app that connects to Office 365 Contacts APIs. Richard shows how to get your app registered in Azure Active Directory in order to get your Client ID and Secret. This will allow the app to authenticate through and get an authorisation token once the user signs in.
Book Review - Integrating PHP Projects with Jenkins
Nowadays development projects get bigger and bigger, so they require multiple people to contribute to the source code. In order to know the current state of the software product automatically and have it verified and analysed with the help of tests and other tools, Continuous Integration was introduced. This book "Integrating PHP Projects with Jenkins" is here to help you learn how to setup Jenkins and your first jobs.
Community Spotlight: Jibran Ijaz
Jibran Ijaz is a Drupal developer, and is the only Drupal Core contributor in Pakistan. A member of Drupal.org since he began building websites in 2010, Jibran has become an important member of both his local community and the greater global Drupal community. The Drupal Association spoke with Jibran over email and asked him a few questions. We’re excited to share the conversation with you. |
Jobs
PHP Engineer - The Nerdery
As a PHP Software Engineer at The Nerdery, you'll have the opportunity to work on projects for a wide range of clients. We have opportunities to solve customer projects with a wide variety of frameworks and platforms such as Symfony, Silex, Drupal, WordPress, ExpressionEngine, Craft and Zend Framework. The position provides opportunities to expand your horizons to reach your personal development goals.
To post a job advert please contact [email protected] |
Interesting Projects, Tools and Libraries
silex-scaffolding
A reusable Silex PHP micro-framework web application framework.
elastica
Elastica is a PHP client for elasticsearch.
unirest-php
Unirest is a set of lightweight HTTP libraries available in multiple languages, built and maintained by the Mashape team.
phploc
A tool for quickly measuring the size of a PHP project.
phpservermon
PHP Server Monitor is a script that checks whether your websites and servers are up and running.
phpstack
Docker - and Shipyard - managed PHP development stack: Nginx, MySQL, MongoDB, PHP-FPM, HHVM, Memcached, Redis, and Elasticsearch. Includes an optional Vagrant-managed CoreOS proxy box at your leisure.
apache-php
Simple base docker image to run PHP applications on Apache.
twitter-php
Twitter for PHP is a very small and easy-to-use library for sending messages to Twitter and receiving status updates.
mobile-detect
Mobile_Detect is a lightweight PHP class for detecting mobile devices (including tablets).
october
Free, open-source, self-hosted CMS platform based on the Laravel PHP Framework.
assetic
Assetic is an asset management framework for PHP.
twig
A flexible, fast and secure template language for PHP
whoops
An error handler base/framework for PHP. Out-of-the-box, it provides a pretty error interface that helps you debug your web projects, but at heart it's a simple yet powerful stacked error handling system.
predis
Flexible and feature-complete PHP client library for Redis.
phpbrew
PHPbrew builds and installs multiple version PHP(s) in your $HOME directory.
fatfree
A powerful yet easy-to-use PHP micro-framework designed to help you build dynamic and robust Web applications - fast!
phinx
Phinx makes it ridiculously easy to manage the database migrations for your PHP app. In less than 5 minutes you can install Phinx and create your first database migration. Phinx is just about migrations without all the bloat of a database ORM system or framework. |
Please help us by clicking to our sponsor:
From our sponsors:
|
So, how did you like this issue?
|
Protect your PHP code with SourceGuardian 10. Free trial.
|
|