|Hi there PHP fans,
This week Joomla 3.9, the Privacy Tool Suite, has been released.
Also available now is WordPress 5.0 Beta 3, which is ready to be tested.
Cal Evans is back with his Voices of the ElePHPant podcast, interviewing long time Doctrine and Symfony contributor Jonathan Wage.
Plus the latest edition of php[architect] magazine is out now, this month looking at how generics could make your code concise.
And finally, GrumpyConf is back for two days next March, giving you the opportunity to listen to some of the PHP communitys best speakers before lunch and then learn from them and other attendees via open spaces sessions. Tickets are on sale now.
Have a great weekend,
Ade and Katie
Please help us by clicking to our sponsor:
Find A PHP Job Through Vettery
Vettery specializes in developer roles and is completely free for job seekers. Interested? Submit your profile, and if accepted onto the platform, you can receive interview requests directly from top companies seeking PHP devs.
The Dev Lead Trenches: Burning Out
The tech industry is a double-edged sword. On the one side, we (generally) have well-paying jobs with nice perks, but on the other, we can easily slip into not only boring, repetitive work but figurative death marches. The former is used by most companies as an offset to the latter, but that rarely works out well. This leads many developers to come face-to-face with burnout.
12 Best WooCommerce Plugins for Your Online Store
WooCommerce provides a powerful platform for your online store. With business happening on a global scale, day-to-day tasks like pricing, shipping, and invoicing can get complicated. Luckily, there are a range of WooCommerce plugins available on CodeCanyon that can help you provide a seamless experience for customers, and a painless admin experience for yourself, as a vendor or website developer.
Building 3 Apps at a 24h Hackathon
This weekend was the first Hack Mohawk Valley hackathon. I had planned to participate at the hackathon but when the organisers asked me to judge the competition and mentor the other attendees I was happy jump at the chance. Rather than just hang around for the hackathon though I decided to challenge myself… Lets build 3 apps in 24 hours! What?!? No I’m not crazy, just like pushing myself.
Tutorials and Talks
Why AST Fixes your Coding Standard Better than Tokens
In the last post Brief History of Tools Watching and Changing Your PHP Code we saw there are over dozen tools in PHP that can modify code. So there is no surprise coding standard tools are "upgrading" code from PHP 5.6 to PHP 7.2 without knowing types and that AST is moving false to ! Should coding standard upgrade your code? Should AST make your code cleaner? Should AST take of coding standard changes? Which is born for it?
How to Create a WordPress Landing Page Template
One of the purposes of a website is to generate leads. If you're using a lead magnet or you have a page on your site specifically designed to sell one then you want to discourage people from clicking away from that page without buying or giving you their email address. In this tutorial, I'll show you how to create a page template for your WordPress theme that achieves that. It'll contain no links to anything outside the page content. Visitors to the page will have no choice but to hit the Buy or Sign Up button.
Modern PHP Developer - TDD
If you have not heard of Test Driven Development(TDD), you should begin to familiarise yourself with it. Though PHP community is a bit late on TDD practice compared to other languages such as Ruby, once the benefits TDD were realised, it has become almost essential for a modern PHP developer.
env() Gotcha in Laravel When Caching Configuration
Earlier today I got caught out by an interesting little issue when using env() to access environment configurable values on a deployed Laravel app. Despite having read through the documentation I managed to completely miss the caveat on using this function whilst caching the app’s configuration.
SSD Advisory – Symfony Framework forward() Remote Code Execution
The following advisory describes a vulnerability found in Symfony 3.4 – a PHP framework that is used to create websites and web applications. Built on top of the Symfony Components. Under certain conditions, the Symfony framework can be abused to trigger RCE in the HttpKernel (http-kernel) component, while forward() is considered by the vendor as an equivalent to eval() (in its security implications) – there is no mentioning of this in the current documentation.
Building a usable ext-tidy for Alpine-based PHP Docker images
I've been working on building PHP Docker images for the purposes of testing, as well as to potentially provide images containing the Swoole extension. This is generally straight-forward, as the official PHP images are well-documented. This week, I decided to see if I could build Alpine-based images, as they can greatly reduce the final image size.
Building a Laravel Translation Package – Wrangling Translations
As we’ve discussed earlier in the series, out of the box, Laravel translations are stored in language files. These can be either PHP array-style syntax or straight up JSON files.
How to Size & Scale Your Laravel Queues
Laravel offers a convenient way to create asynchronous background tasks using its queues. We utilise those heavily at Oh Dear! for all our monitoring jobs and in this post we'll share some of our lessons learned and what we consider to be best practices.
Making Nova Fields Translatable
Laravel Nova is cool package to quickly create admin interfaces in a Laravel app. Unfortunately there's no support for multiple locales out of the box. A while ago we published a package called nova-translatable that makes any of the built in field types translatable.
Managing Concurrency: From Promises to Coroutines
What does concurrency mean? To put it simply, concurrency means the execution of multiple tasks over a period of time.
Hosting WordPress Yourself Part 2 – Installing Nginx, PHP and MariaDB
In Part 1 of this series on Hosting WordPress Yourself, I took you through the initial steps to setting up and securing a virtual server. In this post I will guide you through the process of setting up Nginx, PHP-FPM and MariaDB, which will form the foundations of a working web server.
Building a Blog: Posts
This blog doesn’t have a database yet. It may look like it is dynamic – may adjust as I add blog posts – but it is more like a flat file CMS. Only without the CMS… You see, I wanted to build something quickly. At first, I would only be publishing blog posts, so I could afford to use something simple. It wasn’t long before I was writing Markdown files and reading them from the file system.
How to Zip and Unzip Files in PHP
Compressing files when transferring them over the internet has a lot of advantages. In most cases, the combined total size of all the files in the compressed format comes down by a nice margin. This tutorial will teach you how to zip and unzip (compress and extract) files to and from a zip archive in PHP. You will also learn how to delete or rename files in an archive without extracting them first.
WordPress Configuration Cheat Sheet
WordPress is the most frequently installed web application in the world. The system is operated not only by experienced developers but also by beginners. In this blog post, we summarise what to look out for when configuring your WordPress installations security.
307 Temporary Redirect
307 Temporary Redirect is similar to 302 Found in that it tells a client to temporarily redirect to a different location to access the requested resource.
|News and Announcements
Joomla 3.9 is Live!
It’s a good day for the Joomla Project, as today we proudly announce the release of Joomla 3.9 – ‘The Privacy Tool Suite’ - marking the tenth minor release in the 3.x series.
WordPress 5.0 Beta 3
WordPress 5.0 Beta 3 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 to play with the new version.
php[world] - November 14-15th 2018, Washington DC
PHP as a language and a community has been rapidly changing in the last few years. A staggering 83% of the Web runs on PHP, and those websites are built on frameworks such as Drupal, WordPress, Magento, Symfony, ZF and Laravel, each of which has their own strong community. We created a conference designed to appeal to all these communities and bring them together. Hence, php[world] was born. Tickets are on sale now.
ConFoo - March 13-15th 2019, 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.
GrumpyConf - March 22nd-23rd 2019, Ontario
Back for another edition, GrumpyConf 2019 is your opportunity to listen to some of the PHP communitys best speakers before lunch and then learn from them and other attendees via open spaces sessions. Tickets are on sale now.
Longhorn PHP Conference - 18-20th April 2019, 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. The Call for Papers is now open and Blind Bird Tickets are on sale now.
Oscon - July 15-18th 2018, Portland
The 21st Open Source Convention takes place next July. OSCON brings open source community, enterprise and engineering teams together to share best practices, projects that transform business and insight into what you need next. The Call for Speakers will open next month so for now Save The Date!
The Changelog Podcast #321: Drupal is a Pretty Big Deal
Adam and Jerod talk with Angie Byron, a core contributor and staple of the Drupal community. We haven’t covered Drupal really (sorry about that), but the call with Angie was inspiring! From the background, to the tech, the usage of the software, the communication at all levels of the community — Drupal is doing something SO RIGHT, and we’re happy to celebrate with them as they march on to the “Framlication” beat of their own drum.
MageTalk Magento Podcast #182 - Meet Magento New York Preview!
A preview of MMNY 2018 - PLUS zero-days and Magecart run rampant, Should Merchants have an SI to help build an internal team? Listen now!
The Five-Minute Geek Show Podcast: Episode 105 - You Can't Make Everyone Happy
You can't make everyone happy.
Voices of the ElePHPant - Interview with Jonathan Wage
This week Cal Evans chatted to Director of Technology at OpenSky.com Jonathan Wage, long time contributor to the Symfony and Doctrine open source PHP projects.
PHP Ugly Podcast #126: Dinner With The Mayor
Topics discussed this week by Eric, John and Thomas include Linus returns and the future of the Zend Engine and the Zend Framework.
php[podcast] Episode 14: Prototyping with PHP
Eric and John talk about stickers (again), PHP internals, understanding framework trade offs, John explains MySQL 8 window functions, burning out, sub-domain takeovers, and more. Plus Oscar shares some lessons re-learned about software estimates and onboarding for a new project.
PHP Web Development Podcast Ep #21: Speaking With Mark Harding - CTO at Minds.com
In our new series we will be speaking to Mark Harding, CTO of crypto social network Minds.com. Mark has nearly 10 years of experience in software development and design and holds a B.A. from the Royal Conservatoire of Scotland. We will be touching on the current state of PHP, Angular as well as touch on frameworks. We will talk about deployment and what this means. Tune in next week for an in-depth conversation with Mark.
Laravel News Podcast LN73: Lighthouse, Translations and Metrics
Jake and Michael discuss all the latest Laravel releases, tutorials, and happenings in the community.
PHP Annotated Monthly – November 2018
Hello everyone! Please welcome November’s PHP Annotated Monthly with all the news and notable materials from last month.
Read about PHP 7.3.0RC4, the future of PHP and Zend Framework, PSR-18 standard accepted, RFC from Internals on preloading files, Async PHP, a portion of useful tools, and a lot more!
php[architect] Magazine November 2018 - Generics and Project Success
Providing a good foundation for your application pays off in the long run by reducing technical debt, finding bugs earlier, and making it faster to add features. This month we look at how generics could make your code concise, other new features you should be using, practices to keep your Laravel application easy to upgrade, and the project management practices to avoid if you want to succeed.
A Week of Symfony #618 (29 October - 4 November 2018)
This week, Symfony 2.8.47, 3.4.18 and 4.1.7 maintenance versions were released. In addition, the first beta of Symfony 4.2 was released, including recently added new features like some debug:autowiring command improvements.
The Month in WordPress: October 2018
Teams across the WordPress project are working hard to make sure everything is ready for the upcoming release of WordPress 5.0. Find out what’s going on and how you can get involved.
My Laracon EU Conference Chatbot Recap
For my book and video-course about building chatbots in PHP I created the Laracon EU conference chatbot. In this article, I will give you all the insights into this project.
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
Plastic is an Elasticsearch ODM and mapper for Laravel. It renders the developer experience more enjoyable while using Elasticsearch, by providing a fluent syntax for mapping, querying, and storing eloquent models.
CalendR is an Object Oriented Calendar management library on top of PHP5.3+ Date objects. You can use it to deal with all your needs about calendars and events.
Knapsack is a collection library for PHP >= 5.6 that implements most of the sequence operations proposed by Clojures sequences plus some additional ones. All its features are available as functions (for functional programming) and as a collection pipeline object methods.
GitElephant is an abstraction layer to manage your git repositories with PHP.
ProcessWire is an open source content management system (CMS) and web application framework aimed at the needs of designers, developers and their clients.
Siler is a set of general purpose high-level abstractions aiming an API for declarative programming in PHP.
Ladybug provides an easy and extensible var_dump / print_r replacement for PHP 5.3+ projects. Any PHP variable, object or resource can be dumped to beautiful representation.
Bref brings support for PHP on serverless providers (AWS Lambda only for now) but also goes beyond that: it provides a deployment process tailored for PHP.
Engintron for cPanel/WHM is the easiest way to integrate Nginx on your cPanel/WHM server. Engintron will improve the performance & web serving capacity of your server, while reducing CPU/RAM load at the same time, by installing & configuring the popular Nginx webserver to act as a reverse caching proxy in front of Apache.
Render images in CLI with UTF-8 characters.
This is a PHP7 bot API implementation for Telegram implementing the totality of Bot API up until v3.6 and the vast mejority of the Bot API up until v4.1.
Intaro Pinboard (Pinba Board) is a realtime PHP monitoring system which aggregates and displays pinba data.
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?