Here we are again PHP fans, with your latest edition of phpweekly.com.
We begin this week with a bit of PHP history from the man himself, Rasmus Lerdorf. He shares with us a changelog going back over twenty years ago to the very early days of PHP.
Also this week, we take a look at how to create a custom queue driver for Laravel, when Joe Dixon built his own.
The latest Full Stack Radio podcast features the author of Take My Money, Noel Rappin, discussing how to fix common payment handling mistakes on the web.
Plus Freek Van der Herten shares some of the packages that he feels make developing a Laravel app easier.
And finally, after seven years, this years Lone Star PHP will be the last. Taking place over three days in April, the Dallas conference will include the popular training day as well as two days of conference talks.
Have a great weekend,
Cheers
Katie and Ade |
We love our sponsors. Why not try them?
From our sponsors:
|
Read Now. Research Note: Avoid Failure by Developing a Toolchain That Enables DevOps
(ads by LaunchBit) |
|
Articles
A Bit of PHP History, from Rasmus Lerdorf
PHP Ran across this Changelog from a long long time ago. Read from the bottom up. I added the PHP Tools lines at the bottom for context. So many early decisions made on a whim still affecting us today. And then there are things like "Removed **, // and %% operators" which did a vector dot-product and its inverse, I think. I seem to recall deleting it when I tried to document it. No years on most of the entries, but version 1.90 was on Sept.18, 1995.
The Syntax of Tech Communities
Just like the programming languages that are the centres of our communities, each community has its own set of rules and idioms - they have a real life syntax, and all differ from PHP. This post is about conferences specifically, and how communities place different priorities on different things when it comes to how they run, organise, speak at, and attend events.
PHP 7.2: The First Programming Language to Add Modern Cryptography to its Standard Library
Last week, the voting phase closed on an RFC to add libsodium to PHP 7.2. The result was unanimous (37 in favor, 0 against). When version 7.2 releases at the end of the year, PHP will be the first programming language to adopt modern cryptography in its standard library.
DDD Europe Conference Report - Part I
Whilst attending the DDD Europe conference in Amsterdam, Matthias Noback thought it might be interesting for people at home to read up on some of the topics that this interesting (and well-organised) conference covered.
PHP 7 Vs HHVM: Which One’s Cut For My WordPress CMS?
While PHP is still considered the favourite scripting language of many web developers, a virtual tool capable of executing PHP code called Hip Hop Virtual Machine (HHVM) has been giving it tough competition. The users of both platforms argue superiority of one over the other, the choice for someone starting new would depend on his familiarity with either of the platforms.
MySQLi vs PDO vs MySQL Difference, Performance Benchmark Comparison, Security and Converter that Works in 2016 and 2017
Since PHP 7 was introduced and PHP 5 end of support life was reached, many hosting companies dropped PHP 5 from their servers and PHP developers were forced to migrate their code to work with PHP 7. One of the changes of PHP 7 was the discontinuation of the original MySQL extension. Developers had to choose to migrate their code to use either the MySQLi or and the PDO extension. Read this article to learn about the differences and decide which is the best for you to migrate your code to work on PHP 7 or later, as well learn about some recommended packages that use PDO or MySQLi for performing common database purposes like backup, security, user registration and login, database abstraction, ORM (Object-Relational Mapping), etc. |
Tutorials and Talks
Setting Up Local Step Debugging with PhpStorm
Setting up debugging in an IDE with a local development environment has gotten so easy it can be done in a few automated steps. In this post I will demonstrate how to get step debugging functioning with PhpStorm and Zend Debugger when the server is set up on a local environment.
Building Your Startup: Dynamic Ajax Forms for Scheduling
In today's tutorial, I'll guide you through the initial set of comprehensive changes to the meeting scheduling interface. My goal was to use Ajax to make all of the common scheduling activities possible without any page refresh. Some aspects of this turned out to be simple and others quite complicated. In this episode, I'll focus on the straightforward parts: how to basically construct Ajax UX requests in your PHP-based Yii application.
Extracting Data Objects
Extracting data objects from your code will make it easier to read and write, easier to test and more forward compatible. This post shows you the two most common cases where introducing a data object makes sense and how to do it.
How To Do RAD Prototyping and Development With The ReflectionBasedAbstractFactory
Rapid application development isn't normally associated with Zend Framework. That's considered Laravel's domain. But thanks to the ReflectionBasedAbstractFactory, prototyping and rapid application development is now just as easy in Zend Framework as it is in Laravel. In today's tutorial, I'm going to show you how.
Five NodeJS MySQL ORMs
ORMs help to abstract data mappings between your code and the database, easing data querying and manipulation. It can also help to easily change the underlying database engine without (mostly) changing any code. The following are a few ORMs you can use with nodejs.
Taming the Snoo: Playing with the Reddit API
Reddit is a social networking, entertainment, and news website where the content is almost exclusively submitted by users. According to this report, in February 2016 Reddit had 36 million user accounts, 231 million unique monthly visits, and 11.464 active communities. A recent study also showed that 80% of Reddit users get their news from there. Reddit also offers its own API. This way, we can use all the information available on Reddit to enrich our own websites or build our own Reddit clients. In this article, we will tackle some basic Reddit API usage with PHP.
Rendering Problem Details in Slim
As I've already noted, in the project I'm currently building, I'm rendering errors in my Slim Framework API using RFC 7807: Problem Details for HTTP APIs via Larry Garfield's ApiProblem component and rka-content-type-renderer. One place where we need to integrate this approach into Slim is in the error handlers. Let's look at NotFound. To ensure that we return a response in the right format, we need to implement our own NotFound handler.
Creating a Custom Queue Driver for Laravel
Ever needed to use a queue service not supported by Laravel? No, me neither! However, recently I needed to tweak the config for the SQS driver in order to utilise a couple of the Amazon configuration settings. Unfortunately, these settings are not natively exposed by Laravel, so I decided to build my own driver. Here’s how it went.
Introducing Laravel Mix (new in Laravel 5.4)
Laravel Mix. The same and yet entirely different from Laravel Elixir. If you're not familiar with Laravel Elixir, it's a wrapper around Gulp that makes it really simple to handle common build steps—CSS pre-processing like Sass and Less, JavaScript processing like Browserify and Webpack, and more. In Laravel 5.4, Elixir has been replaced by a new project called Mix. The tools have the same end goals, but go about it in very different ways.
Current Vim Setup for PHP Development
I made some changes to my Vim setup for PHP development recently, so it’s time to write it all down. I’m more than sure that I’ll break it soon and won’t be able to remember all the things I did to have the current setup.
PHP’s Not Dead! PHP7 In Practice
At OLX Europe we operate 10 sites, of which OLX.pl is the biggest one. All our sites need efficient operations, so migration to PHP7 was our top priority. This post is to reflect on the issues we had to address and the effects of PHP7 rollout. The migration was commented on at the PHPers Summit 2016.
Dynamic Image Resizing via URI with Glide and Slim
If you have ever used WordPress.com backend. You will notice its image resizing works by appending a dimension string at the end of the URL. In this tutorial, we will show you how to do that for your own project. At the end of this tutorial, you will have an image resizing server that is able to give you specific dimension upon request.
Understanding The Laravel Macroable Trait
If you check the Laravel codebase I’m sure that you can observe that Laravel makes use of traits. There is one trait in the source code that pulls my attention. I’m talking about the Macroable trait. In case you don’t know, you can define custom responses using macros.
Achieving Modular Architecture with Forwarding Decorators
As your web application becomes larger, you certainly start to think more about designing a flexible, modular architecture which is meant to allow for a high amount of extensibility. There are lots of ways to implement such architecture, and all of them circle around the fundamental principles: separation of concerns, self-sufficiency, composability of the parts of an app. There is one approach which is rarely seen in PHP software but can be effectively implemented — it involves using native inheritance to provide manageable patching of the software code; we call it the Forwarding Decorator. |
News and Announcements
Homestead Now Includes Mailhog
A new Homestead base box has been released: Version 1.1.0. This release includes a new local mail handing system named Mailhog. The grunt-cli npm package is now installed globally, OPcache is now always invalidated, and finally we added some package-cleanup to the build process to lower the download size of the final compressed base box.
Laracon Online - March 8th 2017
There’s nothing like attending a Laracon, but unfortunately, not everyone can take part in Laracon US or EU in person. That’s why we’ve created Laracon Online. The easiest and most affordable way to get the Laracon experience. We’ve put together a full day of talks featuring some of Laravel’s brightest minds, and we’re streaming them directly to your home or office. We’ll be covering what’s new in Laravel 5.4, testing in Laravel, changes to the Javascript stack in Laravel and so much more. Early Bird tickets are on sale now.
Midwest PHP Conference - March 17-18th 2017, Minnesota
Midwest PHP is the FUN conference. This is our fifth annual conference, and each year it gets better and better. Our goal is to share best practices, ideas, and techniques about building state-of-the-art software applications. Tickets are on sale now.
Lone Star PHP - April 20-22nd 2017, Dallas
It is a bittersweet joy to announce that Lone Star PHP 2017 will be our seventh and final conference. It's shaping to be the best one yet with all of the great PHP speakers and content you've come to expect from Lone Star PHP. We will again provide our popular Training Day for more in-depth and hands-on experience for all that attend. We look forward to having you attend our blowout celebration and are excited to see old and new faces in the local and wider PHP community. While it may be the last year for Lone Star PHP, we're excited to see other community conferences and user groups take the torch to inspire their local developers. Tickets are on sale now.
CoderCruise - July 16th-23rd 2017, New Orleans
CoderCruise is the spiritual successor to php[cruise] that was run in 2016. The PHP community had so much fun that we decided we needed to expand the idea to the greater web tech community! This will be a 7-day cruise out of the port of New Orleans that will include 3 days of conference (while at sea) and 3 days at the ports of Montego Bay, Grand Cayman, and Cozumel. We are looking for a broad range of submissions covering a wide range of web technology topics including coding, design, content, and more. Given the scope of this conference, emphasis will be given to talks that appeal to all web technologists regardless of their programming language of choice (or lack thereof). Tickets are on sale now.
Laracon EU - 28-30th August 2017, Amsterdam
Are you a developer who has a passion for building web-applications? Do you love Laravel or are just in the process of getting started? Do you want to meet the community members that help make it all happen? Then this is the place to be. Laracon EU is a unique international Laravel event with over 600 attendees. The conference has multiple tracks and is focusing on in-depth technical talks. Come learn about the state of the industry while networking with like-minded and diversely experienced developers. Blind Bird tickets are on sale now. |
Podcasts
Three Devs and a Maybe Podcast - Aha! Moments with Steven Proctor
In this weeks episode we are lucky to have Steven Proctor back on the show. We start off discussion by congratulating him on 82 episodes of Functional Geekery, and the commitment it takes to do a podcast and not just ‘podfade’. From here we move on to highlight any commonalities he notices with people getting into FP, how he stays on-top of the latest advancements and how he finds the guests he wishes to speak to. This leads us on to compare learning functional concepts within a language you already know vs. in a totally different lanaguge which is rooted in the principles. Finally, we chat about interesting projects that are on his radar and advice that he has for people who wish to begin exploring FP.
Laravel IO Podcast - Episode 52: Doug Pro
In this episode, the crew talks about Mix, Dusk, Laracon US, package development using TestBench, GitLab, and more.
Full Stack Radio Podcast Episode 58: Noel Rappin - Fixing Common Payment Handling Mistakes
In this episode, I talk to Noel Rappin about common mistakes developers make when handling payments on the web and how to fix them.
MageTalk Magento Podcast #116 – Achievement Unlocked
We recap Magento Masters and talk about new features for Commerce Hero
Laravel News Podcast LN31: Laracon Online with Ian Landsman
In this episode, Jacob and Michael are joined by Ian Landsman to discuss the exciting new conference venture Laracon Online.
LaraChat Live - Episode #20
Today on Larachat Live we welcome special guest Eric Barnes of Laravel News.
The Laracasts Snippets Episode 57: So You're Going to be a Dad?
Let's take a break from code this week, and talk about the person behind the code. When I found out my wife was pregnant last year, a million different thoughts and concerns went through my head all at once. Having your first child is like nothing you've ever experienced before. If you have one on the way, here's what to expect...from a male's point of view.
Zend Framework Quick Bites Episode 24 - ReflectionBasedAbstractFactory Overview
In this episode, we’re talking about how to do rapid application prototyping and development with Zend Framework, by using the ReflectionBasedAbstractFactory. If you’ve not heard of it, it makes Zend Framework more Laravel-like, by (largely) avoiding the need to create factories to instantiate classes. I’m sure you’ll agree that this represents a MASSIVE time saver. It’s an excellent addition to Zend ServiceManager, one I’m sure will quickly gain a lot of traction.
PHP Ugly Podcast #47: Cruising
This weeks topics include the release of Laravel 5.4, and Lone Star PHP conference. |
Cloudways Interview with Manuel Lemos
Manuel Lemos is the founder of PHPClasses and an active member of the PHP community. He has been involved in programming since the 1980s. He is a speaker, a programmer, and a writer who works on different scripts and has been contributing to the PHP community since 1997. In his interview with Cloudways, Manuel talks about the beginning of his career, how he started PHPclasses.org and gave his tips on migrating to PHP 7. He also discussed his workflows. Last, but not least, he recommends a CMS for beginners to start on.
Book Review: Fifty Quick Ideas to Improve Your Tests
Fifty quick ideas to improve your tests is, well, a series of fifty quick ideas that you can implement on some of your automated test suites to improve their value or lower their creation or maintenance costs. These ideas are pattern-like in which they are mostly self-contained and often independent from each other. They are distilled from real world scenarios that the authors (David Evans, Tom Roden and Gojko Adzic) have encountered in their work.
Acquia Podcast: Don't Miss Drupal Camp London 2017!
A conversation about the event and why you should be there, too, this time around with Ben Wilding and Waliur Rahman, members of the 2016 Drupal Camp London organising team. Come along March 3-5, 2017, to Europe's biggest (best?) community event on the calendar! Watch the video here.
Packages That Make Developing Laravel Apps Easier
In this post I’d like to share some of the packages that make developing a Laravel app easier.
Node.Js in Action (by Nathan Rajlich, published 31st January 2017)
JavaScript on the server? You bet! Node.js is a JavaScript framework that can be used to create scalable, high-performance web applications. Using asynchronous I/O, the server can do more than one thing at a time, a key requirement for real-time apps like chat, games, and live statistics. Node.js in Action, Second Edition is a thoroughly-revised new edition that starts at square one and guides readers through all the features, techniques, and concepts needed to build production-quality Node applications. |
Jobs
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 [email protected] |
Interesting Projects, Tools and Libraries
curl
Custom PHP curl library for the Laravel 5 framework.
opulence
A simple, secure and scalable PHP application framework.
socialconnect auth
Open source social sign on PHP. Connect your application(s) with social network(s).
yin
The efficient and elegant JSON API server library for PHP.
timegrid
Free, open-source, self-hosted online reservation platform based on the Laravel PHP Framework.
bat
A Booking and Availability Management Library for PHP.
dcrypt
A petite library of essential encryption functions for PHP (5.3+).
yeswiki
A wiki system written in PHP, including extensions making collaboration more simple (databases, maps, easy editing, bootstrap themes,...)
sitemap
A tool to generate XML sitemaps.
pudl
PHP Universal Database Library - connects to and generates queries for SQL Servers.
minify
CSS & JavaScript minifier in PHP.
saft
The Saft PHP framework provides RDF handling and support for Semantic Web technologies. |
Please help us by clicking to our sponsor:
From our sponsors:
|
Read Now. Research Note: Avoid Failure by Developing a Toolchain That Enables DevOps
(ads by LaunchBit) |
|
So, how did you like this issue?
|
Protect your PHP code with SourceGuardian 10. Free trial.
|
|