sticker

Subscribe! Enter your email address below:

NO SPAM: We absolutely hate spam. We will not share, rent, or give away your email address to anyone.You can unsubscribe at any time. Easily!

February 1, 2018


Hello and welcome to the latest @phpweeklynews.

Using a good quality PHP framework makes all the difference to the web development process. We take a look at three of the most popular frameworks, breaking them down to decide which is the best.

Also this week we've got the second part in the LAMP tutorial series on how to install MySQL/MariaDB on Ubuntu.

We have a Q&A Session with Laravel creator Taylor Otwell, recently recorded by the Vancouver PHP user group.

Plus the Serbia PHP Conference has been announced for May this year, taking place in Belgrade. Super Early Bird tickets are on sale now.

And finally, after a six month hiatus, the That Podcast team is back, discussing Meltdown and Spectre among other topics.

Have a great weekend,

Cheers
Ade and Katie

Please help us by clicking to our sponsor:

encrypt php scripts 
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

Three Things You Are Doing Wrong When Training Your Developers
It’s great that you understand that training your developers is important. Many managers get that and start down the road with the goal of increasing knowledge and productivity. However, some programs are more successful than others. If your program isn’t as successful as you might like, consider these three problems that managers often run into when developing and executing a developer training program.

Your Company is Screwing Itself by Not Supporting Open Source Software
“How long will that take to make?” Ah, the old dreaded words. Let’s all run to Twitter now and whine about how “this has never been created before” and “they don’t understand software”  -  and anyway, we all know you should never rush an artist.

The Mexican Standoff of PHP Frameworks
PHP is one of the most widely known and potent programming languages used today. However, despite the popularity of PHP, there are many businesses using PHP without making use of a quality PHP framework. This approach slows production time and increases costs.  A PHP framework is advantageous because it provides you with modules and codebase to help structure and accelerate the web development process. Below we take a look at three of the most popular PHP frameworks (Symfony, Laravel and Yii) and break down which is the best, and why.

Clash Between Top Laravel CMS: OctoberCMS VS AsgardCMS
Web developers and development agencies around the world love rapid application development. To keep up with the fast pace of development and fulfill client requirements within the deadline, developers often use a CMS. Popular CMS options available today include WordPress, Drupal, Joomla, and Magento. There are times when these established players are not up to the task. In such scenarios, developers often need a flexible and customizable CMS that are often created using the Laravel framework.

Getting Past Project Inertia
Whenever I am ready to start a new project, I usually sit down and start thinking about the tasks that need to be completed. And I start wondering which tasks I should complete first, second, third, etc. What often ends up happening is that I end up with such a long list of things that have to be done that I struggle to decide which one to do – and I end up in sort of an analysis paralysis. I can’t tell you how many times I’ve tried to start a personal project and ultimately failed to even get going, due to this. I call it Project Inertia.

Tutorials and Talks

PHP Software Development Workflow
Continuing from the previous post Developing a Command Bus in PHP, we will look into how to get started in setting up our composer library project. Although my PHP software development workflow does vary slightly from project to project, most steps are more or less the same. Whether your project is the result of a successful proposal or you want to build an open source composer package like we’re doing here, this post will guide you in working with PHP the right way. If you are learning PHP from scratch and find that I am missing some intermediary steps or making assumptions, please feel welcome to comment below and I’ll be more than happy to explain in more detail.

How to Install MySQL/MariaDB on Ubuntu   
The second part of our LAMP tutorial series: how to install MySQL (or MariaDB) on an Ubuntu server. This tutorial is intended for Ubuntu servers, the instructions should work on any LTS release of Ubuntu, including Ubuntu 14.04, Ubuntu 16.04, Ubuntu 18.04, even non-LTS releases like Ubuntu 17.10 and other Ubuntu-based distros. We tested this on an Ubuntu 16.04 server.

Parameter Type Widening in PHP 7.2
I have added “Parameter Type Widening” to PHP 7.2. The corresponding PR already got a lot of negative voices saying that it would break a lot of things. Recently there was another blog post saying how bad it is.

