Welcome to the latest @phpweekly news.
This week the PHP development team has announced the immediate availability of PHP 7.1.5 and 7.0.19, and all users are encouraged to upgrade.
Other releases this week include WordPress 4.8 Beta 1, available for testing, and Laravel 5.4.22 which is available now.
We have the latest tutorial in the Building Your Startup series, showing you how to create a publicly accessible page to share with people in order to schedule a meeting.
Plus, Matthew Setter is in the process of writing a book about the essentials you need to know to build applications with Zend Expressive, available to order very soon. Send him your email address and he will keep you posted.
And finally, PHP community member, conference organiser, software expert and developer, Anna Filina, has been interviewed by the Cloudways team this week. Learn all about Anna here.
If you've written, read or heard anything PHP related that you think the community would like to know, please drop me a line on [email protected].
Cheers
Katie and Ade |
Please help us by clicking to our sponsor:
Protect your PHP Code
Why not try SourceGuardian 11. Click here to download a 14 Day Trial copy. Protect your code using Windows, Linux or Mac and run everywhere with our free Loaders. |
Articles
Digital Document Management with Eversign SAAS - everSign PHP Document Signing Package Blog
The days of signed documents being illegible from multiple faxing, and high cost of overnight deliveries, are over. From the individual to the large business, digital document management brings tech to the out dated practices currently in use. Read this article to learn how you can implement digital signature support in your Web applications using everSign PHP Document Signing package to access the features of the everSign API.
Drupal Association April 26, 2017 Board Meeting Update
After board meetings, I publish a blog post to provide an overview of the meeting along with the board packet, meeting minutes, and a video of the meeting. Since we just had a board meeting at DrupalCon Baltimore, I want to share details about that meeting as well as pull the lens back to give the community more insight into board meetings and our 2017 schedule. I hope this additional information gives better insight into the Drupal Association’s board activities.
WordPress Now on HackerOne
WordPress has grown a lot over the last thirteen years – it now powers more than 28% of the top ten million sites on the web. During this growth, each team has worked hard to continually improve their tools and processes. Today, the WordPress Security Team is happy to announce that WordPress is now officially on HackerOne!
“Action Injection” As A Code Smell
Circumstance has conspired to put Action Injection discussions in front of me multiple times in the past few days. Having seen the approach several times before, I have come to think that if Action Injection is the answer, you might be asking the wrong question. I find it to be a code smell, one that indicates the system needs refactoring or re-organising. |
Tutorials and Talks
Introducing Ponzu: A CMS and Server Framework in Go
Here’s a scenario: you’ve been tasked with the creation of a modern app or website for a client or your company. You know you’ll need a dashboard for administrators to add content, manage links and otherwise fairly simple data, and a front-end that turns that data into a brilliant, usable design. You may naturally turn to WordPress for its famous CMS, but you don’t really want to set up all those custom fields for content types other than Post or Page, plus you’re going to need some JSON data for the React/Angular/Vue JS front-end. Considering Ruby on Rails is an option, but the available CMS’s aren’t the easiest to use, and deploying one can be even harder. What should you do? Enter: Ponzu.
The List Function & Practical Uses of Array Destructuring in PHP
PHP 7.1 introduced a new syntax for the list() function. I've never really seen too much list() calls in the wild, but it enables you to write some pretty neat stuff. This post is a primer of list() and it's PHP 7.1 short notation, and an overview of some use cases I've been applying them to.
Quickly DD Anything From The Commandline
Laravels tinker command allows you to run any code you want as if you are inside your Laravel app. But if you want to run a single line of code it can be a bit bothersome. You must start up tinker, type the code, press enter, and quit tinker. Our new spatie/laravel-artisan-dd package contains an Artisan command to dd anything from the commandline. No need to start and quit tinker anymore.
Programming With Yii2: Building Community With Voting, Comments, and Sharing
In todays tutorial, I'm going to show you how to extend Yii to easily mimic a site like Reddit with voting, comments, and sharing.
PDS Skeleton by Example: A Standard for File and Folder Structure
Looking at the Packagist registry, we can see that most packages follow a pattern, with some small changes to fit their needs, while others have a weird folder structure that takes time to get your head around. This problem has been solved in different ways by different people. Some frameworks have their own recommendations on how to structure your classes and assets, while others have a skeleton that you can use as a starting point. In this article, we’re going to explore the php-pds/skeleton and use it to build a small package as a demonstration.
Webserver .phar Handling Lands in Distributions
Three years ago I described how to configure your web server to handle .phar files. Installing PHP applications is then as simple as copying a single file onto your server. In the last couple of weeks I talked to the Debian and Fedora PHP package maintainers and they patched their packages to add support for .phar. Unfortunately I was a little bit late, which means that neither Debian 9 nor Fedora 26 will contain the patches. Fedora 27 (ETA: end of 2017) and Debian 10 (ETA: 2019) will natively support .phar files in Nginx and Apache. If you use Ondřej Surý's PHP 7.1 package repository then you'll have support for .phar files already today.
Supercharge Your Laravel Tinker Workflow
Laravels command line tool is called "Artisan," and it comes with a few powerful features out of the box. Tinker, accessed via PHP artisan tinker, is arguably my favourite Artisan command. It speeds up my workflow and allows me to interact with my application in ways I would have never thought possible.
Autocomplete Composer Script Names On The Command Line
As I add more and more of my own script targets to my composer.json files, I find that it would be helpful to have tab autocomplete in bash. I asked on Twitter and didn't get an immediate solution and as I had already done something similar for Phing, I rolled up my sleeves and wrote my own.
Using Laravel Mix for Your WordPress Theme
Laravel Mix is a fluent wrapper around the webpack module bundler, and it provides common tools that help you compile CSS and JavaScript. It’s easy to work with, and although it comes baked into the Laravel framework, you can use it anywhere. This site is using WordPress, and when I created the theme I used Mix to handle the asset compiling; it was simple to setup. Here is a quick overview of how I did it in four steps.
Building Your Startup: Using Routes for Schedule With Me
For a long time since I began this project, I've wanted Meeting Planner and Simple Planner to have a publicly accessible page you can share with people to schedule a meeting with you. In other words, "Sure, let's meet, just visit my schedule with my page at Meeting Planner, I'm Bernie Sanders (no space)." In today's tutorial, I'll show you I've done it using Yii's routing and some of the related issues that came up.
Preview Email With DebugKit in CakePHP 3
The de-facto CakePHP development tool DebugKit, shipped along with CakePHP 3, already provides a way to preview an email during development. It renders the email right inside the browser so that we can edit the email view and refresh the browser to get instant feedback. In this tutorial, we introduce you DebugKit mail panel, a way to preview your email during development without actually sending it.
User Authorisation in Laravel 5.4 with Spatie Laravel-Permission
When building an application, we often need to set up an access control list (ACL). An ACL specifies the level of permission granted to a user of an application. For example a user John may have the permission to read and write to a resource while another user Smith may have the permission only to read the resource. In this tutorial, I will teach you how to add access control to a Laravel app using Laravel-permission package. For this tutorial we will build a simple blog application where users can be assigned different levels of permission.
Extracing Value Objects
Software systems usually get more complex over time. In the beginning a variable starts out to represent something very simple with very few rules and constraints that are enforced in a single location of the code.
The Case for Singleton Objects, Façades, and Helper Functions
Last year I took several Scala courses on Coursera. It was an interesting experience and it has brought me a lot of new ideas. One of these is the idea of a singleton object (as opposed to a class).
Context-specific Escaping With zend-escaper
Security of your website is not just about mitigating and preventing things like SQL injection; it's also about protecting your users as they browse the site from things like cross-site scripting (XSS) attacks, cross-site request forgery (CSRF), and more. In particular, you need to be very careful about how you generate HTML, CSS, and JavaScript to ensure that you do not create such vectors. As the mantra goes, filter input and escape output. Believe it or not, escaping in PHP is not terribly easy to get right. |
News and Announcements
PHP 7.1.5 Released
The PHP development team announces the immediate availability of PHP 7.1.5. Several bugs have been fixed. All PHP 7.1 users are encouraged to upgrade to this version.
PHP 7.0.19 Released
The PHP development team announces the immediate availability of PHP 7.0.19. Several bugs have been fixed. All PHP 7.0 users are encouraged to upgrade to this version.
WordPress 4.8 Beta 1
The first beta of 4.8 is now available for testing. You can use the beta tester plugin (or just run trunk) to try the latest and greatest, and each of these areas could use a ton of testing. We’re planning a smaller WP release early next month, bringing in three major enhancements.
Laravel 5.4.22 Is Now Released and Includes a Security Fix
Laravel 5.4.22 is now released and available. This release fixes a security vulnerability related to the password reset system and everyone should upgrade.
The CakePHP Conference - June 8-11th 2017, New York
Every spring we hold our annual conference dedicated to CakePHP. For the past 10 years, the framework has been a benchmark for PHP development, providing developers with a full MVC stack solution to build powerful applications which scale. This, coupled with the amazing community backing and thousands of plugins, makes CakePHP the number one choice for those who love code. That's why we ask you join us at CakeFest 2017, and experience open source at its very best! Tickets are on sale now.
PHP South Coast - June 9-10th 2017, Portsmouth
That’s right, the last ever PHP South Coast conference will be running not one, but two days of talks. This means there will be more opportunity for new speakers to be a part of the conference as well as more experienced speakers being present on the lineup. On the Friday we will have two tracks all day, followed by a social event in the evening (more details to be announced). On Saturday we will have one track of talks, starting slightly later in the morning so that everyone is nice and refreshed from the night before :) 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.
Scotland PHP Conference - November 4th 2017, Edinburgh
The Scotland PHP Conference is back for a second time, where community members from around the world come together to learn and share information about the latest trends and technologies in professional PHP development. The Call for Papers is now open. |
Podcasts
MageTalk LIVE @ Imagine 2017, Day 1 Part 3 – “The Future of User Engagement” with (@swords and @mattparkinsonuk)
MageTalk LIVE at Imagine 2017 continues with the future of User Generated Content featuring John Swords of TurnTo and Matt Parkinson of Gene Commerce UK.
LaraChat Live - Episode #26 Docker v.s. Vagrant
Docker vs Vagrant bringing in TJ Miller and Mahmoud Zalt to help us learn and break down what tool is best!
North Meets South Web Podcast Episode 28 - Eloquent Observers, Managing Client Expectations, and Laravel Packages
In this episode, Jake and Michael talk about Eloquent observers and answer listener questions about managing client expectations and packages we use in our Laravel applications.
PHP Ugly Podcast #59: Bert and Ernie (and Tom)
Topics include HipChat Security Notice and Rubber Duck Debugging.
Three Devs and a Maybe Podcast - Catching Up With Mr Hart
In this weeks episode we are joined by fellow co-host Fraser Hart. We start off by discussing what he has been up to since his last podcast appearance - ranging from completing an Ironman, to promotions at work. From here we highlight how he balances development with his new project managerial role, how his company has started to adopt React/Redux and moving over to Webpack 2. Finally, we delve into the different server stacks we are using, and how the KISS design-principle plays a key-role.
Voices of the ElePHPant - Interview with Michelangelo van Dam
This week Cal Evans spoke to prominent PHP community member Michelangelo van Dam. |
PHP OOP Way by Sergey Zhuk
A practical guide to writing robust, maintainable, and bug resistant object-oriented PHP code, that covers advanced topics, concepts, and techniques of the object-oriented programming, starting with such basic terms as encapsulation and inheritance and ending with composition and design patterns.
*This week receive a PHP Weekly exclusive 50% discount simply by clicking here.*
Anna Filina On PHP Trainings And Future Of PHP Frameworks
Today we are honoured to have Anna Filina for this interview. She is currently a vice president at FooLab. She is also an organiser for ConFoo, a world-renowned conference for developers in Montreal and the Vancouver area. Additionally, Anna speaks regularly at international PHP conferences, provides training and consultancy to the developers around the world.
Learn the Essentials of Zend Expressive
If you've enjoyed reading the Zend Expressive tutorials here on the blog, then you're going to love the new book that I'm writing! It's called "Zend Expressive Essentials". It's a short book that will step you through the essentials that you need to know to build applications with Zend Expressive. It's not the kitchen sink nor bible type of book. It’s one that shows you, in a practical way, enough of how Expressive is put together and how to use it, so that you can quickly get started building real-world applications.
PHP Microservices (by Carlos Perez Sanchez and Pablo Solar Vilarino, published 29th March 2017)
The world is moving away from bulky, unreliable and high-maintenance PHP applications, to small, easy-to-maintain and highly available microservices, and the pressing need is for PHP developers to understand the criticalities in building effective microservices that scale at large. This book will be a reliable resource, and one that will help you to develop your skills and teach you techniques for building reliable microservices in PHP.
Drupal 8: Efficient Application Development Kindle Edition with Audio/Video (by Jason Blanda, Gregg Marshall and Neeraj Kumar, published published 30th March 2017)
Drupal 8 brings a lot of groundbreaking changes to its ecosystem, from basic architectural changes to functional ones. Understanding these changes is vital to you if you are trying to explore Drupal 8. In this course, you will get a practical knowledge of Drupal 8, that means you can jump into any existing Drupal 8 website and understand how it is built and how it is put together. Finally, we will learn to launch a Drupal 8 website.
A Collection of Laravel Tutorials Kindle Edition (by Mario Bašić, pubished 30th March 2017)
Tired of long and bloaty screencasts? Learn Laravel by reading tutorials and completing courses. No more rewinding or pausing videos. Only the most detailed text instructions with open-source 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
dotplant2
Open-source E-Commerce CMS based on Yii Framework 2(yii2).
grav
A fast, simple and flexible, file-based Web-platform.
elefant
A refreshingly simple PHP content management system and web framework.
mediawiki
A free and open-source wiki software package written in PHP.
decoda
A lightweight lexical string parser for BBCode styled markup.
oakcms
A free, open-source CMS platform based on the Yii2 PHP Framework.
jetpack
Increase your traffic, view your stats, speed up your site and protect yourself from hackers with Jetpack.
gax-php
A set of modules which aids the development of APIs for clients based on gRPC and Google API conventions.
larablog
A full-featured blog using Laravel 5.4 & VueJS. Minimum library used.
phlex
A super-sexy voice interface for the Plex HTPC.
sifo
PHP Framework with "project inheritance", multiple DB support, balancing, Sphinx, Memcached, Redis and other stuff.
ludumdare
Sources for the 'Jammer' family of sites: Ludum Dare, Jammer, and Jammer Bio.
vichuploaderbundle
A simple Symfony bundle to ease file uploads with ORM entities and ODM documents.
rollbar-php
This library detects errors and exceptions in your application and reports them to Rollbar for alerts, reporting, and analysis. |
Please help us by clicking to our sponsor:
Protect your PHP Code
Why not try SourceGuardian 11. Click here to download a 14 Day Trial copy. Protect your code using Windows, Linux or Mac and run everywhere with our free Loaders.
|
So, how did you like this issue?
|
|