Passing data to layouts in Blade through extends
Laravel quick tip! The @extends Blade directive accepts a second (undocumented) parameter to pass data to the parent layout.
by sebastian de deyne
Laravel quick tip! The @extends Blade directive accepts a second (undocumented) parameter to pass data to the parent layout.
Christoph Rumpel published his revamped site last week, built with Laravel and Tailwind CSS. He based the site’s architecture on my personal site (yeah, the one you’re reading now). I open sourced it about a year ago, and I’m glad to see that it provided value to someone!
Read the full article on Christoph Rumpel’s new blog.
I occasionally send out a dispatch with personal stories, things I'm working on, and interesting links I come across.
Every now and then I come accross a Class log does not exist exception in Laravel. This particular exception is thrown when something goes wrong really early in the application, before the exception handler is instantiated.
Whenever I come across this issue I’m stumped. Mostly it’s related to an invalid configuration issue or an early service provider that throws an exception. I always forget how to debug this, so it’s time to document my solution for tracking down the underlying error.
Last month I travelled up north to my first JavaScript conference: Nordic.js. The entire conference was a great experience: the speakers, the location, the food (kanelbullar!), … Here’s a quick recap of my favorite talks.
I love this post! requestAnimationFrame is a primitive browser API that doesn’t sound too interesting at first, but once you’ve grasped some basic concepts, it becomes an extremely powerful tool for dealing with animations in JavaScript.
At its core,
requestAnimationFramedoesn’t do much: it’s basically just a method that executes a callback. In fact, there are very few differences between doingrequestAnimationFrame(doSomething)anddoSomething(). So, what’s so special about it? I’m glad you asked! In short:
requestAnimationFrameschedules the callback call on the next repaintrequestAnimationFramepasses the callback the current timeThere are a few other distinctions, but these are the main benefits. Now,
requestAnimationFramedoesn’t create an animation on its own, it’s the sequence of successive callbacks that will make things move on the screen.
My favorite part: since a large part of animating with requestAnimationFrame consists of composing small mathematical expressions, you can apply all sorts of functional programming tricks to your code.
Learn all about it on Benjamin De Cock’s blog.
I’m building a multi-tenant Laravel application. One of the requirements of the project is that every client can have their own theme based on their corporate guidelines. By default a few css adjustments will suffice, but some clients request a completely different template.
Conditionally loading a different stylesheet per client is pretty trivial, but in order to use a completely different view per theme you quickly end up typing the same thing over and over across various parts of your application.
21 Aug 2017 via spatie.be
We just open sourced our company guidelines site! We previously kept the contents in a private wiki on GitHub, but I’m glad we finally put the time in giving the contents a real home.
Like our docs site, the content is stored in markdown files, which can directly be edited on GitHub. The site deploys whenever something’s pushed to the master branch.
As for why we decided to open source it all…
This site contains a set of guidelines we use to bring our projects to a good end. We decided to document our workflow because consistency is one of the most valuable traits of maintainable software.
The contents of this site exist for ourselves—more importantly, our future selves—and for giving future collegues a reference to our way of doing things and their quirks. The guidelines cover workflow, code style, and other little things we consider worth documenting.
The guidelines are available on guidelines.spatie.be.
This week I needed to export some charts generated with HTML & JavaScript as a pdf file. I already had implemented the charts on a webpage so I wanted a solution that allowed me to use my existing code for the pdfs.
Headless Chrome to the rescue! Chrome can run as a cli tool, and print a pdf file from a url. All I had to do was make some layout tweaks to make everything printer-friendly.
Today I was writing a form component that needed an optional back button. Since the form component is generic, the back button could point to anything.
Christopher Pitt wrote a pretty comprehensive article on one of our latest packages, which is one of my favorite packages I’ve written at Spatie to date, phpunit-snapshot-assertions.
Ah-ha moments are beautiful and rare in programming. Every so often, we’re fortunate enough to discover some trick or facet of a system that forever changes how we think of it. For me, that’s what snapshot testing is.
Read the full article on SitePoint, or check out phpunit-snapshot-assertions on GitHub.
In a recent Twitter thread, Sebastian McKenzie (Yarn and Babel author) shared his thoughts on the current state of open source. This tweet stood out for me (and he later ironically dubbed it his “most thoughtleader tweet ever”):
Revel in fragmentation and duplication because without it there’s stagnation and it stifles innovation.
When someone shares their latest pet project library, it’s often met with responses like “What a waste of time, you can already do this with library X!”.
There’s no need for justification here. Maybe the author wants something that fully matches their use case instead of the 80% that library X does, maybe they want a different internal architecture. Maybe they have bigger future plans in mind, or most importantly, maybe they just want to experiment, learn, and have fun.
Read the entire thread on @sebmck’s Twitter.
Quick Vue tip for package authors! If you publish a package that exposes multiple Vue components, you can write a small plugin to install them all at once.
Since writing this post, TypeScript has become officially supported in Laravel Mix (version 0.12 and up). There’s still some informative stuff in here if you’re new to TypeScript, but use the official method if you’re on a newer version of Mix!
In a recent Spatie project we decided to give TypeScript a shot for the business critical part of a new application. TypeScript provides static analysis to reduce the chance of introducing bugs, to have self-documenting code, and to improve our tooling (autocompletion!)
PHP 7.1 introduced a new syntax for the list() function. I’ve never really seen too much list() calls in the wild, but it enables you to write some pretty neat stuff.
This post is a primer of list() and it’s PHP 7.1 short notation, and an overview of some use cases I’ve been applying them to.