Supercharge Your WordPress Development
I think most developers would agree that WP-CLI (the self-described “command-line interface for WordPress”) is the best thing to happen to WordPress since my-hacks.php. It is my favourite way to use WP Migrate DB Pro, set up new WordPress sites, control WordPress with CRON, manage plugins, quickly test code, and a whole host of other tasks that are quicker and easier to complete via the CLI or a shell script.

GroupBy Multiple Levels in Laravel
Since Laravel v5.5.29 you can group collections by multiple levels. Let's see what this means and how this works.

Displaying Sites That Are Down on a Dashboard Using Oh Dear! Webhooks
At Spatie we have a dashboard against the wall that displays a lot of information useful for our company. One of the things it shows are the urls of client sites that are down. Behind the scenes it leverages the webhooks from Oh Dear!, a website monitoring service that Mattias Geniar and I launched a few weeks ago. In this blogpost I'd like to show how all of this works.

PHP-DI 6: Turning Into a Compiled Container for Maximum Performances
PHP-DI's motto is "The dependency injection container for humans". This is very important because it defines what PHP-DI tries to be: practical to use, consistent, predictable, with a configuration format that is easy to read and write and a great documentation. It also defines what PHP-DI does not try to be, and that is as much important. PHP-DI does not try to be the smallest, or the fastest container out there. And PHP-DI 5 is by far not one of the fastest containers. PHP-DI 6 will be much, much faster because it is a compiled container.

Rapid Web Deployment for Laravel With GitHub, Linode, and RunCloud.io
If you are a PHP programmer working with the Laravel framework, I am sure that you deploy your web application on cloud servers on providers like Linode, Digital Ocean, Vultr and the rest. That’s because with a framework like Laravel, which works tightly with tools like Git and Composer, it is less and less likely that your application can be served from a shared hosting environment. This article will show you how to set up your web server for your Laravel application on Linode cloud hosting using the RunCloud.io server management tool.

New in Symfony 4.1: Serialise and Deserialise From Abstract Classes
When working with objects that are pretty similar or share lots of properties, is common to use interfaces or abstract classes. The problem with classes that extend from other abstract classes is that the Serialiser component doesn't know how to serialise/deserialise them correctly.

PSR-15
Yesterday, following a unanimous vote from its Core Committee, PHP-FIG formally accepted the proposed PSR-15, HTTP Server Handlers standard. This new standard defines interfaces for request handlers and middleware. These have enormous potential impact on the PHP ecosystem, as they provide standard mechanisms for writing HTTP-facing, server-side applications. Essentially, they pave the way for developers to create re-usable web components that will work in any application that works with PSR-15 middleware or request handlers!

Makefile for Lazy Developers
Whatever the size of the software project, I believe in, subscribe to, and promote Continuous Integration. Personally, I rely on Travis CI as an automated build system. Even this blog here is built with, and eventually deployed into production by Travis CI. Regardless of whether an automated build system can be set up and used for a project or not, I prefer to be able to run build steps locally. This prevents stress testing the automated build system and taking away resources from other developers. Also, it gives me more confidence before committing and pushing changes upstream.

Writing Protobuf Services in PHP
Lately I’ve been investigating Protobuf as a replacement for JSON RPC services. If you aren’t familiar with Protobuf, it’s a language neutral serialization format from Google. It’s most commonly associated with Google’s RPC framework gRPC but it can be used standalone too. In this guide we are going to build a simple calculator RPC service using nothing but the Protobuf compiler and PHP.

Using the HTML5 Filereader API and PHP to Upload Images from Ionic Framework apps
From Canvas and Web Audio to Video manipulation and file handling the HTML5 APIs have opened up a lot of previously unreachable development possibilities. In the following tutorial I want to take you through using one of these API's: the HTML5 FileReader API to create a web based Ionic application that allows the user to select images which can then be uploaded and saved to a remote server - courtesy of PHP.

