Use the same controller to serve multiple formats

twitter.com

Read more [twitter.com]

Join 9,500+ smart developers

Get my monthly newsletter with what I learn from running Spatie, building Oh Dear, and maintaining 300+ open source packages. Practical takes on Laravel, PHP, and AI that you can actually use.

No spam. Unsubscribe anytime. You can also follow me on X.

Regaining trust in your test suite with Docker

Frank de Jonge, creator and maintainer of Flysystem, recently started using Docker to test the FTP driver. On his blog he explains the why and how.

For Flysystem, an open source PHP package to deal with filesystems, I needed a way to test FTP (barf) interactions. FTP servers are notoriously bad at abiding by the spec. ... For Flysystem's FTP(d) adapter an integration test, using an actual FTP server, brought back the level of confidence it needed.

https://blog.frankdejonge.nl/regaining-trust-in-your-tests-with-docker/

Read more

A package to assign statuses to Eloquent models original

by Freek Van der Herten – 2 minute read

Imagine you want to have an Eloquent model hold a status. It's easily solved by just adding a status field to that model and be done with it. But in case you need a history of status changes or need to store some extra info on why a status changed, only adding a single field won't cut it. To handle…

Read more

Blade component aliases in Laravel 5.6

Laravel 5.6 will probably ship this wednesday. One of the cool new features is the ability to register Blade component aliases, which was PRed by my colleague Seb. On his blog Seb guides you through the new functionality.

Laravel 5.6 adds the ability to register alias directives for Blade components. Let's review some background information and examples.

https://sebastiandedeyne.com/posts/2018/blade-component-aliases-in-laravel-56

Read more

How to upgrade from PHP 7.1 to 7.2 on MacOS using Homebrew original

by Freek Van der Herten – 1 minute read

PHP 7.2 was released almost two months ago. I decided to wait a bit until a stable version of Xdebug with PHP 7.2 compatiblity was available. And that happened yesterday with the release of Xdebug 2.6. I'm on MacOS and use brew to install stuff. Upgrading from PHP 7.1 to 7.2 is laughably easy. These…

Read more

Run a package from a local directory

Barry Van Veen shares how you can install a package from a local path into your project. This is extremely handy when developing a package because you can immediately toy with it in a full application.

This article explains how you can require a package from a local path into your project with Composer. This way you can run a local copy of a repository and test any changes you make. Because the local repo will be symlinked changes are shared in real-time, there is no need for intermediate committing and updating.

https://barryvanveen.nl/blog/44-package-development-run-a-package-from-a-local-directory

Read more

PHP-DI 6: turning into a compiled container for maximum performance

In a new post on his blog Matthieu Napoli, creator of PHP-DI, explains how he made v6 much faster.

But the good thing is that, after 6 years of existence, the project has matured and is now quite stable. The original objectives are met, even though there is of course always room for improvements and innovation. There is room to push the container to be better on other levels. And the most obvious one is performances.

PHP-DI 6 will be much, much faster because it is a compiled container.

http://php-di.org/news/21-php-di-6-compiled-container.html

Read more

Where a curly bracket belongs

My colleague Brent has some good thoughts on where to place curly brackets.

Dedicating a whole blogpost to curly brackets might seem like overkill but I believe it's worth thinking about them. Not just because of one curly bracket, but because there's a bigger message in all this. Thinking about how we read and write code not only improves the quality of that code, it also increases our own and others ease of mind when working with it. It can improve the fluency of your work and free your mind to think about real important stuff.

https://www.stitcher.io/blog/where-a-curly-bracket-belongs

Read more

How I redesigned my blog and moved it from Jekyll to Laravel

Cristopher Rumpel recently launched a big redesign of his blog. In a new post he touches on why he moved away from his old solution, and what kind of problems he had to solved. Great read!

One of my resolutions for 2017 was to redesign my blog. One week before the new year I faced myself with the challenge and thought to myself if this was still doable. Somehow I managed it and here it is. In this article I will explain the process and show you how I redesigned the blog with Tailwind CSS and moved it from Jekyll to Laravel with keeping almost the same performance.

https://christoph-rumpel.com/2018/01/how-i-redesigned-my-blog-and-moved-it-from-jekyll-to-laravel

Read more

Optimizing colinodell/json5 with Blackfire

Collin O' Dell, member of the PHP League, shares how he was able to significantly improve the performance his json5 package using Blackfire profiling.

Back in November I released colinodell/json5 - a JSON5 parser for PHP. It's essentially a drop-in replacement for PHP's json_decode() function, but it allows things like comments, trailing commas, and more.

...

I always knew that a PHP-based implementation would be slower than PHP's native C implementation, but execution time measured in minutes was completely unacceptable!

So I fired up Blackfire (which I've previously used to optimize league/commonmark) and got to work.

https://www.colinodell.com/blog/201801/optimizing-colinodelljson5-blackfire

Read more

How to send a "trial expiring soon" mail in Laravel Spark original

by Freek Van der Herten – 6 minute read

I'm currently building a webapp named Oh Dear: an easy to use and beautiful website monitor. It has recently gone into it's beta phase. At the moment of writing everybody can register a new account. After you've registered you'll start your trial period of 10 days. Oh Dear is built on top Laravel…

Read more

Handling CORS in a Laravel application original

by Freek Van der Herten – 5 minute read

Recently we released laravel-cors. This package can add the necessary CORS headers of your Laravel app. In this post I'd like to give a quick explanation of what CORS is and how you can use the package. What is CORS Imagine that all JavaScript code for domain X running in a browser would be able to…

Read more