Our improved changelog workflow for packages
For years, my team and I manually updated the changelog for our 250+ packages. Recently, we've improved how we go about this.
In this blog post, I'd like to tell you all about it.
In this section you can read posts I've written myself.
For years, my team and I manually updated the changelog for our 250+ packages. Recently, we've improved how we go about this.
In this blog post, I'd like to tell you all about it.
I am excited to share that my team and I have just launched v2.0 of our Laravel Package Training video course.
Here's a the introductory video for the course:
Stay up to date with all things Laravel, PHP, and JavaScript.
You can follow me on these platforms:
On all these platforms, regularly share programming tips, and what I myself have learned in ongoing projects.
Every month 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.
In your tests, you might have used assertDatabaseHas
to make sure that a model actual is persisted.
Here's the recording of the latest edition of the Laravel Worldwide meetup. Philo Hermans showed off two great Livewire packages that he made. Steve McDougall did a cool live coding session on how to build APIs. And at the end, our suprise guest Caneco gave a nice little presentation on Lumen as…
My current setup (end 2021 edition)
After tweeting out a screenshot, it often get questions around which editor, font or color scheme I'm using. Instead of replying to those questions individually I've decided to just write down the settings and apps that I'm using.
In the vast majority of applications you work with data structures. Sometimes that data is described multiple times. Think for instance of a form request that tries to validate a blog post model, and an API transformer class for that same blog post model. Changes are that both classes describe the same properties.
Using our new laravel-data package, those structures only need to be described once.
Have you ever had to write an API integration from scratch? Where you're managing the HTTP calls yourself instead of being able to rely on third-party packages?
Mocking, faking; these might sound like intimidating words if you don't know what they are about, but once you do, you'll be able to improve your testing skills significantly.
Part of "the art of testing" is being able to test code in some level of isolation to make sure a test suite is trustworthy and versatile. These topics are so important that we actually made five or six videos on them in our Testing Laravel course.
In this post, I want to share three ways how you can deal with mocking and faking. Let's dive in!
The newly released spatie/laravel-site-search package can crawl and index the content of one or more sites. You can think of it as a private Google search for your sites. Like most Spatie packages, it is highly customizable: you have total control over what content gets crawled and indexed.
To see the package in action, head over to the search page of this very blog.
In this post, I'd like to introduce the package to you and highlight some implementation and testing details. Let's dig in!
One of the things I really like about modern Laravel projects, are the new model factories introduced in Laravel 8.
Ray is an app we built at Spatie to make debugging your applications easier and faster. Being web developers, we naturally decided to write this app in Electron, which enabled us to move from nothing to a working prototype to a released product on 3 separate platforms within a matter of weeks.
A few days ago, a new version of 1Password was released that is able to detect where a user can reset his or her password.
Testing a Laravel project is one of the most pleasant experiences I've ever had: there's a clean testing API, a very powerful layer added on top of testing frameworks; all while keeping the simplicity and eloquence you'd expect from a Laravel project.
Original – – flareapp.io
At Flare, we launched a new search experience. We have a very cool search field with autocompletions (powered by the rendering engine behind VS Code), and a very smooth graph powered by AmCharts. Let's take a look at the technical details!
Read more [flareapp.io]
This edition of the meetup features those two excellent talks:
While recording videos for the Testing Laravel video course, I became a big fan of Pest, a test runner that tries to optimize the developer experience. I'm now using Pest as the default for testing new packages and projects.
I've also converted a couple of existing testsuites from PHPUnit to Pest. Luckily, this is a very easy process. In this video I'll show you how to get started. You'll see that it only takes a couple of minutes.
In this stream, Shruti Balasa show how powerful Tailwind is. She builds a simple dashboard layout in only a couple of minutes. If you want to learn more about Tailwind, consider buying a ticket for her online workshop at Full Stack Europe. You can get a 20% discount for Shruti's workshop by using…
Oh Dear is all-in-one solution to monitor your site that my buddy Mattias Geniar and I have created. It can monitoring uptime, certificates, broken links, scheduled jobs, and much more.
Under the hood, Oh Dear is a large Laravel application that performs many queries all of the time. To power future features, we've recently changed our database structure and refactored some pieces in our code base. We increased performance by decreasing the number of queries.
In this blog post, we'd like to to share some techniques that might be helpfull to increase the performance of your Laravel app too.
In this stream, Luke Downing shows us around in the source code of Pest parallel plugin he created.
We've created a new package that can render a beautiful support form widget on any page. You can read more about the package in this blog post at Flare.
In this stream, I'll show you how to use the package. We'll also source dive its code.