Laravel: Automatic Vendor Cleanup Command
When installing composer packages, they come up with lot of useless files and folders such as .git, tests, readme.md and more. When project becomes bigger with many packages, this junk takes considerable disk space. Since I work with Laravel framework most of the time, I created a command that allows me to automatically delete all these junk files whenever I happen to install or update composer packages.

Does Static Factory Violate Open/Closed Principle
Consider an application that provides some statistics reports. Reports are present in different formats: JSON for API, HTML for viewing in a browser and pdf for printing on the paper. It has StatisticsController that receives a required format from the request and returns a formatted report.
News and Announcements

Announcing F-Bar for Laravel Forge on iOS
F-Bar is an iOS application to manage and monitor your Laravel Forge servers from your Apple device, by Jan Östlund. Using the Forge API, you have access to your servers on the go!

ConFoo - March 7-9th 2018, Montreal
ConFoo Montreal is a multi-technology conference for web developers, with 155 presentations by popular international speakers, focused on pragmatic solutions for web developers. Great content and an amazing experience. Discounted tickets are on sale now.

Longhorn PHP Conference - 19th-21st April 2018, Austin Texas
Longhorn PHP is a 3-day conference in Austin, Texas to help PHP developers level up their craft and connect with the larger PHP community. Our main goal as a conference is to equip attendees to be better developers. If you work with developers or alongside developers, we'll showcase tools and techniques to level up your ability to solve the problems you face every day. Early Bird tickets are on sale now.

SymfonyLive Phantasialand - May 2nd-4th 2018, Phantasialand in Brühl
There will be a SymfonyLive again in 2018 - but in May we will not meet as usual in Cologne, but a little further south: in the Phantasialand in Brühl! As always, there will be two days of challenging workshops in Phantasialand on May 2nd and 3rd. On the conference day itself, a track awaits you with talks about Symfony and PHP. The Phantasialand offers us a new environment in which we can hold both the workshops and the conference. In addition, the conference ticket gives you unrestricted access to the park both on the workshop days and in the breaks of the conference! Early Bird tickets are on sale now.

PHP Serbia Conference - May 25-27th 2018, Belgrade
PHP Serbia Conference delivers high-value technical content about PHP and related web technologies, architecture, best practices and testing. It offers two days of amazing talks by some of the most prominent experts and professionals in the PHP world in a comfortable and professional setting. Super Early Bird tickets are on sale now.

Laracon EU - 29-31st August 2018, Amsterdam
Laracon EU is a unique international Laravel event with over 750 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

That Podcast Episode 42: The One With the CPU Vulnerabilities
Beau and Dave talk about pretty lights, Meltdown, Spectre, and cryptocurrencies.

Three Devs and a Maybe Podcast - Web Application Security, Part 2 with Scott Arciszewski
In this weeks episode we continue our discussion with Scott Arciszewski about all things Security and Cryptography. We start off the show by highlighting what a SQL injection attack is and the differences between (emulated) prepared statements. This leads us on to look into how to securely handle file uploads, what a reverse shell is and how to defend yourself against XSS/CSRF attacks. From here we touch upon the recent inclusion of libsodium into PHP, why mcrypt should be avoided, and the side-channel vulnerabilities that brought way to Meltdown and Spectre. Finally, we mention how computers generate seemingly random numbers, what a Web Application Firewall (WAF) is, and how WARD goes about protecting your systems.

Changelog Podcast #281: Gitcoin: Sustaining Open Source with Cryptocurrency
We're joined by Kevin Owocki, the founder of Gitcoin. Gitcoin is a platform to monetise or incentivise work in open source software. We talked about how Gitcoin sits at the intersection of sustaining open source and cryptocurrencies, their history and roadmap, their decision to leverage the brand name of Git, bug bounties, funded issues, web3, MetaMask, and the future of Gitcoin and how open source benefits. 

PHP Ugly Podcast #92: We Give Consent
Topics include upgrading Ubuntu and the end of Silex.

