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!

March 22, 2018

Welcome to the latest @phpweekly news.

If you're looking for the best content management system to help build your website, take a look at the pros and cons of Joomla v WordPress. 

We have Part 3 of the series on the PHP tool Rector, this week discussing why instant upgrades are better than old school manual upgrades.

The Lately at PHP Podcast is back after a break, with the team discussing proposed features for PHP 7.2.

Plus with developing APIs becoming ever more popular, we have some of the most common questions and answers that developers need to know.

And finally, the 11th Dutch PHP conference takes place in Amsterdam this June. Early Bird tickets are now on sale.

Have a great weekend,

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.


Degree Or Not Degree? When Is It Really Important?
One of the most discussed topics in the technology field is about having degrees and how important they are. Do you really need one to be a good engineer? When is it really important for you?

Largest PHP Applications (2018)
For this survey, we collected 1885 Open Source applications, and counted only their tokens. Tokens are PHP atomic elements, that are needed to understand and run code. Comments, white spaces and delimiters were not counted, leaving only the useful tokens. Then, the more the larger is the application.

Laravel Excel  -  Lessons Learned
Laravel Excel ( turned 4 years last November and has reached almost 6 million Packagist downloads. A good time to reflect on 4,5 years of open source development.

Joomla vs WordPress – Which One is Better? (Pros and Cons)
Trying to decide between Joomla vs WordPress for your next website? While there are tons of good reasons to use WordPress, we recognize that WordPress isn’t the only content management system to help you build a website. We’ve already spent time looking at Drupal vs WordPress, as well as WordPress vs hosted solutions like Squarespace. Now, we’re back to do the same for Joomla.

Tutorials and Talks

New and Improved Generators for MakerBundle
Symfony Maker Bundle is the fastest way to generate the most common code you'll need in a Symfony app: commands, controllers, form classes, event subscribers, etc. This bundle was introduced in time for the Symfony 4 release and it's an alternative to SensioGeneratorBundle in modern Symfony apps.

Understanding Design Patterns - Abstract Factory
Provide an interface for creating families of related or dependent objects without specifying their concrete classes.

Testing Vue Components with Laravel Dusk
Adding tests to a project is always beneficial for different aspects, but choosing the right strategy could be a struggle for many developers.

Discharging Static #1
It’s been seven years since Kore Nordmann first published “static considered harmful” on his blog, explaining the problems with using static method calls in classes, and the difficulties that they cause when trying to test that class. Seven years on, and those difficulties are still the same, and there is still new code being written using static calls despite that knowledge; but it’s often a more severe problem in legacy code with little or no unit tests.

Content Security Policy 101
As more and more services get digital these days, security has become a significant aspect of every application. Especially when it comes to third-party code, it is tough to guarantee safety. But in general, XSS and Code Injection is a big problem these days. Content Security Policy provides another layer of security that helps to detect and protect different attacks. Today, I will introduce this concept and its main features, as well as show real-world examples.

ORMless; a Memento-Like Pattern for Object Persistence
Something that always bothers me: persistence (the user interface too, but that's a different topic ;)). Having objects in memory is nice, but when the application shuts down (and for PHP this is after every request-response cycle), you have to persist them somehow. By the way, I think we've all forever been annoyed by persistence, since there's an awful lot of software solutions related to object persistence: different types of databases, different types of ORMs, etc.

Simple PHP Refactoring
Today I needed to write some code to grab a list of CC addresses from an email, and I thought showing the steps I took could make for an entertaining blog post.

Deploy PHP Web Applications Using Laravel Forge
Developers love to automate things - for every process between development and production, they are keen to have a script that makes their workflow easier. This is also the case with deployment. In this tutorial, I am going to take you through the steps to hook Laravel Forge with AWS and explore what it has to offer.

Laravel Response Caching and CSP
Caching is lovely, and the Content Security Policy is incredible. But when you put them together... Let me show you the problems I encountered, and how I fixed them.

(En)queue Symfony Console Commands
At Yappa, we have always used Johannes' JMSJobQueueBundle to run and schedule Symfony console commands for background jobs. However, we've stumbled upon a much more elegant solution called Enqueue, created by Forma-Pro. In this post I'll cover the basics in setting up the Enqueue Symfony bundle so we can easily queue Symfony console commands!

Fast Web Scraping With ReactPHP. Part 2: Throttling Requests
Scraping allows transforming the massive amount of unstructured HTML on the web into the structured data. A good scraper can retrieve the required data much quicker than the human does. In the previous article), we have built a simple asynchronous web scraper. It accepts an array of URLs and makes asynchronous requests to them. When responses arrive it parses data out of them. Asynchronous requests allow to increase the speed of scraping: instead of waiting for all requests being executed one by one we run them all at once and as a result we wait only for the slowest one.

Rector: Part 3 - Why Instant Upgrades
Why are instant upgrades better than old school manual upgrades? Why is the path to find exact before/after like hell-road? Why you should use Rector and when?

Creating a Composer Library with PHPUnit and TDD
I recently decided to create a library that could handle asynchronous SQL queries and realized in the process that, while I am very comfortable using composer to install other people’s libraries I actually had no clue how to make and publish my own library!  I’m by far no expert on this, but let’s take a look at how I went about getting it set up and testing things.
News and Announcements

Joomla 3.8.6 Release
Joomla 3.8.6 is now available. This is a security fix release for the 3.x series of Joomla addressing one security vulnerability and including over 60 bug fixes and improvements.

HHVM 3.25.0, 3.24.4, and 3.21.8
HHVM 3.25 is released! This release contains new features, bug fixes, performance improvements, and supporting work for future improvements. Packages have been published in the usual places. Additionally, we are releasing 3.24.4 and 3.21.8 which address CVE-2018-6332, but do not include the other changes listed below.

Ubuntu 18.04 (Bionic Beaver) LTS Version Ships with PHP 7.2
Most users will use the software that comes bundled with their Operating System. This includes everything from Safari on iOS to server utilities like PHP and MySQL. Defaults define the mainstream baseline.

Expressive 3!
Yesterday, we tagged and released Expressive 3! Expressive 3 provides a middleware microframework.

Imagine 2018 - April 23rd-25th 2018, Wynn Las Vegas
Imagine 2018 attracts the biggest innovators in eCommerce. You can network with key merchants, partners, and developers, and join industry leaders in live breakout sessions, customer panels, and keynotes. Can you afford to miss it? Tickets are on sale now.

php[tek] Conference - May 31st-June 1st 2018, Atlanta
php[tek] 2018 is the premier PHP conference and annual homecoming for the PHP Community. This conference will be our 13th annual, and php[architect] and One for All Events are excited to continue to host the event in Atlanta! Tickets are on sale now.

International PHP Conference - June 4-8th 2018, Berlin
The International PHP Conference is the world’s first PHP conference and stands since more than a decade for top-notch pragmatic expertise in PHP and web technologies. Internationally renowned experts from the PHP industry meet up with PHP users and developers from large and small companies. Here is the place where concepts emerge and ideas are born - the IPC signifies knowledge transfer at highest level. All delegates of the International PHP Conference have, in addition to PHP program, free access to the entire range of the webinale taking place at the same time. Tickets are on sale now.

Dutch PHP Conference - June 7-9th 2018, Amsterdam
Ibuildings is proud to organise the eleventh Dutch PHP Conference on June 8th and 9th, plus a pre-conference tutorial day on June 7. Both programs will be completely in English so the only Dutch thing about it is the location. Keywords for these days: Know-how, Technology, Best Practices, Networking, Tips & Tricks. The target audience for this conference are PHP and Mobile Web Developers of all levels, software architects, and even managers. Beginners will find many talks aimed at helping them become better developers, while more experienced developers will come away inspired to do even better and with knowledge about the latest tools and methodologies. Early Bird Tickets are on sale now.


Lately in PHP Podcast Episode 81 - Macros-like in PHP 7.2 using Arrow Functions
One of the features proposed for PHP 7.2 or next PHP version is the arrow functions. This is somewhat similar to the macros that exist in other languages, although it is not exactly the same thing. This was one of the main topics discussed by Manuel Lemos and Arturs Sosins in episode 81 of the Lately in PHP podcast.

That Podcast Episode 49: The One Where the Events Are the Sauce and Not the Meat
Beau and Dave discuss EventSauce ( with Frank de Jonge.

Changelog Podcast #288: Live Coding Open Source on Twitch
Suz Hinton joined the show to talk about live coding open source on Twitch. We talk about how she got interested in Twitch, her goals and aspirations for live streaming, the work she's doing in open source, Twitch for open source, how you and others can get started — and maybe some other fun stuff we have in the works at Changelog.

Laravel News Podcast LN59: Scaling Laravel, Testing Vue Components, and Model Events
Join Jake and Michael as they discuss the latest Laravel releases, Scaling Laravel, testing Vue components, and more.

PHP Ugly Podcast #98: Ethical Dilemas
Topics include SDPHP Meetup and why GitHub won't help you with hiring.

Post Status Draft Podcast - How WebDevStudios is Serving Different Market Segments
In this episode, Lisa Sabin-Wilson shares about the entangled history of WebDevStudios and eWebscapes and how she and team are targeting every level of the market.

Reading and Viewing

Frequently Asked Questions About Laravel Based APIs
Developing APIs are getting more and more popular, but still, it’s a bit blurry field for many developers.  We collected some common questions and tried to answer them in one place.

Cloudways Interview - Laurent Lépée Discusses Magento 2 Development and Workflows
Laurent Lépée on the importance of Frontend Development for Magento 2 stores.

3 Weeks Without Coffee
Three weeks ago I decided that was going to take a break from coffee. Every once in a while I take a break from certain things, or try to minimise their usage. Some months ago I minimised the amount of soft drinks I was drinking, and 3 weeks ago it was time to quit coffee. I wanted to break the habit and get rid of my caffeine dependence.

Professional PHP: Building Maintainable and Secure Applications (by Patrick Louys, published 8th February 2018)
The book is structured as a tutorial and will guide you through the steps of building a modern web application from scratch. It will provide you with solid software development knowledge that you can then use as a foundation to learn more advanced approaches like domain-driven design.

Zend Framework 3. Developer's Guide Kindle Edition (by Adam Omelak, published 13th February)
From this book you will explore and start using Zend Framework 3 and its components. You will become aware how to move within an environment and approaches in order to integrate any Zend’s component between the each other’s and with MVC platform. You will learn how main architecture works and how to use it to create flexible middleware applications. 


Senior Software Engineer (Onsite London)
SamKnows is working with governments, ISPs, consumers and academics worldwide to build the definitive global internet performance measurement platform. With over 100,000 hardware measurement probes distributed across 35 countries, and even more mobile app installations, we provide an accurate analysis of end-to-end internet performance. If you love big data, machine learning, and want to work in a fast-paced environment while contributing to the greater good, SamKnows could just be what you’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

Update PHP scripts from their AST by using php-parser for reading and php-unparser for generating back the php.

LibreNMS is an autodiscovering PHP/MySQL/SNMP based network monitoring which includes support for a wide range of network hardware and operating systems including Cisco, Linux, FreeBSD, Juniper, Brocade, Foundry, HP and many more.

A free open source user management system for websites of organisations and groups. 

FluentDOM provides extended XML handling classes for PHPs DOM, XMLReader and XMLWriter. Additionally, it contains a easy to use jQuery like, fluent interface for DOM.

Powerful and fully featured PHP library that features photoshop-style image layering, compositing, filtering, blending and masking.

Laravel Nestable to work with recursive logic. Category level there is no limit but this may vary depending on your server performance.

Doorman provides a way to limit access to your Laravel applications by using invite codes.

An extension of the popular PHP framework Laravel shipped with a modular approach and functionalities such as Symfony annotated routing mechanism, error logging and reporting, extended MVC classes, Docker configuration, and many others.

A new generation content management system that allows you to create a website using drag and drop. You can easily manipulate the content and the layout of your pages. No coding skills are required.

A pure PHP implementation of the open Language Server Protocol that provides static code analysis for PHP for any IDE.

A lightweight PHP library for full page cache, your dynamic PHP pages output is fully cached for a period of time you specify. Mobile devices cache support built-in.

A lightweight e-commerce platform for online merchants, developed in PHP, HTML5 and CSS3.

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 ©