|Welcome to the 150th edition of PHP Weekly news!
In this week's edition we have an unprecedented 15 PHP podcasts! So whether you are a fan of Laravel or Symfony, TDD or the RFC, I'm sure there will be one that interests you.
Also this week, want to learn how to create beautiful charts using PHP? We have a tutorial to do just that.
Next month sees the 6th Lone Star PHP conference, in Dallas. With two conference days, plus a training day for a more hands-on experience for attendees, tickets are on sale now.
Plus we take an in-depth look at Clean Code Architecture, the idea of which was to create an architecture which is independent of any external agency.
And finally, Thijs Feryn interviewed Derick Rethans during January's PHPBenelux conference.
Thanks to all of our subscribers in the PHP community who have made 150 episodes possible. Here's to the next 150 ;)
Katie and Ade
We love our sponsors. Why not try them?
The Rise of Drupal in India
Earlier this week I returned from DrupalCon Asia, which took place at IIT Bombay, one of India's premier engineering universities. I wish I could have bottled up all the energy and excitement to take home with me. From dancing on stage, to posing for what felt like a million selfies, to a motorcycle giveaway, this DrupalCon was unlike any I've seen before.
Documentation First: A Recipe for API Success
I've shipped a handful of greenfield APIs in recent months for different clients, and in each case I've been building the documentation before the API. I hadn't really recognised it as a pattern until someone else commented on it, but I do find this approach has worked well for my projects, so I thought I'd share my thoughts on this in a bit more detail.
Lessons From ConFoo
ConFoo 2016 is over. Over the past few days a huge amount of developers, most of them from Canada but also from the USA, The Netherlands, South Africa, France and quite a few other countries, came to Montreal for ConFoo. I know I had a lot of fun, and I surely learned a lot. Here I'll share some of the lessons of ConFoo.
Sourcehunt #4 – Reflection, Authorisation, Crons, and more
We skipped January’s Sourcehunt, but we’re back now, ready to boost the stardom of more projects!
Contributor Weekend: One-Hour Video
It’s time for our second global contributor weekend, and this time we’re focusing on the video team. For this month’s challenge, in honour of it being our second month, you have two options for how you can participate! The challenge for this month overall is to work with at least one hour's worth of WordCamp video, which you can do by either creating subtitles or editing the video file in preparation for upload to WordPress.tv.
Tutorials and Talks
Creating Cool Charts in PHP
Quick Tip: Sync a Fork with the Original via GitHub’s Web UI
When you fork someone’s repository on GitHub, you’ll want to update your fork with any changes made to the original. There are various ways to do this. In this quick tip, Bruno describes how to update your fork via the GitHub website.
Create a Custom Shipping Method in OpenCart: Part Two
In this series, we're discussing the implementation of a custom shipping method module in OpenCart. In the first part, we enabled and configured our custom shipping method using the configuration form in the back-end. Today, we'll implement the files which are required by OpenCart so that it can detect the custom shipping method and list it, along with the other enabled shipping methods, during checkout.
Handling Array Equality in PHP
If you want to check if two arrays contain the same values, regardless of order, you will have some issue using the operators == and ===. With the equal operator == you are able to check for equality based on the type coerced values and keys (regardless of order).
phpunit-bin - Run phpunit From Anywhere
These days it’s common for projects to supply phpunit via require-dev. Most of my projects do this, and this means that every project supplies their own bin/phpunit. I live on the command-line and it can be a bit annoying to invoke the correct phpunit script every time. So I wrote a small script that is installable globally.
Teaching and Learning Domain-Driven Design without Patterns
When development teams start to use Domain-Driven Design (DDD) in work projects, by focusing on patterns such as Entity, Repository, Services and Value Objects, then there is trouble ahead. In my experience with teams using DDD, the pattern-thinking can be very distracting and dangerous. An approach without patterns can bring the essentials across much better. Especially, less experienced developers have a hard time to follow DDD by pattern because the "Why and How are we doing this" is not easy to teach.
What Are Laravel 5.0 Facades?
The facade design pattern is a structural pattern that defines a simplified interface to a more complex subsystem. The pattern is based on creating a simple facade interface in front of the collection of required logic and methods. The facade itself maintains the dependencies. The purpose of this tutorial is to promote the facade in Laravel.
Dbal Storage for OAuth 2 Server
Recently I experimented a bit with OAuth 2.0 Server because I wanted to protect the API backend for the unKonf website using OAuth2 - mostly to see how easily I can integrate it with our Adroit middleware. While integrating OAuth2 Server and Adroit was fairly trivial, I was missing a Doctrine storage provider for OAuth 2.0 Server. Since I could not even find a package on packagist I thought about writing one myself.
Clean Code Architecture and Test Driven Development in PHP
The Clean Code Architecture was introduced by Robert C. Martin on the 8light blog. The idea was to create an architecture which is independent of any external agency. Your business logic should not be coupled to a framework, a database, or to the web itself. With the independence, you have several advantages. For example, you have the ability to defer technical decisions to a later point during development (e.g. choosing a framework and choosing a database engine/provider). You can also easily switch the implementations or compare different implementations, but the biggest advantage is that your tests will run fast.
Testing Drag and Drop with Behat and Guzzle
As you could see in previous posts, I'm working on a large application for Intracto where they want a lot of fancy visuals, and this turned into a mess when it came to write behat tests. This post will help you test position moving with drag and drop.
Maximizing PHP 7 Performance with NGINX, Part I: Web Serving and Caching
PHP is the most popular way to create a server-side Web application, with roughly 80% market share. (ASP.net is a distant second, and Java an even more distant third). The PHP universe includes a multitude of PHP frameworks; the most popular include Laravel, Phalcon, and Symfony 2. PHP is also the basis for popular content management systems (CMSs) such as WordPress and Drupal. This blog post is the first in a two-part series about maximising the performance of your websites that use PHP 7. Here we focus on upgrading to PHP 7, implementing open source NGINX or NGINX.
Why have Controllers as Services in Symfony?
If you're just getting started with Symfony then you get bombarded with quite a few terms and concepts. Two of them are Controllers and Services. Controllers are quite straightforward in their actions (ha-ha) and simply take requests and return responses.
|News and Announcements
WordPress 4.5 Beta 1
WordPress 4.5 Beta 1 is now available! This software is still in development, so we don’t recommend you run it on a production site. Consider setting up a test site just to play with the new version.
Lone Star PHP - April 7-9th 2016, Dallas
Welcome back to Lone Star PHP for another great year! We're in our sixth year and we're making things better all the time. This year's event will provide all of the great PHP speakers and content you've come to expect from Lone Star PHP. After great success, we are bringing back the Training Day which will provide a more hands-on experience for all that attend. Tickets are on sale now.
SymfonyLive - April 27-29th 2016, Cologne
We are happy to announce SymfonyLive Cologne 2016. This time, the conference will kick off with two workshop days, with the main, single track conference on Friday 29th April. Of course, there is going to be a hack day as well on Saturday at the Cologne SensioLabs office. Tickets are on sale now.
Dedicated PHP Track is New to DrupalCon USA
We’re excited to announce that we’ve partnered with the Drupal Association to help plan and organise the dedicated PHP track at this year’s DrupalCon in New Orleans. Our own Heather White is working with Larry Garfield (aka @crell) to identify PHP topics relevant to Drupal developers, review sessions and select speakers.
PHP Articles Report February 2016 Edition
This is the February edition of the podcast hangout recorded by Manuel Lemos and Arturs Sosins, to comment on the latest outstanding PHP Articles published recently. They commented on articles about detecting the user location by IP address using a Web service, improving site speed generating CSS sprites, capturing Web page screenshots using a Web service, rapid building of PHP framework based applications using CodeLobster IDE, implementing advanced features in WordPress plugins using OOP, and how to find where software engineers can make more money.
dev/hell Podcast Episode 72 - Hermits and Horses
Jason Myers came on the show to talk about his experiences running not one but TWO conferences in the Nashville, Tennessee area, along with how he ended up writing a book about a popular Python database abstraction tool, and why he prefers the hermetic lifestyle. Along the way Chris and Jason also managed to beat a dead horse for a few minutes.
Voices of the ElePHPant - Interview with Gemma Anible
This week Cal Evans talks to developer and speaker Gemma Anible, from Wonderproxy in New Mexico.
Laravel IO Podcast: Episode 42 - ActiveRecord & The School Of Zonda
In this episode, the crew is joined by Adam Wathan to discuss ActiveRecord and the Eloquent ORM.
Three Devs and a Maybe Podcast - PHP Data-Structures and RFC Discussion with Joe Watkins
In this weeks episode Edd is joined by podcast regular Joe Watkins. We start off catching up with what Joe has been up to since we last spoke, and his current experiences with upgrading a legacy code-base to PHP 7. Discussion about the stability of ‘uopz’ in-regard to PHP 7 is then highlighted, followed by his recent mentoring on a data-structures extension which has been met by much phrase. Joe discusses the goals behind the extension and how the developer (Rudi Theunissen) has done a great job in designing and describing the implementation. Following this, we chat about the draft Code of Conduct RFC that Anthony Ferrara proposed earlier this year (since taken over by Derick Rethans), which has been subject to much debate. Finally, we dive into a couple of other new RFCs that are in-discussion or recently accepted into the next release.
Sound of Symfony Podcast: Episode 12 - Building a Stronger Community
This time we're talking about the Symfony Community, how we can make it better, and what we can learn from other communities.
Full Stack Radio Podcast Episode 36: Jason McCreary - Building Laravel Shift
In this episode, Adam talks to Jason McCreary about building Shift, a tool that automates upgrading your application between framework versions.
Acquia Podcast - Acquia U: From Good Cook to Restaurant Chef - meet Erica Schroder
Erica Schroder joined Acquia in 2012 as a graduate of the Acquia U Drupal training bootcamp, and is an inspiration to me as a successful career-changer. As part of running arts and dance businesses, she's had a hand in with Drupal since Drupal 5 days, but Acquia U and her subsequent experience have helped make her a Drupal professional. We got the chance to sit down together in 2015 at Acquia's Boston headquarters.
MageTalk Magento Podcast #81 - The Boutique and the Bazaar
Phillip sits down with the one and only Tim Schulz to discuss Bigcommerce, SaaS, and the history of Varien and Magento.
Run Geek Radio Podcast: Episode 10 – Anxiety And How To Deal With It
In this episode Adam Culp shares what kept him from creating new posts these past couple of months. It also contains updates about his running and activity status, and also shares plans for the coming months.
PHP Round Table Podcast Episode 39 - From Idea To Production: Part 2
We get an update on the status of the project we discussed in Part 1 and discuss the next steps to take our dance event management app idea to production.
Free The Geek Podcast: Episode 12 - Talking about the Magic of TDD and Testing with Tom Oram
In this episode I have a fireside chat about all things TDD and testing with the sagely Mr Tom Oram, otherwise known as @tomphp.
Laravel News Podcast - LN10
Episode 10 of the Laravel News podcast is now out and we discuss CloudflareSSL and Forge, Code fonts, and more.
The Laracasts Snippets Episode 15 - 10 Business Tips When Launching Your First App
So you're a developer planning to launch your first SaaS or subscription site? The business side of things gets really complicated... really fast, right? In this episode, I rattle off ten tips and notes to be aware of, as you prepare for launch. We're less focused on code-specifics, and more the realities of starting and running a business.
ReadOrListen Podcast: Episode 14 - Diving Into a Laravel Audit
Recently the Zaengle team was asked to look over an existing Laravel application and give a review of the overall state of the code. We were to act as an independent third party, between a new studio who had inherited the codebase, and the client, who was anticipating launching the product.
Derick Rethans – MongoDB, Xdebug & PHP
Derick Rethans is my guest for this episode. The interview was recorded at PHPBenelux Conference 2016 in the community village.
Introduction to league/commonmark
League/commonmark is a well-written, super-configurable Markdown parser for PHP based on the CommonMark spec. In this lightning talk, we’ll introduce the CommonMark spec, discuss why it’s important, and demonstrate how the league/commonmark project can be used and extended for your own PHP projects.
“The Speed Of The New PHP 7 Engine Truly Sets The Stage Going Forward,” Says Adam Culp, Senior Consultant At Zend Technologies
Is Apple Wrong For Blocking the FBI? How I Make YouTube Thumbnails and More
In this episode of the John Morris Show, seven surprising Upwork proposal mistakes I see every day, Apple stands up to the FBI, how I make YouTube thumbnails and more.
Do you have a position that you would like to fill? PHP Weekly is ideal for targeting developers and the cost is only $50/week for an advert. Please let me know if you are interested by emailing me at firstname.lastname@example.org
Interesting Projects, Tools and Libraries
Front-controller micro-framework for PHP 5.3+ web applications
Mobile_Detect is a lightweight PHP class for detecting mobile devices (including tablets). It uses the User-Agent string combined with specific HTTP headers to detect the mobile environment.
A lightweight PHP annotation library, it supports both weak and strong typed annotations, JSON included.
Essence is a simple PHP library to extract media information from websites, like youtube videos, twitter statuses or blog articles.
An error handler 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.
Raven is a PHP client for Sentry (getsentry.com)
Archer is a library for standardising PHP unit testing, continuous integration and documentation behaviour across multiple projects, using a convention-over-configuration approach. It brings together several high-quality libraries to help improve the quality of a project's test suite and reporting tools.
Snappy is a PHP5 library allowing thumbnail, snapshot or PDF generation from a url or a html page.
A powerful and modern PHP debugging tool.
A PHP mode for GNU Emacs. This updates PHP Mode with features to make it more friendly to use with PHP 5.4 and later.
While developing and helping others develop PHP applications I noticed the trend to use PHP's arrays in nearly every task. Arrays in PHP are useful but they aren't well suited to object-oriented programming since they are not objects. I made this library to make writing object-oriented code easier.
A PHP client library for statsd.
This project was created in order to provide project skeleton when starting a new PHP project.
A micro framework for creating traditional or REST-like web applications.
PHP client library for interacting with a RETS server to pull real estate listings, photos and other data made available from an MLS system.
Brush is a complete object-oriented PHP wrapper for the Pastebin API.
|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.