MageTalk Magento Podcast #158 – “The Most Perfect Eric, Ever”
Phillip and Kalen talk #magemh - an initiative to raise awareness for mental health in our Magento community. Plus: Kalen craps on one of our sponsors, NRF2018, Time Tracking software and Tensorflow/AI/ML.

North Meets South Web Podcast Episode 40: Model Accessors, Style Guides, and Nomads
Jake and Michael return for 2018 and discuss model accessors for relationships, documenting style guides, shared database migrations, and more!

Reading and Viewing

Vancouver PHPs Q&A session with Taylor Otwell
The Vancouver PHP user group recently had a Q&A session with Laravel's creator Taylor Otwell.

Newly Updated Course: Build a CMS With Laravel
Want to build your own content management system (CMS) in 2018? Learn exactly how it's done in our comprehensive course Build a CMS With Laravel, freshly updated with brand new lessons to take advantage of the latest features of Laravel 5.

Learn PHP For WordPress: First Steps
WordPress makes it easy to create content-rich websites, with powerful admin pages and the easy-to-use Customiser. However, there will come a time when the built-in options aren't enough, and you'll need to modify a theme or create your own plugin. That's where PHP comes in. PHP is the programming language that WordPress is built in, and if you want to take your WordPress skills to the next level, you'll have to learn PHP. In this course, Rachel McCollin will give you an overview of what PHP is and how it's used for WordPress themes and plugins, with examples. You'll go on to learn how to create a PHP file and use it to output HTML.

Happy Seventeenth Birthday Drupal
Seventeen years ago today, I open-sourced the software behind Drop.org and released Drupal 1.0.0. When Drupal was first founded, Google was in its infancy, the mobile web didn't exist, and JavaScript was a very unpopular word among developers.

Jobs

PHP Developer (m/f)
You’re proud to call yourself a nerd and consider programming in PHP to be more than just a job? You’d like to help us make our shop better and faster while simultaneously providing our customers with an unparalleled and flawless shopping experience? If you feel like this describes you, and also happen to have a weakness for new technology, you’re just the person we’re looking for!


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

shortuuid
PHP 7.1+ library that generates concise, unambiguous, URL-safe UUIDs.

goridge
Goridge is high performance PHP-to-Golang codec library which works over native PHP sockets and Golang net/rpc package.

ladybugbundle
This bundle provides an easy and extensible var_dump/print_r replacement for Symfony2 projects, both in controllers or Twig templates.

pufferpanel
An open source game server management panel, designed for both small networks and game server providers.

badge-poser
The PHP badges, renders some badges for your readme with the packagist information. 

gettext
PHP library to collect and manipulate gettext (.po, .mo, .php, .json, etc).

last-wishes
Last Wishes is a PHP application written following Domain-Driven Design approach.

trucker
A PHP package for mapping remote API resources (usually RESTful) as models in an ActiveResource style.

bullet
Bullet is a resource-oriented micro PHP framework built around HTTP URIs.

bottomline
A full-on PHP manipulation utility-belt that provides support for the usual functional.

latte
The intuitive and fast template engine for those who want the most secure PHP sites. 

airship
CMS Airship is a secure-by-default content management system, blog engine, and application development framework written for PHP 7.2 and above.

Please help us by clicking to our sponsor:

encrypt php scripts 
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?

Like us on FacebookFollow us on Twitter
We are still trying to grow our list. If you find PHP Weekly useful please tweet about us! Thanks.
Also, if you have a site or blog related to PHP then please link through to our site.

unsubscribe from this list | update subscription preferences 
 

Subscribe! Enter your email address below:

NO SPAM: We absolutely hate spam. We will not share, rent, or give away your email address to anyone.You can unsubscribe at any time. Easily!

Talk to us!

If you have some news, want to share a link with us or chat with us feel free to email us.

And we also have an RSS feed that you can use.

Like us on FacebookFollow us on Twitter

Copyright © PHPWeekly.com