Laravel Funding, Community Support, Debugging & Static Analysis
TJ Miller (00:02.491)
Hey, welcome back to the Slightly Caffeinated Podcast. I'm TJ.
Chris (00:07.8)
and I'm Chris.
TJ Miller (00:09.031)
Hey Chris, hey man, it's been a wild, wild week. What's new in your world?
Chris (00:14.636)
Yes. So a little less wild for me, but yeah, just kind of enjoying the cooler weather back to school like we talked about before. So still everyone in the fam is getting used to the, you know, morning routine and getting off to school and doing all the things we need to do and being a little tired towards the evening. So still a few adjustments there, but luckily the weather has.
Cooled off a little bit. So we've been enjoying having the doors and windows open in the morning till about noon ish So I just really enjoying that and getting to spend some more time Outside a little bit more because it has been hot here for quite a while. So enjoying it
TJ Miller (00:57.511)
Man, same deal. Yeah, dude, it's been, it's been like hot and humid here in Michigan, like all summer long. And, you know, it's really only getting out in the, like earlier in the mornings or later in the evenings. So I'm definitely appreciating the cooler weather. We've been able to blow our windows open and everything and that's been great. And yeah, same, same boat. Everyone's getting used to the little bit earlier days and shoving, shoving the little kiddo off to school. It's,
He just had his 11th birthday earlier this week. So that's been fun. We've been eating cake every day. So really can't complain. Yeah, man.
Chris (01:35.584)
Awesome. Happy birthday to him. Yeah, so what else is new on your side?
TJ Miller (01:41.987)
geez. So a little bit of a saga. It's been a wild week. So I got laid off last Thursday. And that's been, that was definitely a bit of a blow. I think I knew that the writing was on the wall, that there was probably a round of layoffs coming before the end of the year. But I...
Chris (01:59.852)
percent.
TJ Miller (02:10.213)
at the same time didn't expect it to be me. And it was and being a like single income household, that was just like kind of kind of tough to wrestle with. So I ended up going to socials and posting about it like the same day. And I don't know, I might get a little choked up about this, but like, man, did the the Larrivo community just really show up?
I was able to have like a handful of conversations. People were sending me intro emails to people at their companies to talk to. And it just, the outpouring of support was insane. Like I'd expect nothing less from the Laravel community, but just actually like seeing it happen and being on the other end of it was something else. I...
It's still, it's still crazy. So, this past week I've been doing a lot of live streaming of just like working on Sparkle. cause you know, I had plenty of time on my hands and I was going to be working on Sparkle anyways. And I've, I think I've always wanted to live stream and just never, never felt like I had the time or the subject matter. And, I just decided to go for it. And I have been having.
absolute riot with that.
Chris (03:39.554)
Yeah, you've done streaming about every day this week, right? If not more.
TJ Miller (03:44.241)
Yep, yep, I kind of put myself in a spot where I'm like, you know what, I'm going to live stream every day until I have a job. And then I'm probably going to keep going after that because I'm just having so much fun with it. And it's been an incredible forcing mechanism to actually make progress on things. So it's like every stream, we're actually doing something. And before the streams, just to make sure things go smooth, I'm
like sometimes prototyping stuff just to kind of like make sure that I'm not fumbling around too much on stream. So that's been, that's been super fun. the past week or so has been filled with like doing some interviews here and there and streaming and a bit of just stressing out about what's, what's next. And so I'm, I'm as of like,
An hour or two ago before we started recording today, I just accepted an offer and I'm like, so freaking excited. I just accepted a position at GeoCodeo. and I'm over the moon. It's, it's a dream role. I've followed Matthias and Michelle, like for years through the Laravel community. I've, I've been in a position to like watch GeoCodeo grow over the years too. And,
I'm just, I'm so excited and you know, it's going to be a place that I'm going to be incredibly proud to talk about where I'm at and what I'm doing. yeah, very, very thankful and just dream, an absolute dream job. So like coming from a place of, you know, panic about, you know, losing my job to finding a dream job is just...
It's been a wild week,
Chris (05:41.964)
Yeah, totally it has and just seeing like you mentioned the outpouring of support on socials and I've I'm sure only seen a fraction of the amount of like messages and retweet retweets and reshares that you put out and it's just been amazing to see and then couple that with like getting out there more and streaming Sparkle and more interest in that.
and just being able to connect with the Laravel community even more, especially right on the tails of Laricon. So it was really just kind of good timing, I think, all the way around because there's also so much excitement. And because you've been in the community for so long and just showing your work, doing cool stuff, being a positive influence on the rest of the community and in Laravel in general. So, you know.
It's been a crazy week, but I think the work that you've put into the community up till now has definitely helped in a cloudy and unfortunate moment in your life. it's just amazing that after a week you're up and running and connected to a company that has been in L 'Harevel.
for so many years and has done some cool stuff. So I'm excited for you.
TJ Miller (07:12.901)
Yeah, yeah, no, I really appreciate that. It's, yeah, I'm feeling very blessed, very fortunate. It's been some cosmic timing of just unparalleled proportions. I just, like the timing of everything, it was crazy. And honestly, as stressful as it was, like, I don't think any of this would have happened without me getting laid off. So it's,
that turned from just like an unfortunate event into an absolute blessing. So, love, love to see that happen, but you know, I'm not the only one having a wild week. Larvo is having an absolute banger also.
Chris (07:58.952)
Yes, amazing. So awesome.
TJ Miller (08:01.555)
getting $57 million in Series A funding from Excel. That is just also crazy.
Chris (08:13.356)
Yeah, yeah, I would have never imagined this happening to. Like a open source project like this or like an open source type company. I've only seen like a small handful of instances of funding going to like a lair valve type company, but this is a massive amount of money. It is such a support system for.
Laravel and team to do cool things like Laravel cloud and all the other things that they're investing in open source, paid, unpaid, the whole spectrum of what Laravel does as a company. And it's just awesome to see. I think this is going to be great for not only the company itself, but open source in general.
all the tools that we use within the Laravel ecosystem and hopefully even spread out even wider than that. Other tooling, like VS Code, which we've already seen in the Laricon conference and just so many things that it could trickle out to the rest of the community, open source, PHP even, and just so much opportunity in this.
TJ Miller (09:33.242)
Yeah, for sure. Did you have a chance to watch the Q &A?
Chris (09:37.302)
I did, yeah, it was really great.
TJ Miller (09:39.825)
You know, one of the things from the Q &A that I think really stuck out to me was there was a question asked around like timing of the announcement in relation to Lericon because this, it's not like the funding happened at the same time of the announcement. It sounds like the funding happened a little while before Lericon. And yeah.
Chris (09:57.88)
Yeah, I think about seven or eight months ago actually that they signed and then it's just been kind of waiting in the background to be announced.
TJ Miller (10:08.731)
And I think, I think the way that Taylor approached the timing of everything and as he explained it was he didn't want to announce it without having like some proof behind the fact that it's not, it's not changing Laravel fundamentally and like the way that they operate that like they got the funding and then we came to Laracon and we actually got to see the fruits of that funding happening with
you know, him saying that like really with the funding, they were able to work on the VS code extension and really spend the time driving out Laravel cloud. and I think that that was just such, such a smart move, to, kind of time things like that, but also just to get to see the, the massive positive impact of the funding is already having on, on Laravel and like our
our Laravel ecosystem, like that's, that was like really smart. And I think that was just like such an excellent answer to that question.
Chris (11:14.658)
Yeah. And another thing that stood out to me too is that they didn't want to announce it until they could show the community that nothing fundamentally was changing with the company. They're still for the community. They're still for open source. They're able to push out paid products that will also benefit the community. But he, he and the company didn't want to kind of take this
TJ Miller (11:27.186)
Mm
Chris (11:44.17)
money and funding at the time of announcement and then have all these questions of, know, how are you going to use it? Is this going to change? He wanted to show the community and the company that really nothing was going to change. And this is only an enhancement to Laravel and the company and the ecosystem. And it's just going to be better for everyone involved. And I thought that was a great way to handle it instead of
maybe not having all of these questions answered or having the proof to kind of go into this next step with the company in the community. So definitely hats off to Taylor and all the things that he thinks about and plans for with Laravel in the community and all of the ways that he's building the company up as he is today. So I think that
really just shows what kind of leader he is and I appreciate that 100%.
TJ Miller (12:45.329)
Mm -hmm.
TJ Miller (12:48.817)
Yeah, I appreciate that so much. I think that one of the things that comes along with this funding is not only the advancement of Laravel, but I think that there's also a lot of implications on PHP as a language. that that's one of the things that Taylor's talked about in the past is there's, with startup culture and boot camps and everything, we're
no longer like as PHP, like we're no longer at the top of the funnel. And I think getting involved with the VC scene and things that he's really trying to do with Laravel cloud is opening up the opportunities for PHP and Laravel to start getting back at the top of the like developer funnel. Because for so long, we've seen platforms like Versel for JavaScript and
many others where it's like you just have this really quick experience spinning everything up. And like, as you talked a little bit about in the Q &A, like a lot of PHP engineers, like more seasoned engineers have some level of understanding of like how to manage a server and how to set things up on a server, because we've always kind of had to do that for the most part. And now with cloud, you're really just able to go from
zero to 60 and like have something served up. think his goal was to go from sign up to host it in a minute or less. that's huge. And I think that's something that we've only ever seen in other ecosystems. I'm just, I'm so excited to get my hands on cloud. And I think, I think things like cloud and other stuff that I'm sure Taylor has planned is just going to be such a boom for not only Laravel, but I think for PHP as a whole.
Chris (14:42.914)
Yeah, the whole product is great. The speed to launch is definitely needed in the ecosystem. Because I love forage. I've been on forage since the pre -launch signup list and has stuff on there since day one, basically. But still, you have to know what you want for servers ahead of time. You have to wait for them to spin up. It takes not that long, but tend to.
TJ Miller (14:58.556)
Yeah.
Chris (15:10.51)
15 minutes depending on what you're doing, but it's still that barrier to entry and you need to know a little bit of what you're doing. So this will open up the gates to like so much opportunity for new people coming into PHP or Laravel or just wanting to tinker around or just share a side project with someone else in the meantime. And that's going to be super cheap for any of the Laravel cloud.
TJ Miller (15:12.561)
Yep.
TJ Miller (15:18.088)
Mm
Chris (15:39.788)
domains which they shared and then once you go to production it'll be you know a little bit more TBD on all the pricing on that but just to be able to do a couple click deploy and be up and running in a few seconds without having to worry too much about the ins and outs of infrastructure and all the choices that go around DevOps I think is going to be hugely beneficial to PHP Laravel and the community.
TJ Miller (16:06.355)
Yeah, for sure. And I think the fact that he's already thinking about things like safeguards and multiple ways of preventing you from getting like, my site went viral. Now I've got a $400 ,000 hosting bill. I think it just goes to show the level of detail that he's already considering as part of the platform. So I can't wait to see how polished this is. I know I've got a couple of sites that
I chose to build on JavaScript frameworks just so that I could utilize like a super easy hosting on something like Netlify. I can almost guarantee I'll be rewriting all of that stuff back in Laravel and utilizing Laravel Cloud just for like a super pain -free development. And I'm someone who loves working on servers and tinkering inside of like the DevOps space, but...
There's something so nice to like not have to worry about that unless you want to, you know?
Chris (17:07.03)
Yeah, yeah, totally.
TJ Miller (17:09.457)
So moving on from Laravel funding, we're talking a little bit about debugging and your approach to debugging applications and maybe some of the tools that you use.
Chris (17:22.178)
Yeah, yeah, let's do it. Sweet. So yeah, typically for debugging, have a lot of options within PHP in general and just Laravel also. So we have the old just DD, Dying Dump, super easy, especially in the Laravel space. In older projects, I even do like a little shortcut.
TJ Miller (17:24.113)
Sherman.
Chris (17:52.076)
to basically do the longhand version of that and put it in non -layer -of -all projects for the ones that are few and far between with those things. Because it's just so easy to just be like, what is happening on this line? You don't need any other tooling or anything else like that. And then we have things like ray and especially like x -debug. So typically for me, when I'm debugging things in an application, it's really
just the simplest, quickest, easiest way that I can just get a quick answer. And typically that is either a dump or a DD. And sometimes if I'm doing a lot of debugging or in a brand new feature and there's a lot more information that I want to grab from what I'm doing, then I'll spin up Ray and get a bunch more of that information at the same time.
TJ Miller (18:45.703)
Yeah.
Chris (18:49.442)
typically don't reach for xdebug because there's just been a lot of differences between side project environments, work environments, and it's just completely different setup for all those between Docker, non -Docker, herd, local, anything like that. So it's been a little bit of a mishmash to get that set up and get everything connected together in PHP Storm. So I've...
TJ Miller (19:07.965)
sure.
Chris (19:19.126)
reached for it before when I've really hit a wall and needing to have the power of that tool. Or if I'm experimenting in a new code base to see what happens, I'll definitely spin that up. But day to day or even small debugging sessions to medium debugging sessions, I'll just use whatever's easiest. And Ray is typically the.
the heaviest titter that I'll bring out until I really need something a little bit more. So, yeah, how about you?
TJ Miller (19:54.587)
Yeah, no, I am definitely a very similar approach. I think there's a ton to offer with XDbug. Like it's very feature rich. But for me, one of the things that kind of trips me up and prevents me from using XDbug more, I think is I'm just one, I'm really just not a step debugger. I've never spent a lot of time habitualizing it. And I just, it's not the way I approach it, I guess.
But the other part of it is, is it's not something I necessarily want to leave running all of the time either, because it's going to have an impact on the speed in which I can run my tests. There's just a performance impact from leaving it running all of the time. I don't, I'm sure it exists and I'm sure I could tool my way around to like an easy, like toggle it on, toggle it off thing. But
Chris (20:38.316)
Yeah, that's very true.
TJ Miller (20:50.939)
It seems like a little clunky to do that. So I'm probably wrong. I'm sure there's like better ways to handle it with XDbug, but I'm more or less like, don't turn it on and don't play with it. Although I do know there are a lot of benefits for running it and not just from a debugging standpoint, but like a profiling and performance standpoint. know there's a lot of affordances inside of XDbug for that. So.
It's probably something that I'll want to spend some more time with in the future on at least that aspect. But I am definitely a like dump die and ray debugger like ending out all day long. One of the favorite tools that I discovered, I don't know, maybe a year ago was BugGregator. And that's a like a kind of all in one app. I think it works with XDbug, definitely works with Ray.
works with like monologue, actually will capture, if you like reconfigure Sentry to point to it, it'll actually capture calls from Sentry as well. It is a fantastic tool. I recommend everybody to like take a look at it. I haven't launched the actual Ray app in I don't know how long because I'll just pop open Bugregator because I can point literally just about any debugging tool at it.
and be able to get my output all in one spot. nine times out of 10, I'll have ray configured, and then I'll have bug regator open. And then even if I dump die, that's also captured inside of bug regator. And what's nice about getting that dump die into an external tool is in an API working with APIs. So like,
If you're working in the browser and you like refresh the page with a dump die, you'll get that nice output like right there in the page. You can see everything, but in an API context, you don't necessarily always have like exposure to being able to visualize that. Or if you're using a tool like rapid API or postman, then you've got to go toggle off of your like JSON view to a web view to get that output. So.
TJ Miller (23:06.976)
I love being able to push all of those events to an external tool, an external UI, and be able to just capture everything there.
Chris (23:16.108)
Yeah, totally. I haven't used that myself, but I'll definitely try that out because it.
TJ Miller (23:22.075)
Yeah, I think it's over at Bugregator, Bugregator, not Buggerator. I constantly get that transposed. But yeah, bugregator .dev. I think that's kind of their entry point to everything. I just run their Bugregator server via a Docker container. And you expose a couple of ports to it. And then you can just kind of reconfigure a array to post to it.
Yeah, anything else and it's just, it works great. It's a super impressive tool.
Chris (23:56.098)
Yeah, that sounds awesome. I'm gonna have to check that out. You mentioned profiling and a couple other options in Xdebug and something that I also like and what you need to have enabled is code coverage. Code coverage comes out of Xdebug. But like you said, it's a little heavy at times if you're having to toggle on Xdebug all the time and if you only want code coverage for
TJ Miller (24:12.719)
Mmm, yeah.
Chris (24:25.346)
certain development processes or when you're making a lot of tests. So instead of running Xdebug all the time, which has a lot of overhead and other things going on, I've reached for PCov a lot in the past. And that is a much lighter lift if you only want the test coverage. And it doesn't have the whole big Xdebug system running in the background.
TJ Miller (24:41.008)
Mmm.
Chris (24:52.958)
It basically only turns on for code coverage. So it's a lot lighter on the local runners and doesn't consume as much memory and resources on your either local setup or even in GitHub actions. It's a lot easier to run also and a lot fewer options than Xdebug and things to worry about with that.
TJ Miller (25:17.619)
Yeah, you know, that's something I've stumbled across, but I don't have a ton of experience using. Maybe that's something that I'll have to look at putting into Sparkle, getting some code coverage results there. Because that's something I don't have hooked up right now. I've got like PHPstan and Pest, but no coverage reports. And I think that that's something that, you know, especially in a new package would be something good to have. Not that I'm like chasing 100 % code coverage or anything, but...
It's a nice stat to know about where your code coverage is. So good call out, man. Peek -a -boo.
Chris (25:55.63)
Yeah, yeah, it's a little bit lighter lift. And that's something you can also keep running on your local dev all the time anyway, because it's just a little bit easier to keep it running. I had a few scripts before that turned on and off Xdebug, but with homebrew and how all the packages are set up and Peckle and some file references were hard -coded in
the INI files and the SO files. And every time that I did, it seemed like a PHP update in Homebrew. All stuff would break, and I'd have to go in and update all the references to the different date or timestamps. And it was just a mess. So when I got the latest computer, I'm just like, I'm not going to set these up and just either have something on or just not worry about it until I absolutely need it. And I haven't really needed it.
TJ Miller (26:34.376)
Yeah.
Chris (26:55.34)
you know, up till now. So we'll see, you know, how that works. I also haven't checked out really too thoroughly anything of the newer X the bug versions. things could be a little bit easier to use with that and updated tooling. But I just haven't had the chance or the need to dive into that too much yet.
TJ Miller (27:06.257)
Yeah.
TJ Miller (27:16.979)
Probably a good excuse to spend some time with Laravel Herd. I know that they've got an X -Debug integration, and I bet that they have polished the on -off toggle experience with that tool. again, yeah, it just depends what kind of development environment you're running, but I think that's a good use case, an excuse to be using and leveraging Laravel Herd. So while we're on the topic of tools, do you use PHPStan?
Chris (27:39.8)
Yep, totally.
Chris (27:46.786)
Yes. So have it on a few side projects and definitely have it on a number of work projects. But not just PHP Stan, it's Lairstan on top of that. I haven't used base PHP Stan because all my projects, at least in PHP, have been Lairvel. So Lairstan is the obvious choice to use that plugin. And it just
TJ Miller (28:00.465)
Mm -hmm.
Chris (28:13.932)
has a bunch more allowances and kind of handles the magic of Laravel behind the scenes where you don't get some of those false positives in there. But yeah, depending on the context that we're talking about in newer apps that I've spun up, I've done around like a five or six level. And for those of you who don't know what PHP Stan is, it's a static analysis tool that basically can automatically check
TJ Miller (28:32.947)
sure.
Chris (28:43.182)
how your app is connected and the code is connected and sniffs out potential for bugs. So if you have maybe like a mixed type or like an untyped method and it sees through following the code that you're sending in maybe like an int versus a string versus an object, it'll call that out along with a million other things. There's so many rules in PHP Stan.
But if you want to look more into static analysis, there's a lot of deep dives out there, a lot of tutorials out there. But this is a nice wrapper on top of all that. And then Lairstan wraps PHPstan to get more of that Lairvel functionality kind of built in and out of the way. So it doesn't, again, have those false positives. So new projects for me usually kick off around like a five or a six that
gets a handful of things out of the way. We're able to fix a few things here and there. But for older or legacy projects, that's been a lot harder to implement. Usually we have it turned on, but it's like an opt -in. Or maybe we're only working on a new module or directory. So we have the option to run LiraStan and PHPStan on top of that directory specifically and not worry about.
the rest of the application, or you can leverage the baseline file, which basically scans all of your application. It accounts for all the errors that you have and then appends that into a baseline file. So the next time PHP Stan runs, it'll say ignore all these files and errors in the baseline and just show what's new.
So that could be a really great option for someone wanting to use PHPstan or Laristan or even SOM is another static analysis tool that you can use the baseline files to basically get up and running in a legacy code base. And you can move forward in the new way of using the tool and be able to leverage.
Chris (31:04.374)
static analysis and kind of improve as you go without having to fix all of the giant mess that was there before you, which is really helpful.
TJ Miller (31:14.791)
Yeah, I haven't looked at Psalm at all. And honestly, my work with Sparkle is the first time I've spent much time working in PHP Stan. And I think my first real serious exposure to it was deep diving and looking through the source of the OpenAI PHP package that Nuno and team put together over there that uses quite a bit of PHP Stan.
I kind of stole my config from there and the level was set pretty high and I didn't know any better. So I've been working on Sparkle at level eight. And yeah, the levels are just the different strictness levels of static analysis and kind of the different rules that are applied. But I think for an app land, six and seven is probably just fine.
Chris (31:52.302)
Nice.
TJ Miller (32:11.123)
8 definitely feels like it's getting pretty hardcore. I toggled down a couple of times when I was, because I wrote the, I'm now on version 3 of Sparkle, but version 2 is like pretty, pretty well fleshed out. And I was, I started running Stan after a ton of development. So it was just like pages of errors and issues.
Chris (32:34.604)
Yeah.
TJ Miller (32:36.155)
And so I toggled it down to like six and I was like, wow, there's a lot less work to do but I feel like for for package land having a little bit higher level of strictness is probably a good call and along with that like the amount of IDE sugar that you get from actually having all of this stuff defined is
pretty wild, like being able to specify all your generics, being able to specify in PHP docs, even various keys inside of an array. So if you're returning an associative array that is always going to have, for example, in Sparkle, there's the concept of a message. And that's always going to be an array that has an associative array of a role, so an assistant, the user.
a system call and then a content key of like stringed content. That's like the content of the message. So I've always got this array and I'm able to actually type what that is. So I can say that like, hey, this is an array and it's got the role key and that's always going to be a string. And then I've got the content key. That's also always going to be a string. But even if the role was not a string and it was an enum,
You can specify that too. And like you get all of those IDE affordances that go along with that, like type hinting, auto, like auto complete. I was blown away. And so if you really want to see some like top tier PHP Stan usage, the open AI PHP package, go take a look at that source code. It is just very chef kiss of PHP Stan.
Chris (34:25.24)
Yeah. Yeah, and Nuno is like the test and tooling king between making Pest. He's also the, at least the original author on Larestan, the extension for PHPstan. And so he knows all the ins and outs of all the tools, all the niceties that we can put on our application or package code to make all that work and function and have.
a much higher expectation and rule set, which is really nice.
TJ Miller (35:00.773)
Yeah, yeah, I'm loving it so far. It's definitely a little bit frustrating at times, but it has, I can think of like three very distinct occasions that it caught bugs that my test didn't catch or caught before I got around to writing tests for it. Cause I'm not real strong on the TDD end. So I definitely will find myself, especially on like a new package where I'm really
focusing on what the API is. I'm kind of exploring how the code works and how I can get it to work in different ways. And so I'm kind of cutting code first and then going and writing tests in that direction. And so it's been great to of have that catch things on me here and there that either weren't tested yet or big refactors. Like here are the areas I got to go back and fix now.
because I made this change. It's been really useful for that too. So definitely recommend adding it to your toolchain if you're not using it now.
Chris (36:05.774)
Yeah, 100 % kind of surfacing those bugs or potential bugs. In one of our API projects, when I was messing around with PHP Stan, I think I went up from five to six or six to seven. And it started raising a small handful of issues. And once I started looking into it, granted, we have a pretty solid test suite and everything was running fine. But looked into it.
And it's like, yeah, like this can accept multiple things or something else was happening. I don't remember the exact issue that it brought up. But looking at it more, it's like, OK, yeah, we need to harden this down a little bit more. And the tests weren't finding it, but PHPStan and Larestan did and was able to fix the issue, get all those warnings and errors cleaned up, and able to implement a few more test cases to
cover those as well. So between adding more tests and hardening the the level on PHP Stan has really been a great thing, a great tool in the toolbox. And I really appreciate all of the additional information that comes out of PHP Stan's issues because they typically give you a link back to their documentation for the explicit issue.
and typically has a handful of examples of how you can fix it. So yeah, I think, like you said, try it out. Use the baseline, leverage the baseline option for older or really any sort of project if you just want to fall forward with using the tool. And I think that's going to be a great way to go forward.
TJ Miller (37:34.716)
Mm -hmm.
TJ Miller (37:53.106)
Yeah.
Chris (38:04.504)
doing a Laravel new project, get it in, set a higher one from the get -go. And you can always taper it down as needed if you do. But I think it has uncovered so many bugs or potential bugs that it's definitely a required tool in my toolkit from, I don't know, a few years past to everything beyond right now.
TJ Miller (38:29.979)
Yeah, my experience with the V3 rewrite of Sparkle and like really leveraging it and like being cognizant of it off the rip instead of, you know, doing it after the fact has been such a more pleasurable experience. Like it's, you know, before, you know, writing a bunch of code and then just getting hit with a wall of errors, did not feel good. But yeah, kind of, you know, just, you know, writing, writing out a class or adding a new method and then just read on a quick, like, you know, stand on it to see.
to see what's going on has been insanely helpful.
TJ Miller (39:06.835)
So on that note, man, you want to wrap it up for today? All right, cool. Thank you so much for listening to this episode of the Slightly Caffeinated podcast. If you want to go check out show notes or the rest of our episodes, go check out slightlycaffeinated .fm, or you can find us over on Twitter at slightlycaffpod.
Chris (39:09.932)
Yeah, let's wrap it up.
Chris (39:28.64)
And thanks again for listening, and we'll catch you next time.
TJ Miller (39:32.295)
Yeah, thank you so much.