If you want to learn all about queueing—or simply want to enjoy a beautifully crafted visual guide—read
@samwhoo
's interactive study of queueing strategies.
🐘 After sharing how our team writes big
@laravelphp
applications, we’re going to focus on the... 🥁 elephant in the room.
📣“Writing Readable PHP”, our new premium course, will launch soon!
📬 Subscribe to our mailinglist for previews and updates!
If you’re into
@laravelphp
, chances are that your composer.json has our name in it.
If our code helped you in any way, consider supporting us via
@Patreon
.
RT's = ❤️
#laravel
#php
🤔 Have you ever wondered what type of data is in the `$request` array?
💡Use data transfer objects and wonder no more!
🔥 Data transfer objects are plain old PHP classes with a lot of power. Instead of using unstructured data, wrap it in a data transfer object with declared
🤔 Did you know you can change the method signature during inheritance in PHP?
💡 This is called type variance. The child class should still honor the parent's original type by returning a more specific type, known as covariance.
In the example below, `UnknownDate` is a
🚀 We've released Ray v.2.0!
✨ Enjoy these new features:
• monitor your projects in separate windows
• scroll to new logs manually
• improved SSH key support for server connections
• enhanced performance for Apple's Silicon chip
• and much more!
We're slowly closing in on releasing our 500th open source package! 📦
Over the past decade, we've established a set of guiding principles for what makes a great package.
1. Easy and fun to use
Put effort into making our packages as user-friendly as possible. Ultimately, a
🔐 Check out our latest blog post and see how we use
@1Password
to manage our secrets and keep our sensitive data safe and organized.
🙌 No more messing with .env files!
❤️ A very big thank you to
@taylorotwell
for sponsoring us!❤️ We’ll be sure to keep contributing to the awesome
@laravelphp
ecosystem in various ways 👍
We updated our guidelines for API routing.
Use the plural form & kebab-case of the resource name and limit deep nesting where possible:
❌ /projects/1/errors/1/error-occurrences/1
✅ /error-occurrences/1
In some cases nesting can be useful for listing subresources:
✅
😫 Struggling to generate PDFs in your PHP app?
Our colleague
@alex_
dove into 4 solutions to convert HTML to PDF. Each option is analyzed for developer experience and performance.
👇 Read his blog post in the comments and find out which one is the best fit for your
📦 Introducing spatie/laravel-error-solutions!
This new package brings back the ability to display a solution for an exception.
🪄 You can also run your solution directly on the new
@laravelphp
error page.
✍️ Our colleague
@freekmurze
describes all the details in this blog
⚡️ We're working hard on Ray 3.0!
It's not just a redesign: we're preparing the codebase to handle the next few years of development. In the process, we gave our Electron setup a summer clean.
Russia's war against Ukraine is real and raw.
Civilians are getting killed, families destroyed, homes wrecked.
Our hearts are with those who suffer.
We’ve added this message to all our repos / docs.
📦 We've released a new package, spatie/laravel-error-share, that brings back the ability to easily share errors from the new
@laravelphp
error page.
Simply share and debug local errors with your team!
Learn all about it in our latest blog post:
🥳 One year ago we launched Ray!
Ray helps you to debug your app faster by showing debug info in a dedicated window.
❤️ A big thank you to the thousands of devs already using Ray!
🎁 This week you can grab new licenses and renewals with a 25% discount.
We try to stick with the popular choice for our tools. There's a lot of value in sticking to defaults. We only stray away when we have a really good reason for it. In the case of Laravel and Inertia, the popular choice would be Vue, but we've landed on React. Why?
Story time! 📖
👀 OPcache and preloading can improve the performance of your PHP code. But did you know the difference between these two techniques?
🟠 OPcache caches compiled script opcodes in memory, which reduces the recompilation overhead.
🟢 Preloading is built on top of OPcache but
A few weeks ago, we've created a new package: livewire-filepond.
This small package seamlessly integrates Filepond for smooth file uploads within your Livewire components.
✍️ Blog post:
📦 Repo:
✨⚒️ Introducing Full Stack Artisan ⚒️✨
As presented by
@freekmurze
at
@LaraconUS
: a premium Laravel course on
building advanced, reactive user interfaces with Laravel Data, Inertia, React, and more!
Launching later this year, follow along!
🤩 We're thrilled that our Black Friday Deals will be back next week!
🧪 We've created another nice parody video for this year's sale. Get ready for some Portal-inspired fun!
🥳 Enjoy a 30% discount on our products from Monday November 20th until the end of Cyber Monday!
🤔 Have you installed `laravel-ray` as a dev dependency?
👀 Make sure to remove every `ray()` call in the code before deploying. Otherwise, your production application might break.
💡 An easy way to remove all calls is by running `php artisan ray:clean`.
💡 Did you know you can use underscores to format numeric values?
👀 The underscore is ignored by the parser, but it significantly improves the code readability.
📦 Looking for a way to dive into
#opensource
?
Contributing
@laravelphp
11 support to packages is a great starting point!
Take a look at this example PR by
@_stefanzweifel
:
🙌 We’d like to thank
@brendt_gd
and
@AdriaanMrn
(at right and left in this picture) for all the great work they have done for us and wish them all the best in their next jobs!
❤️ We’ll miss you!
🌎 It’s a small world, so we’ll see you around!
We are currently working on a complete makeover of our company website.
If you use our opensource stuff, please tweet us how you’re using it. The best tweets will be featured on our new site. 🙌
Today, we're releasing a new major version of Laravel Comments with one of your most requested features: mentions!
🎉 To celebrate, use the code `MENTIONS` during checkout to get a 20% discount on your Laravel Comments license or renewal purchase.
Happy commenting!
Last week we celebrated the end of year in style with an exciting kart race and a delightful dinner. 🏎️ 🍽️
🥳 Happy Holidays to our all customers, supporters and the open source community. See you in 2024!
😩 Tired of removing Ray calls from your code before committing?
✨ We've added a new feature that automatically removes all Ray calls from your code!
🧹 You can now keep your codebase clean with a Rector rule or a simple command. Discover it in our blog post in the comments.
⌨️ We’re creating a book and video series on building modern applications with PHP. It will be released early December.
📯 Today, we’re going to send a little preview to everyone subscribed to the mailinglist at
#php
We are approaching 100 million (!!) downloads for our packages. 🤯
🎁 To celebrate this fantastic landmark we’re going to give away 10 backpacks. To win one of these, tweet / or mail us how our packages made a difference in your projects!
Winners get picked when we reach 100M!
💡 Did you know you can use anonymous classes in PHP?
👀 Anonymous classes are useful for quickly creating straightforward, temporary objects.
They work similarly to regular classes, allowing you to provide constructor arguments, inherit from other classes, implement
Introducing href․email: we're launching a newsletter!
Content on the internet is at a tipping point. Social media actively discourages sharing links, while AI-generated content is gaining prominence. We want to double down on human-created and curated content. Authors and
💡 PHP's `match` expression is easier to write than the `switch` statement. But there are differences!
One difference is that the `switch` statement does a loose type check, similar to `==`, while the `match` expression does a strict type check, similar to `===.`
For a
👀 For the next 10 hours, you can buy with a 50% discount!
🧠 If you want to build a big
@laravelphp
app, this is the course for you!
🎁 We will give a free copy to a random person retweeting this. (Alrighty bought it? We’ll do refund)
#php
#laravel
👋 Say hello to Sébastien, our new front-end developer!
He's got tons of experience ranging from content websites to data-driven web applications and experimental digital experiences. Sébastien is always eager to learn; his drive and eye for detail are reflected in his daily
💡 Did you know that class constants can be overwritten?
🙅 If you don't want that to happen, make them final! And, as of PHP 8.3, you can declare their type too!
We're doing a
@LarabellesPHP
giveaway! The winner can choose between Laravel Beyond CRUD, the Laravel Package Training or 5 months of
@flareappio
standard for free. To enter: follow
@LarabellesPHP
and RT this tweet. Women only! We'll announce the winner in 2 weeks. Good luck! 🥳
🐛 By using Ray, you can turn any debug chore into 'Die & Dump Debugging Deluxe
😍 We usually sell one year licenses, but today we have a limited amount of lifetime licenses on offer at
🎫 We’re giving away one ticket for
@LaraconUS
Want it? Send a mail to info at
Only send a mail if you yourself plan on going.
We’ll randomly pick a lucky winner this Friday.
RT = ❤️
🎁 We’ll give a free copy of our newest course to a random person that retweets
@freekmurze
’s announcement tweet ⬇️
Should that person already have bought the course, we’ll issue a refund.
🚀
@christophrumpel
and our team at
@spatie_be
have launched our newest course Writing Readable PHP 🥳
These tips will make your code a joy to read for you, your co-workers, and future self. As a bonus you'll learn about static analysis too!
👀 Don't miss out on our week of incredible Black Friday Deals!
✉️ Subscribe to our newsletter and stay up to date about all our discounts:
🛒 We'll be sharing all our exciting promotions soon!
⚡ Flash Sale Alert ⚡
🥳 The lifetime licenses are back!
🚀 Visit
💆 This tool will make debugging a breeze! The lifetime licenses will only be on sale during the weekend.
🐘 Using strict_types is often thought to stop type juggling in PHP.
🤔 But did you know that's not exactly true?
💡 Declaring strict_types will prevent other types from being passed into a function, but you can still change the variable type inside the function itself.
Ignition doesn’t just report data, it also tries to determine solutions for your errors.
Forgot a class import? Ignition will detect the missing use statement and display the missing class name.
Got a typo in your view path? Ignition will suggest the correct path.
An unsung hero in our package arsenal is
@rubenvanassche
's Structure Discoverer (say that five times fast)
It's not something you often need in an application, but if you're building a package using any sort of auto discovery it's a godsend
Tomorrow 16:30 CET
@LaraconEU
we tell you all about Ignition 🧨 (a free open source package) and Flare 🎆(a SaaS)!
Stay up-to-date by:
1) Subscribing to our mailing list at
2) Watch the live stream at (tip: set a reminder ⏰!)
🕵️ N+1 Issues? Not on our watch!
😰 Lazy loading might seem convenient, but it can be a performance nightmare for your Laravel app.
😎 Ray can easily spot and fix these performance issues, ensuring your app runs smooth again.
Read all about it in our latest blog post below!
💝 We will give a free copy of our Testing Laravel course to a random person that retweets
@freekmurze
’s announcement tweet ⬇️
Should you already have bought the course, we’ll give a full refund!
#goodluck
🚀 Our new course is now available.
You'll learn to test your
@laravelphp
app from scratch. We also show many tips and tricks to sharpen your existing testing skills.
📺 6+ hours of video
🧪Covers
@pestphp
and
@phpunit
☝️Access to private Q&A session
🎊 We recently reached a major milestone: 1 BILLION package downloads!
To celebrate, we're giving a 30% discount on our 🧑🎓 Laravel Package Training course.
Use discount code 1BILLION-PACKAGE-TRAINING during checkout.