My team and I are currently building Mailcoach, a self-hosted solution to easily send out newsletters and email campaigns. In this video, I live code a new small feature. This video was created unrehearsed and I didn't make any edits. So you can see every mistake that I made along the way. Together…
Follow me on Twitter. I regularly tweet out programming tips, and what I myself have learned in ongoing projects.
Every two weeks I send out a newsletter containing lots of interesting stuff for the modern PHP developer.
Expect quick tips & tricks, interesting tutorials, opinions and packages. Because I work with Laravel every day there is an emphasis on that framework.
Rest assured that I will only use your email address to send you the newsletter and will not use it for any other purposes.
As usual, my colleague Brent wrote a post with clear instructions on how to upgrade. As a bonus he also provides some necessary steps to get PHP 7.4 to work in Valet.
Read more [stitcher.io]
In PHP 7.4, two new features were introduced that I'd like to use in my packages and projects: short closures and typed properties. Even though an IDE can help with converting to the new syntax, I'd don't want to manually hunt down all the places where the new syntax can be used. Lucky there's a tool that can do this work automatically.
?You can mutate request data using @laravelphp 's form requests instead of doing it in the controller. By overwriting the validationData() method, you can mutate data BEFORE validation. Overwrite the validated() method to mutate AFTER validation. #Laravel #php pic.twitter.com/VAVXYAHCFC— Neil Keena (@neilkeena) November 4, 2019
A while ago, I created an easy to use framework agnostic PHP package to read and write CSV and Excel files called spatie/simple-excel. Behind the scenes, generators are used to ensure low memory usage, even when working with large files. Today I added a method that allows you to stream CSV files to the browser. In this small blog post, I'd like to demonstrate how you can use it.
FFI lets you include external libraries written in other programming languagues in your PHP code.
PHP Foreign Function Interface, or FFI for fans, is a PHP extension that allows you to include with ease some externals libraries into your PHP code. That means it’s possible to use C, Go, Rust, etc. shared library directly in PHP without writing a PHP Extension in C. This concept exists for years in other languages like Python or Go.
Read more [jolicode.com]
Kevlin Henney wrote a good post on the importance of naming things well.
Good naming is part of design. It sets expectations and communicates a model, showing how something should be understood and used. If you mean to tell the reader getMillisSince1970, don’t say getTime.
Read more [medium.com]
I'm a big fan of this approach and use Form Request like this quite often.
Let me show you what form requests can do for you - and how you can make use of them to write beautiful, expressive APIs.
Read more [pociot.dev]
PHP 7.4 will probably be released this week. My colleague Brent wrote a good post on all the shiney new things this release brings.
PHP 7.4, the latest version before PHP 8, brings lots of new features, syntax additions and fixes. We need to wait a little longer though: PHP 7.4 will be released on November 28, 2019. In this post you'll find a list with everything that's new and changed to help you prepare for the upgrade.
Read more [stitcher.io]
A cool talk by John Cinnamond, on how you can create a pure OO language and why you shouldn't do that.
Filip Rakowski goes over all the shiney new feature that are coming in Vue 3
As you could expect, Vue 3 brings a lot of new exciting features. Thankfully Vue team mostly introduced additions and improvements over current APIs rather than major changes so people that already know Vue 2 should quickly feel comfortable with new syntaxes.
Read more [vueschool.io]
At Spatie we currently building Mailcoach: a solution to self-host newsletters and email campaigns. It can be used a stand alone app or as a laravel package. We'll also create a video course that explains the internals of the package. We're not going to make this software open source, but sell it. We're still are deciding on our pricing model.
Julien Bourdeau, engineer at Algolia, shares his thoughts on how it should be priced.
Today, Freek announced that they're going to release the pricing model soon and opened a conversation about what it could be. It got me thinking, and unfortunately, I couldn't fit my thought in 280 characters. First, it's important to understand that MailCoach will be 2 main things: a full-fledged app and a Laravel package.
Read more [www.sigerr.org]
Laurie Voss, co-founder of npm, explains how databases work, what the difference is between MySQL and something like Redis, why MySQL is popular and much more!
My twitter-friend Simon had a simple question that contained much complexity: how do databases work? The result was an absurdly long thread of 70+ tweets, in which I expounded on the workings and history of databases as used by modern web developers, and Simon chimed in on each tweet with further questions and requests for clarification. The result of this collaboration was a super fun tiny explanation of databases which many people said they liked, so here it is, lightly edited for clarity.
Read more [seldo.com]
James Brooks recently started a podcast on mental health. In the second episode Matt Stauffer was interviewed.
This week I’m speaking to Matt Stauffer. Matt is a partner at the web agency Tighten, developer, teacher, podcaster and author. Matt and I speak about his experiences with anxiety and depression, being a great employer and other things!
Read more [happy-dev.transistor.fm]
A cool visualization of the basic concepts of machine learning.
In machine learning, computers apply statistical learning techniques to automatically identify patterns in data. These techniques can be used to make highly accurate predictions.
Read more [www.r2d3.us]
My buddy Mattias recently improved the performance of the Oh Dear uptime checker servers by disabling the HTTP sessions.
If you run a Laravel application purely as a headless API, you can benefit from disabling the HTTP sessions. We use this setup for our Oh Dear monitoring service, where the remote servers that check for uptime are all headless Laravel setups.
Read more [ma.ttias.be]