Vue 3.5 has just dropped this week, and it's packed with some nice features and improvements. I have been digging through the release notes and playing around with the new features, so let me glance over the highlights! Up until now, you could use toRef() to destructure props reactively. But in Vue...
Taylor Otwell just announced some really cool new features in Inertia v2 at Laracon US 2024. Here's a quick overview of the new features that I wrote down during the talk. I will update this post with more details as soon as the official documentation is updated. Currently, in Inertia 1.0, you can o...
In the summer of 2022, I took a month off from work as our daughter was born. Before leaving, I worked mainly on Inertia projects, but I also had a huge Laravel project built with Blade and some Vue components. I had already released some Laravel packages, but wanted to do something different after...
After all the Splade announcements and developments of the past months, today marks the release of a new Laravel package! The latest and greatest version 10 of the Laravel framework comes with a brand new Process API - a wrapper around the famous Symfony component, which simplifies the execution of...
It's been a while since I blogged about Laravel Splade, but a lot has happened since the last blog post. Splade is gaining traction, and usage numbers are increasing! Many already use it to build their projects, leading to many feature requests and bug and support tickets. Thanks everybody for provi...
A few weeks ago, we introduced Laravel Splade. In a nutshell, it combines the magic of Inertia.js with the simplicity of Laravel Blade. It started as an experiment to bring that magical SPA feeling to Blade and worked incredibly well. I introduced it on Twitter, and the response was overwhelming! Yo...
If you're writing tests for your Laravel application and you need to interact with its storage system, you might have come across the Storage::fake() method. This method brilliantly fakes an entire filesystem disk, whether a local disk or an external disk like an S3 service. As a result, you don't h...
This blog post follows up on the first overview of the new Blade, Requests, Routing and Validation features in Laravel 8 since the original release in September 2020. Enjoy! I got most code examples and explanations from the PRs and official documentation. The collect method now allows you to get a...
Following last week's blog post about Jobs and Queues, here's an overview of new features and improvements when it comes to Blade, Requests, Routing and Validation. I got most code examples and explanations from the PRs and official documentation. Quickly inspect the request input. Typically, a 404...
In this fourth post of the series, I've gathered new features added to Jobs and Queues in Laravel 8. Since the original release of 8.0 back in September 2020, Jobs and Queues got a bunch of significant updates that you don't want to miss. If you want to learn all the ins and outs of this topic, look...
This blog post follows up on last week's overview of the new Database and Eloquent features in Laravel 8 since the original release in September 2020. I already covered Collections, and next week is all about Jobs and Queues. Enjoy! I got most code examples and explanations from the PRs and official...
In this series, I show you new features and improvements to the Laravel framework since the original release of version 8. Last week, I wrote about the Collection class. This week is about the Database and Eloquent features in Laravel 8. The team added so many great improvements to the weekly versio...
This year, the Laravel team announced a new release schedule for major Laravel versions. Instead of a major version every six months, we now get a major release every 12 months. This change didn't stop the team from improving the current release, Laravel 8. Over the last 14 months, it got so many gr...
For Artisan School, I wanted to create custom Open Graph images for each video page. For example, when somebody shares a link on social media, platforms like Facebook and Twitter use the OG image to represent the shared link. There are many services to create and serve OG images, but I didn't want t...
Today I want to share the birth of a new project with the Laravel community: Artisan School. The primary goal is to provide high-quality Laravel screencasts where I mix the Laravel documentation with real-life examples. Besides the video content, I want to create a place to discover code examples, l...
Today marks the release of another Laravel + Inertia.js package, this time a small one compared to last week's Tables package. This new package provides helper methods for Laravel Dusk that you can use to wait for specific Inertia.js events to fire. Dusk is a first-party Laravel package that lets yo...
I'm thrilled to announce the release of a new package. It's a DataTables-like package for Inertia, Laravel, and Vue that comes with Tailwind-styled components and great features! You can search through your data, both globally and per attribute. There's support for pagination, sorting, column toggli...
Last month we started our second big project with Inertia.js. The development of the first one is well underway, and with the recent announcement of Server-Side Rendering support, I genuinely think Inertia is the future of web development. It's incredibly intuitive as it gives you the best of both w...
The Laravel FFmpeg package has supported HLS for over four years. It's a fantastic protocol to provide on-demand, adaptive streaming. Initially developed by Apple in the early days of iOS, it is now the most popular streaming format, and it works on Android and virtually every other browser as well....
Last week I blogged about a new package that I wrote. It builds upon the magic of Laravel Eloquent, and it quickly gained attention. As I worked on a minor release with some enhancements and shortcuts, I got an idea for a new feature. It's closely related to last week's package, but I decided to wra...
In the Laravel framework, you've undoubtedly come across the Eloquent ORM. It makes working with your database a breeze as its query builder is both simple and incredibly powerful. It also has this concept of scopes, which you can apply globally to a model, or locally throughout your app. An example...
Today a new version of Laravel FFMpeg has been released: version 7.3. It now has support for watermark built-in! You can add watermarks from your local or remote storage or even from the web. Positioning is easy. You can position it in a CSS-way, or you can use the built-in position constants. Let's...
Laravel makes it easy to handle file uploads from a request that's multipart/form-data encoded. You can access uploaded files through a Request instance, and it has helper methods to store files easily. It also has a bunch of rules to validate incoming files. For example, you can verify that the inc...
I've always been a big fan of the Bootstrap framework, from the first version on. It's a great way to rapidly build interfaces and prototypes. These days we've mostly moved away from it towards Tailwind CSS, but it's still a great framework. Adam Wathan, the creator of the Tailwind framework, had a...
The next version of the Laravel framework, version 8.0, is planned for September 8th. It's packed with new features and improvements! As we're getting close to the release, it becomes clearer which PRs got merged. Some of the new stuff will be unveiled later on, probably at Laracon in late August. I...
There are many ways to add search functionality to your Laravel project. You can use the Query Builder, use the official Scout package to integrate with Algolia or use a third-party package like Spatie's laravel-searchable. Today we're introducing a new package to perform cross model, in-database se...
In the Laravel 5.1 days, we got involved in completing the development of a video platform. It already had a lot of custom FFMpeg code, but there was no abstraction or testing, and it wasn't developer-friendly. We learned a lot, however. There was a great PHP-FFMpeg package out there, and the FFMpeg...
Yesterday I posted a tweet about a Google Analytics implementation I was working on. It was based on a Event/Listener solution using Laravel. The tweet quickly gained traction and one day later it was liked more than 170 times and I was encouraged to build a package out of it! Here we are, introduci...
We are just a few weeks away from the Laravel 7 release, so I've put together a list of some important new features and changes. Of course this is not everything but it is a brief overview of some of the new stuff. Please note that Laravel 5.8 will not receive security updates after February 26, 202...
The Laravel framework has a built-in Email Verification feature that allows a user to verify its email address. It also comes with a Middleware that protects routes against unverified users. Resetting Passwords require a database table to store the reset tokens, but for Email Verification an approac...
Yesterday we've released a new package to use the Paddle.com API and webhooks in a Laravel app. Paddle is not just a payment provider like Stripe, they actually take care of handling taxes around the world which is a big deal when running a SaaS. Besides the regular VAT you have to handle in the EU,...
As you might know, the Laravel framework comes with a handy tap method which allows you to call the given closure with the given value and then return the value. Sounds confusing? It probably is until you've seen it! Let's take a look at this example: Lately we've used a Tappable trait in one of our...
Today we are releasing a new Laravel package! It's a toolbox for monitoring first and third-party services and APIs, it keeps you notified about services going down (and up!). Out of the box it supports checking HTTP endpoints and verifying SSL certificates and the package allows you to generate you...
Laravel 5.4 (January, 2017) came with the introduction of Laravel Dusk, a first-party package with support for browser automation and a corresponding testing API. The HTTP testing layer got rewritten and became much more focussed on APIs from Laravel 5.4 onwards. Some of the HTTP testing tools were...
After some issues that got opened on GitHub I decided to write a blogpost on the Laravel FFmpeg package we created. We use this package ourselves in three different production environments. The example below is not taken from one of these projects but the goal is to give you a sense of what you coul...
The next version of Laravel, which is a LTS release, will be released during and shortly after Laracon EU 2017. Laravel News has published some great articles of changes and new features in the framework. These are some of my personal favourites: Besides the Laravel News articles you can also read t...
Besides the famous Collection class that Laravel provides it also has a Str class that has lots of great functions to work with strings. Some of these functions are available through helper functions and others you have to find in the API documentation. Last week we were working with a third party A...
As you might know, Laravel Valet makes it super easy to do development on your Mac. For Laravel there are some great packages to handle mail testing such as MailThief and Laravel Mail Preview Driver. You could also use a online service like Mailtrap to do mail testing. Another option I want to discu...
One undocumented gem I found today in the Laravel Framework is the withValidator method on a FormRequest class. If this method exists on your request class, this method gets called with the Validator instance as first argument. It allows you to interact with the validator instance before the actual...
The release of version 5.4 of the Laravel Framework is expected to be released in the next few weeks. Some exiting new features, enhancements and changes are coming! Here's a short overview of what to expect. New features Enhancements Changes The release of Laravel 5.5 is expected in July and will r...
Besides the framework itself, the Laravel brand has much more to offer. There are development environments, optional packages and services that help you get your projects online. Along with some rebranding that was announced, I'd like to give an overview of the Laravel ecosystem. Of course there is...
Jordi Boggiano, co-founder of Packagist and lead developer of Composer, announced the release of version 1.3.0 of Composer. It has some great new features and added a workaround for the performance impact that is caused by running PHP with Xdebug enabled. Composer can update itself by running the se...
For a project which has to deal with prices, we decided to use the PHP Money library. It is an implementation of Fowler's Money pattern and has great features and no dependencies. Most important, you shouldn't represent (and store) monetary values by a float. It takes away the problem of rounding er...
When you have the Xdebug extension for PHP installed and enabled, most of your PHP code will run notably slower. A little helper tool called 'Xdebug Toggler for OSX' provides an easy way to quickly enable or disable Xdebug from the terminal: You can find the source code on GitHub and installing it i...
Eloquent provides an easy way to add a relationship count condition to a query. Say you have a User model and a Role model which are related to each other using a many-to-many relationship. Using Eloquent it is very easy to get all Users that have one or more Roles or doesn't have Roles at all: This...
At the office we're using an Ubuntu server for filesharing amongst other things. After upgrading to macOS Sierra 10.12, the Finder app keeps asking for credentials when you try to connect to a network share: With the latest 10.12.2 update, Apple fixed this with a preference you can set. According to...
Recently a team of nearly 100 developers released version 1.0 of Hyper, an open-source terminal based on web technologies that runs on Linux, macOS and Windows. The development team focused on speed and extensibility. It can easily be styled with themes and extensions are universal Node.js modules w...
Every once in a while when I try to access a git repository, I need to enter a passphrase for my public/private key. Without having modified once of the keys, somehow the macOS authentication agent seems to forget the keys. Of course you could regenerate your keys and update them across all your ser...