🔴 Open Source Work, Chat and Q&A
Chapters8
The host tests linking YouTube and Twitch chats side by side to reduce missed messages and improve interactivity.
A candid open-source hangout with Nuno Maduro, practical PHP tool demos, and a peek at streaming plans and code-fix hustle.
Summary
Nuno Maduro hosts a laid-back, two-hour open-source session where he juggles live coding, tooling updates, and audience Q&A. He kicks off by testing a new dual-chat layout that shows both YouTube and Twitch chats side-by-side, aiming to catch more messages during coding. The conversation pivots to POW, his agent-optimized output tool for PHP testing, with real-world usage metrics and a quick tour of how it reduces output tokens compared to traditional tools like PHP Unit, CodeX, and ParTest. He dives into a live debugging session around Laravel Collision and PHPUnit 13, showing how code-coverage data can shift from object-oriented to array formats and what that means for serialization. Interspersed are macro-level reflections on AI, the reliability of cloud services, and GitHub outages, with Nuno musing about how much developers actually value human review versus automated outputs. He also drops early 2025-2026 roadmap notes: a shift toward more structured, segment-based livestreams, daily content goals, and bringing in a full-time editor to sustain higher-quality videos. Throughout, he weaves in field notes about Laravel Boost, CI vs. local test-warmups, and the ongoing, sometimes chaotic, process of keeping open-source projects healthy in a fast-moving ecosystem. The stream closes with a look ahead: more focused content on Wednesdays, continued live interaction, and a plan to port POW by default into Past for a smoother developer experience.
Key Takeaways
- POW reduces test-output tokens dramatically (e.g., PHP testing outputs compressed to ~20 tokens per run) to cut costs and speed up CI workflows.
- PHPUnit 13 introduced changes to code coverage handling; Nuno experiments with a code-coverage serializer to cope with array-based reports.
- Laravel Collision requires adapting to PHP 13+; a pragmatic workaround involves detecting array vs. object coverage reports and adjusting the flow accordingly.
- Sharding in Laravel Cloud/Paratest can speed CI locally but complicates local development; Nuno demonstrates toggling between environments to validate fixes.
- Future livestream strategy shifts toward segment-based content (10–20 minute cuts) and a daily video cadence, with a full-time editor on board to maintain quality.
- POW and similar tools are central to making AI-assisted development practical, but human review remains essential for robust results.
- GitHub outages and cloud-provider reliability dominate the backdrop for modern PHP development, underscoring the need for stable tooling and local testing workflows.
Who Is This For?
Essential viewing for PHP developers juggling open-source projects, CI optimization, and the practicalities of streaming development content. Ideal for Laravel users curious about POW, PHPUnit 13, and real-world debugging on livestreams.
Notable Quotes
"POW is an agent optimized output for PHP testing tools."
—Definition and purpose of POW.
"The goal is that I am logged in on this YouTube chat plus the Twitch one."
—Explain the new dual-chat setup to improve interaction.
"I think with AI you don't literally care as much about the code that's why code is literally more broken."
—A reflection on AI's impact on code quality.
"Starting next Wednesday, you will see segments of 10 to 20 minutes where I actually explore a topic for a video."
—Upcoming format change to create video-ready content.
"We are going to have a full-time editor literally producing videos for the channel."
—Roadmap detail about channel expansion and production.
Questions This Video Answers
- How does POW optimize PHP testing tool output in real projects?
- What changes come with PHPUnit 13 for PHP code coverage reporting?
- How can Laravel Collision be tested locally when PHP 13 is involved?
- What is Laravel Boost and how does it relate to best practices in Cloud Code?
- Why are livestreams shifting to segment-based content and daily video cadence?
Open SourcePHPPOW (Agent-Optimized Output)PHPUnit 13Laravel CollisionLaravel BoostCI/CDStreaming for DevelopersGitHub OutagesCloud Code
Full Transcript
Black. Hey. Hey. You know it. White. break. One Let me see you. Hey, hey, hey, hey, hey, hey, hey. What's up, beautiful PHP people? How everyone is feeling today? Hopefully excited. I am excited today, chat. It's Monday, beautiful day of the week. I already did my gym session. Feeling excited. how everyone is feeling today. Today I have a couple of things to try it out. By the way, during the live stream, we have this new screen which I would like to try it out actually. Well, people are not in already. Let's actually try that already.
So, I literally, you know, I' I've been watching these streamers and something they do quite often is that instead of just relying on this chat all the way top, they actually rely on doing the split window between the Twitch chat and the YouTube chat. So, you know, today I want to try this out. So for those of you who are that already and just arrived, just type something so we can see this thing being filled with stuff. But hopefully like this creates a more interactive thing with you all cuz you know sometimes I notice that I kind of just miss messages, you know, especially on those live streams where where we just have a bunch of people.
What often ends up happening is that we just miss a bunch of messages, you know. So, my goal is that, you know, I'm doing my coding situation potentially just like this. And sometimes I literally just take five minutes to come to this window right here and just walk through the messages so I don't miss a thing. You know what I mean? So, hopefully it works. I'm already seeing a couple of things here. Just check it out. Yeah, I just feel it works better, honestly. You know, it just works a little bit better. All right, let's see the messages we have.
GTSM, what's up, dude? Nice to see you. Jee, go. What's up, dude? What's up? What's up? What's up? Shito Maria 1989. Hi. What's up, dude? Brooks is saying the following bank day in Braa. What a br what a bank day even means? I have little no idea. Cookie, what's up, dude? Zoro, what's up, dude? Tapsi, nice to see you all. Something I literally forgot is that I'm not logged I'm not logged in in both this chats. So I cannot actually see um subscriptions and memberships. That's a problem. Do I want to fix that now? Huh?
I think I think I may want to fix that now. Actually, let me actually fix that chat real quick. Okay, wait a minute. Wait a moment, chat. You guys won't see [ __ ] but this will be fixed in a second. Okay. Uh, so if I open this chat right now, just like that on the left. I'll be back in a second, chat. I promise you I'll be back in a second. Almost. And I open the So, this is a YouTube one. And I want to open as well the Twitch one. Okay, let's do that because otherwise Yeah, I have to do it otherwise I cannot literally see memberships and subscriptions which is a huge problem.
Okay, which is a huge problem. Okay, let's fix that. I'm going to put this full screen and I'm going to do the same thing with this window right here. Yep, yep, yep, yep, yep, yep, yep, yep, yep, yep, yep. And now the YouTube one will be on the left and the Twitch one will be on the right. Okay, this may actually work. And now I need to share my Firefox. And I can close the Safari ones. Okay, you guys are so awesome to literally help me out on this one. Okay, so now I have two Firefox windows open.
Let me see how this plays out. Need to go to the config window, go to Chrome, share Safari or Firefox, and hopefully this will work. Yep. Okay, now works a little bit better. So, just to make you understand, basically now I am logged in on this YouTube chat plus the tweet chat. Meaning that if any of you guys there's a subscription or a membership or you know all those little things, I'll be able to see it as well. Um, so that works much better. Okay, Mr. Puya, what's up, dude? Nice to see you. How you doing?
Nice to see you. Bank holiday is the same as public holiday. Oh, it is. I had no idea. Shad, I have a couple of things I wanted to tell you before we get started. Okay, so the first one is that there's a bunch of news on my on my Twitter. Okay, a bunch of news. A bunch of good good news. Why my Twitter is not even open? Is Twitter down? Hopefully not. Yep, it's weird. Twitter is up. So basically, I have um released POW and I don't know how many of you guys have seen this already, but POW is an agent optimized output for PHP testing tools.
So we love cloud code, we love codeex, we love all the coding agents up right here. But one of the biggest problems of this coding agents is that they actually output a bunch of uh tokens when you are interacting with things like PHP unit pass or par test and you know so basically what we are doing now with POW is kind of fix this issue. Okay, let me just show you on the read me. Okay, this is beautiful by the way already 8K downloads. you guys are [ __ ] like like to leave live leave live leave on a danger zone because this is not even like stable yet but all good all good so just to give the perspective uh things like PHP unit par test and even pass php they actually output a bunch of tokens and they make actually things expensive for you so with pow what we are doing is that we automatically convert that huge massive output to something that looks 20 tokens for everything okay which by the way just to give you the perspective with past PHP.
If you run 50 times uh past PHP within cloth code, that actually means seven bucks in your session. Okay. So, we are reducing that to literally 15, not even 50 cents. This is less than 1 cent literally. So, hopefully it will be much better. Okay. Okay. Okay. Okay. So, that's what we are doing uh with PAL which potentially will be stable at some point. And as well uh we are actually merging something through pull request today as well which is PHP stand support to POW as well. Okay. Okay. We are doing that as well. Okay.
Veltics official. How you doing? Nice to see you. GTCM GTS me cloth code and CEX. I'm going to be honest. I'm not a big fan of codeex. Okay. I don't actually love Codex that much. Okay. I don't actually love it that much. Yeah. PHP stand support is coming to PAL. Okay. Cloud had an outage today. Not really much usable. I actually don't remember the last time cloud code didn't add a down. It wasn't down. Basically, cloud is literally all down all the time. Okay. Cloud GitHub. There is a page on the internet. I don't know if you guys know that page that shows you how much time GitHub was down in the last three months.
And it's kind of crazy. Kind of crazy. Uh how is it called? Do you guys know the name that tells you exactly when GitHub was down in the last three months? And it literally told you like 90%. Down detector. I don't think it's down detector. Oh, wait, wait, wait. We have read it here. Uh, is this the one? This is the one, chat. This is the one. Just look at this beauty. Just look at this beauty. Okay, this is the missing GitHub status page. By the way, they they did something like this for AWS as well.
It was just hilarious. Okay, so in the last 90 days, in the last 90 days, GitHub was up 89%. That's how crazy this thing is. Okay, 89%. So, it doesn't surprise me that Cloud Code was kind of in the same Actually, I'm going to be honest. I think like all the major providers they are actually facing some situation which is you know some people feature this as being literally AI breaking the internet because a lot of these software engineers are literally using AI to ship code and they don't you know they don't put as much care into the code anymore which sparks another discussion I've been thinking a little bit which is I I think like with AI you don't literally care as much about the code that's why code is literally more broken you know that's why code is a little bit more more broken.
And I feel like in general with with AI people don't actually care that much about the result of the code and uh you know that's why they just more more broken you know yeah it's the reason literally honestly AI it's the literally the reason of all these downtimes GitHub down a AWS down honestly we only care about results now yeah people only care about the output the problem is that you know sometimes the output might may might be a good output with bad code and then ends up with s stuff like this. Basically John something is saying the following some companies not even go under 97.
Oh dude you know like most of the companies have like three they have like more than three nines you know it's just expected that your service gives you like 99.9% of uptime honestly. Okay the problem is that developers are trusting AI code. Yeah, that's one of the problems. I feel like the problem is not trusting on the AI code. It's more like people don't actually review it as much, you know, like you are reviewing code from scratch almost when you are uh reviewing code from AI. I think before uh as a software engineer something you used to do is that you would craft the code so all the context will be in your ad and then at some point you would just basically actually reviewing the code but you are reviewing code that you wrote yourself.
So it's kind of easy. You understand the context though. It really just works, you know. I don't know. Reason NTV is saying the following. I still care about code. What I am seeing is that uh I care a bit less about the tests. Oh, really? Honestly, the thing I care the most right now is tests because test is the only thing that prevents me from doing [ __ ] with AI. Honestly, how much Laravel cloud has? All right, let's take a guess, chat. How many Laravel How many tests do you think Laravel Cloud have? All right, everyone typing on the chat a big number and how many tests do you think Laravel cloud has?
I'm going to give you a tip. I was behind of the early development of Laravel Cloud until the stable release. So, just take a guess. Just take a just just take a small guess. Just take a small guess. Oh [ __ ] Oh [ __ ] I already saw the number. Let me actually go there and see real quick. One second. One second. Let me actually go there and see cuz I I don't want to lie to you, okay? I don't want to lie to you. So, let me actually tell you. Okay. It's indeed more than 10k. It's more than 10k uh tests.
How much time it takes to run the entire test suite? Too much, man. That's big. That's basically one of the biggest problems they have right now is that the test suite is not actually um it's just too big at the moment. So locally it's just problematic to run you know. So what we have right now is that we are using this thing called it sharding. Are you guys familiar with sharding? So with past php with past php we now have something called it sharding on the documentation which you can use to optimize your test suite.
Let me just show you real quick. Uhuh. Oh what is it? Wait what? Why I cannot see it. Sharding. Oh here we go. Sharding a test. we are using this and that's why the test suite runs fast on the CI but locally sharding is not usable so it's still you know kind of um kind of slow locally which is a shame what is the coverage close to 100 it's literally 100 often are plates pushed to Laval cloud so I'm not working as close anymore with Laval cloud because now I'm working with the open source team.
But um but we have you know updates is like literally every two hours. They do releases every you know they do releases for sure every day but like sometimes they do more than one release a day very often honestly. Joanito what's up dude? Welcome to the live stream. Nice to see you. Noodle Nation Le saying I want to go sheet and check. Yeah, you won't be able to check right now because they actually don't have they're using sharding and by using sharding they are literally you just you just only see like things like 1,300 and then more,600.
So remove the witch cannot be covered. Oh no, we don't do that dude. Laval cues uses Louis script. What do you mean? What do you mean by that? Shad, we do have an issue to fix today by the way. Uh, so apparently collision is broken on PHPUnit 13. So we may have to double check that actually. So literally I noticed that um I may just actually go here into I was just about to so project streams uh Laravel app. I think here I have PHP. Yeah, I have lot of PHP 8.5 and I think I have under post.json JSON I'm using PHPUnit 13.
Okay. So if I run composer up 8 I should get the latest version of PHPUnit 13. And I think what's happening is that PHPUnit 13 with collision v8 actually coverage is broken. So we need to work on this today. Okay. Yep. It literally broken. So we need to fix this. Okay. You guys are going to fix me. You fix this with me. Okay. Can Opus fix this? Uh potentially. Do you want to try it out? Let's actually try it out real quick. Uh so where I need to go so first of all uh do I want to fix this directly on let's do the following um I think honestly it will be just easier if I fix it myself because it's probably just a breaking change under this uh object.
Not a breaking change. This stuff is supposed to not be used anyway by uh by past PHP but I use it anyways. You know what I mean? do without AI. Yeah, that's exactly what I'm going to do. It's just faster, but also like I just understand it better, you know, the internal issue, you know. Mr. Funny, good feeling is saying the following. I think Laval Boost has a bright future because cloud code doesn't always generate the most readable code, but boost can utilize the best practices. Yep. And Laravel just literally did that. There is a bunch of new best practices in Laravel apps.
Have you have you guys seen that? So if you go to Claude skill you have this lot practices best practices and I have been informed that literally Taylor Otwell wrote all of this by himself. I've been told I've been told about this. Okay. So all of this stuff you see it's literally Taylor Otwell wrote by hand uh all this stuff. So it wasn't I thought at the beginning it was push back but actually it was Taylor which got me surprised. Yep. But very crazy man. Very crazy. Very very very very very crazy. Kind of insane.
Insane. Fix it yourself. Are you an LLM? Nuno. Yeah, I think I'm going to be faster faster fixing this issue, honestly. All right. Line 92. Let's see. What do we have? This thing right here. It's telling me call to a member function get report on array. So, this is now an array, I think, for some reason. No, it's not. Wait, what? Wait, what? Wait, wait, wait, wait, wait, wait, wait, what? Wait. What? Oh. Oh. Code coverage is an array. This is the issue. so previously if I would require the report path, I would get an object.
But now I get an entire array. That's the issue. Interesting. Taylor fired, dude. Oh yeah, baby. That's cool of him. Yep, it is. Do you use vocal noo-noo to interact with claw? Yes, I use like literally when I come here, I just type space. Wait, what? Space is not working anymore. How do I even activate the voice? Wait, what? It was used to be space, I think. Oh [ __ ] Do you guys remember how to activate the voice mode? I literally forgot. So, oh, old space. Here we go. Hi, Shad. My name is Noo-Noo and the Noo-Noo Nation is the best one.
Shadow. It literally even cloud code does that. It is again shadow. Oh my god. So good. What Taylor did really? Taylor wrote the best practices on cloud code for Okay, I'm going to just explain you because maybe some of you don't don't understand the context. So now Laravel boost ships with a bunch of skills which are Laravel best practices. So basically cloud code knows exactly which Laravel are the best practices and Taylor just wrote all of this to literally tell you uh tell cloth how idiomatic code should be written. So if you go for example to let me see if you go for example to routing you will find things like actions and [ __ ] like that I think.
Here we go. Extract business logic to actions and [ __ ] like that. So you'll find all of that. You know, I thought it was written by Pushback. I don't even know anymore. I I So I asked Push back and push back tell me Taylor maybe like maybe Pushback did like the early beginning but then Taylor like rewrote it. I don't even understand it anymore. How how do you install skills? Uh Cloud Code will do it automatically. So you don't install skills. So if you ask cloud code, can you write me this controller automatically? cloth code will automatically load the the the the routing skill.
You know what I mean? What do you think about the new PHP framework? Call it Marco. There is a new PHP framework. Call it Marco. Oh, send me the link. What is that? Send me the link without actually being a link if you don't mind. So, Theo, what do you mean? So, Theo. Nice. Nice, nice, nice, nice, nice. We do need to fix this today by the way. [ __ ] Okay, that's important. Very, very important. So, what is this report path? I assume this report part is still the same thing as before, but now we get an array.
Previously, we get an object. That's what we are getting. That's interesting. So, code coverage is not anymore. This object right here is now an array. So where the code coverage is actually being written to, let me just go there. Oh. Oh. So get path is being called somewhere by the laval test command. Interesting. Interesting. Uh, I'm going to actually just uh remove this project from here so it doesn't get me like it's kind of annoying me a little bit. Uh, how do I remove it? Where is the remove but delete button? Wait, what? There is no delete button here.
Oh, okay. I'm going to just open it again. One second. Going to close this window. I'm going to open the Laravel app under the stream directory only because I was kind of searching and two classes were appearing because I had two projects opened. Okay. Laravel app. Here we go. So, this is the one. Yes. Boost ad skill. Uh, sorry, I meant with boost. I have boost installed in a rent install command, but I don't see the skills. Oh, we need to type PHP artisan boost install again. Okay, marco.build. So, apparently there's a new PHP framework.
Wait, what? I like the website. Honestly, the modular PHP framework pragmatically opinated. Press start. World one build you equip your world module system preferences plugins rare legendary rare yeah I don't I don't know if I like the website or not. What do you guys think about this website? We need to see you build a website with this. Uh oh, dude. I'm I'm I'm so busy at the minute, man. It's just too complicated to find time to even do anything. What is this? Fast travel PHP attributes as routes product controller. I cannot see the code like oh do you guys see when I click I see like a small icon on stars legacy framework it it literally feels that the dude who wrote this website and I apologize if it's not the case okay it really feels like he went to cloth code and he said this build me a website that is literally like um call it Marco framework and uh you know uh it's kind of you know much better than legacy frameworks and it's like just being making the entire thing.
It's from the guy who is who has a lot of magenta videos. Oh, okay. Constant flush. Cryptic generated everywhere. Over complicated learning month. Mark Shust. I think I know this dude. I think I have seen this dude already. Either see him or see him a video of him. I don't know. Enterprisegrade extensibility meets modern PHP. Overwrite anything, intercept any method, extend any module, all without touching the vendor code. Well, props to him. Honestly, I think like every developer, every single developer should try to write his own framework. just to see how much like actually lot of symfony actually brings you, you know.
Um, so if you guys haven't tried to write your own framework, it probably should do at some point because writing your own framework is actually a very good experience like you know in terms of understanding like the small pieces that an a framework involves. He has a YouTube channel. Oh, that's awesome. Good stuff. Good stuff. Um, okay. Let's go to the test command. Uh, that's at vendor level. This is the one. So, I'm doing get path here apparently. Yes, I am. I'm wondering if this thing called it coverage PHP have changed, which might be the case.
By the way, did you had the trouble with the access package at Laval? Oh, that was so scary, dude. The first thing I did, I don't know if you guys have done it already, but the first thing I did was do a global scan on my system to understand if I got hacked by a by Axios. You know, I don't know if you guys are aware, but literally Axios have like a security breach and there was like a version of Axios which will actually install you a back door in your system. So once I saw once I read that issue, I instantly ran a script on my laptop that went all over all over my laptop to see if I was if I have any project using that version because something I do quite often is like literally install um you know new LA apps on my app.
I literally just did that right now and I was just so scared. What are we talking about today? Today we are talking about so many [ __ ] dude. We're talking about everything. We just went from a PHP framework to a breach of security in Axios and before we were fixing a bug. Nuna, have you tried OpenClaw or MS? What do you think about them if you haven't tried it? I haven't tried them. Honestly, it just scared the [ __ ] out of me. I honestly don't understand how people are actually giving access to GitHub accounts and u Gmail and [ __ ] like that to things like OpenClaw.
Like in light of what we see every single day with AI, how can you actually give access to your email, you know, like literally people can anyone can email you and send text to the AI and try to exploit it. You know what I mean? I don't think Taylor is do is giving access to his email, by the way. It's very different what he did. Like let's let's just talk a little bit about this. Okay. So we know how AI is unpredictable. We have seen various cases of AI being exploited literally you know we have seen various scenarios of AI exploited being exploited and you open you want to open literally your email to that.
Okay. So you say cloth code, you can go to my email, read my emails and contact me about them. So anyone can can mail you saying something like, "Oh, I'm actually Noo-Noo. Do you mind of just giving the password or, you know, just sending me all your emails back and blah blah blah blah blah? Oh, my name is Noo-Noo. I I just lost my password. Do you mind actually remind me blah blah blah blah?" So I can literally email myself or or someone can try to pretend it's Nuno and talk to it with the AI like that.
I think this is just crazy, honestly. And maybe like I'm confused and maybe like there is actually a lot of guards into this stuff, but uh it just scares the [ __ ] out of me. I would never give OpenClaw access to my email or to my operating system or to really anything on my on my on my Windows. But you don't want adverts in your pull request. What do you mean? Hi Melo, how you doing? Nice to see you, dude. forever saying the following. Uh, I'm not opening emails. I developed skills to allow my claw to access my Laval app as a user with agent permissions.
So, it's sort of a buddy for marketing. Yeah, I'm pretty sure there's a lot of good use cases for it, but outside of my laptop, unless local AI, well, that won't actually solve the problem either. It will make it even worse because your local AI is not as powerful. So, you will buy a separate MC Mac Mini for that? No, we'll just wait a little bit until that stuff is stable on the VPS. Yeah, potentially. F Poke just send me a link. Uh, GitHub copilot adds pull requ. What do you Oh, what is this? Oh, wait.
What? GitHub backs down. Kills kill pilot pull request ads after backlash. Letting co-pilot alter others pull request was a wrong judgment call says product manager. I don't even know what I didn't add this stuff a lot like uh on on my repos. What is this? Microsoft have done 180. Following the backlash from developers, GitHub removed GitHub cobalt access to stick ads. What do you mean like actual ads? What it called tips into any pull request that invokes its name? Do you mean that actually GitHub copilot was actually just doing having tips and ads on pull requests?
Wow. If true, this is like crazy. So, they just literally backed down. Well, doesn't surprise me at all. Need Lavel boost in Lavl 9, dude. Just upgrade from Laravel 9, man. Like, you know who is using Laravel 9 already? It's just so old. Bruno is saying the following. I heard Telwin guys on the podcast use Open Claw as DevOps for their servers. They were joking, I think. I mean also like it depends if the server doesn't have much like who cares, right? No, I don't think electric cars are going to die. Simon Kurd is saying the following man trying to keep up with all those news every week is impossible.
Yeah, just don't honestly like you know you don't have to like the only people who are like always talking about this [ __ ] is people who are on Twitter every day because Twitter makes you feel that you know you are missing out on pretty much everything when in reality you don't. Jack is saying do you have a merch conflict? I recommend McDonald's. Oh my god. Reminder, your code belongs to Microsoft. It's uh is on GitHub. FM Pog, thank you for the article link though. It's kind of crazy though. Jean S is saying, "Do you want a lot of bit?
Ask any AI to make an image of six megabytes size." Exactly. Why? Can you make an image, call it no.png of 6 megabytes? Exactly. What do you mean? What's up? What's up, Alexandra? How you doing? Okay, image is done. Apparently, 6 megabytes. I'm going to open the image real quick. Uh, what I've done this. Oh, on the stream app. One second. Literally scared of what a image contains inside project streams. FL app. No, no. PNG. It's just a dot. No, it's just a blank. Like, it's a blank square. Literally a blank square. Wait, wait, wait.
It might actually be No, it's just a dog. It's one pixel, dude. It's literally one pixel. Yeah, confirmed is one pixel. Well, that's smart, dude. Honestly, you know, that's that's smart, you know. All right, let's let's go to PHPUN. I want to see the change log real quick. Uh, so Sebastian, uh, PHPUnit GitHub because probably the change log will literally points us in the right direction real quick. So I'm going to go to the PHP unit 13.1 and I'm going to click on change log. Probably I will have something around PHP coverage here. Let's see.
Okay, so what do we have? Uh, not this. Not this. Not this. Not this. Not this. Not this either. Not this. Interesting. Okay. I don't worry about what Twitter says. Oh, I don't I don't worry either, dude. Twitter is just um you know it's literally people living on the edge. I don't think people want to make money on Twitter you know like um honestly you were saying to to make money on Twitter you have to constantly farm engagement and clicks on clickbait. You don't do that much money on Twitter like I have you know I have what like 60 60k followers and uh I make like what like 50 bucks a month.
That's not much. Actually, I do more. I do 35 every two weeks, which is $70 from Twitter. Viewership in general gives gives you no money, you know, in general gives you no money at all. No actual money that you care about. By the way, I forgot to ask you guys, what are you guys working on at the minute? What, you know, it's Monday. What do you What do you have planned for the week? Uh, by the way, let's just thanks to our sponsors, Bradberry International for being so awesome. Um, Bradberry. International. Uh, they're absolutely awesome.
Very good with view and lot, check them out. SER API. If you want to have Google search API and JSON responses, they're absolutely awesome. Check them out. Serapi.com. MailTrap.io. They used to be this local development solution. Now they are ready for production as well. They allow you to literally send your beautiful emails through their service. Mailtrap.io check them out. Jet Brains, the company behind the best editor in the world, PHP Storm W sponsors. They're absolutely awesome. Jadre Brains is awesome. And Titan of course they build and rescue web apps. Lavel React and they also wrote the book Laravel up and running by Matt Staer.
Check them out. Matt Ster is also part of the PHP Foundation today. Okay. And code ravit.ai. If you want to have this very nice code reviews uh through pull request and have nice charts, we are very likely to actually do another video with them uh just because I love their product so much. So they are likely to just be back to the channel with another video or more in the future. New YouTube channel by the way in case new YouTube video in case you guys haven't watched it. Okay, here we go. Mail trap is sweet.
Oh yeah, baby. Oh yeah. Oh yeah. Oh, here we go. Now I can see the subscribers. There is any way I can see like all the subscribers. Oh [ __ ] I cannot see that. That sucks. Okay. Or maybe I have to do this. Nope. Not working. Well, anyways, Honkaite, thank you so much for the subscription on Prime, dude. Appreciate you supporting my work. I thought it would appear all the way top. That's interesting. What is this? Okay, go. Okay. Well, yeah. I thought I would be seeing them all the way top. That sucks a little bit.
What is this? What is this? Charlie French boy saying the following. Tomorrow I will start a new job with the inertia react uh reinia react and uh live uh inertia react tailwind and uh what the [ __ ] real stack. Yeah react inertia laval in tailwind. There we go. First time employee in 10 years of freelancing. Oh dude that's awesome man. You will you will be killing it. Good luck dude. Good luck with that man. Pretty sure you will be doing a good job. new stack. That was me being drunk for a second. I'm feeling a little bit tired today in case you haven't noticed already.
No, the issue is not fixed. We need to work on that. Let me just move this a little bit to there. So, something I'm not expecting. So, previously we're doing d- coverage php and we were getting an object and now we are getting something totally different. So what I will do here real quick is that I will actually do the following. I will go to the test command uh which is a non-included item. Here we go. I'm going to do this. Uh actually not that. I'm going to go to this place. I want to see the place where we actually delete is right here.
So I'm going to not delete this. I'm going to actually echo the report path because I want to see what we have inside. Okay, I'm going to open the terminal once again and I'm going to do this. So now we should have the temporary coverage under vendor nunaduro collision. Okay. Vendor Nunaduro collision temp coverage. Uh yes, you can open this with text. okay. So, it looks like this. I'm going to actually save this [ __ ] because now I think it looks different from the past at least. I'm going to open file. I'm going to say 13.php.
I'm going to put here. Okay. So now I'm going to revert phpunit 13 to phpunit 12. Type composer update. Let's give it to Oppus. Ah, no. I don't want to give it to Opus, dude. I don't want to give it to Opus. so now I'm going to do this again, but I need to go to the test command. Make sure we are actually not deleting the file. And we are not. I'm going to run this again. Now it works. However, this used to be an object and now it is not anymore. So this all makes sense.
So previously we had this code coverage object. Now we have a full array. Okay. So this is expected. I mean I was kind of already suspicious that this would be an issue. So what we are going to do is kind of compare both PHP versions. So, I'm going to compare the 12 with the 13. The one files changing 1,000 files. Okay. Oh, they got Mail Trap supporting them. That's good. They lost Lambda Test. They got test MIUI AI. Okay. So, I'm going to go to I'm going to search to coverage. It's a thousand files. Jesus Christ.
is a thousand files or 1,000 changes because that would be different. My Safari is lally broken right now. Jesus Christ. You're welcome. Uh Charlie French boy. Good luck, dude. Sean is saying the following. I love Jet Brains, but why um why I need to pay to use AI assistant? I already pay for cloud. Well, you can use cloud within Jet Brains. So you don't have to pay for that. You know what I mean? Noo-Noo. Why Safari? Uh because because I use Safari for streams. So I basically use Safari for streaming. I use Firefox for personal stuff and I use Chrome for work.
Chrome for a lot of stuff you know. Py is saying the following. You don't have to. You can use Jet Brains IDE with ISP and push Claude in. Yeah. Yeah. You can use you can use uh claw on jet brains. Better compare uh 12.x with 13.0. That's a good point. That's probably you. No, I'm comparing this two. Oh, wait. What? Yeah, I want to compare this one with this one. The [ __ ] I was even doing because this one was not broken. Let me just confirm, actually. So, PHPUnit 13.0.6. Let's run composer update and confirm that this one is not broken.
Sometimes I see this issue now and I have no idea why. Leave me alone. Well, maybe I have an idea why. It's because GitHub is down again potentially. Jesus Christ. What the [ __ ] is Gab down? What the [ __ ] [ __ ] Is Gab down? No, it's not. Well, this page tell me I'm it's not down. But maybe this page will tell me that is down the [ __ ] down detector has some spikes. Let's see. Come on, Gito. Oh my god. How I'm supposed to get anything done? Literally. One second. It might be actually because I revoked my token to though.
One second. One second. Let me actually do a token real quick because I actually revoked all my tokens too recently. Like the ones not being used and [ __ ] like that. clear the cache. Yeah, let's try that. Let's try that. Composer clear. Okay, done. Nope. Not working. One second. I'm going to create a token real quick. Maybe actually just I'm missing a token because I literally revert the token recently. What's up, Jerry? How you doing? Did you use a custom repository? I didn't. I'm wondering if like, you know, because I'm specifying like an actual tag instead of specifying like a wild card one.
Let me try something. Will this work? Yes. But if I specify like a specific version like Chilling. Chilling. That's good. I'm wondering if I because I'm I need to specify like this specific version. Um it's like trying to go to GitHub for some reason. I'm going to create a token real quick. Yep. Happens to you as well. H. All right. to be deleted. Yeah, that is 100% sure something happening because not even with a token, no, not even with a new token works. 100% sure something happening. with GitHub. It's literally when trying to download this spec this particular PHPUnit version and that that version exists on on packages, right?
Let me just confirm. Sebastian PHPUnit PHPUnit It does. The [ __ ] Okay. What else can we try? Um, what happens if I do this? Still doesn't work. Try to fetch a 13.0.8. Jesus Christ. Gab must be downshhated. Honestly, Adrian just sent me this link. Oh, do you think it's because the PHP code coverage driver now literally just report PHP was removed? Use the new Sebastian code serializable instead. Okay. Well, h. Thank you, Adrian. Appreciate. So, I'm supposed to use this class right now. One second, chat. Only if it exists, which is another issue that we have to think about.
Okay, let's just revert this back to this. Jesus, leave me alone. Okay, here we go. So, this should just work. Not anymore. GitHub is done for sure. 100%. Yeah, Gab is down 100%. anything done today? Gab down. All systems up. Okay, people are complaining 100%. There's like 12 reports, five reports here. There's a little a small spike here. Okay. Nothing on their Twitter account. Create a new classic token. I just did that. Didn't work. Try another repo. That's a good point. Let's just try uh So, this is the same repo, I think. Wait, here it worked.
it's the same one. Yeah. Okay. 100% something is going on. Yeah. Doctrine cannot be downloaded now. Yeah. 100% something is going on. 100%. Sometimes he works, sometimes he doesn't. 100% sure something is going on. Composer Cleash. I've tried that already. I'm wonder I'm going to actually try something different. Uh lot new lot. Yeah, you see I cannot even try lot new. That doesn't work either. Can you guys try in your side? Just try to create laval new to see how it goes for you guys. Just try laval new and let me know if you face the issue.
Try uh type composer clear cache first though. Succin guy saying the following. How do you like the new Mac Mac version? Would you recommend me an update? I'm going to be honest. I feel like Max M1, they were actually very very close to the Mac M4 I have at the moment. So, I have a MacBook M4 Max and blah blah blah blah blah with all the cool stuff. And it I feel is as fast as my M1 which I bought like literally four years ago. Oh, you mean the Mac OS version? Um, actually comes with a bug at the moment.
So, you know, the technology behind things like airdrop and [ __ ] like that actually breaks a little bit my streams. So, when you guys were sawing some lag in the past, you guys remember when you tell me like it's lagging blah blah blah blah blah. So, that was coming from a Mac OS update I have done. And now to fix the issue, I actually run I actually run this code which I will show you in a second. I call it gaming.sh. But what this does, let me just show you. Yeah, what this does is kind of bringing this if config interface thing, which is literally something that was causing some interference on my on my streams.
So now I don't have to I don't have to uh face this issue anymore. That's it. there we go. The news is saying the following. Install it fine for me. EU version 12.5.16. Yeah, but did you run the composer update and you ran a new LL project? Because I think it was just I'm hitting a server of GitHub that is not working for me at the minute. John Sugar is saying, "I'm still on a Mac M1 Mac Mini. It works fine for me." I think all the M generations are good. Honestly, all the M generations are just good.
Second guy is saying the following. I have M1 Pro Max private and I have M3 Pro Max at work and I don't feel any any difference. Yeah, because we don't, you know, uh we don't actually work with stuff that requires a lot of processing literally, you know. I think there was a huge bump between the Intel well between the Intel and M1. Can we just agree that it was like a huge difference? My laptop with the Intel one like the Intel M the Intel laptop like the CPU Intel was just [ __ ] on fire all the time, you know?
It was fans were like on all the time. It It really sucked. Balls, you know, huge balls. W balls. Okay, can we agree on that? But then M1 came and it was like my fan I don't hear any fans literally ever. All the M generation is good. All the M generation and I'm happy with my current laptop and I don't think I don't foresee myself buying a new one. I'm happy with the 16 though with the 16 in you know like um I previously I have the 14 in and I felt the monitor was just a little bit small for my taste and now with with the 16 inches is a little bit better.
I like it better. I feel it is much better though. The brutality. I think my 16 The brutality of my 16 is is also good. Where is my mouse? The [ __ ] Oh, my mouse is broken. Huh? Oh, here we go. Okay. If I cannot do this, I cannot get anything done by the way. Oh, okay. Oh, I removed it. Wait, wait a second. So I'm going to try Laravel new Laravel app. This needs to work. If this doesn't work, I cannot do anything. And I know it's a GitHub issue because this stuff was working. I literally Yeah.
Start a new terminal server. Okay. Well, now that you are talking Huh? What? What? Huh? What this? Why ghostly works and not PHP Storm? Like what the [ __ ] This is so weird. Anyways, clearing composer cache probably hurt you on this on this issue. I I think it's just PHP storm being annoying, honestly. Well, now it's working. Okay, shad. Let's actually fix this issue. Otherwise, we stay here all day. So, test combo composer command. So, we now get an array from this situation. So if we go to um coverage.m MD here we go we have potentially around this place an array and if this is an array then we do something else uh we just continue we don't do anything.
Okay so we can just literally remove this too. Okay so agent send me a link to this stuff. So, Sebastian code coverage report php was removed. Use the new code cor uh code coverage serializer class instead. Let's actually read this to see what we have inside. So, we know we need to use this uh this is still PHP 12. Okay. So, I kind of need to bump these numbers up a little bit. Let's go here and put PHP 13. Let's run composer update on this new terminal because PHPstorm doesn't work with PHP composer updates. Okay, done.
So, we go to the Lavl app, we see the issue. If I type this, yes, we do. Yep. Yep. Yep. Now, it's complaining because I left this little thing. But if I run this, we just see the issue. Yes, this is not an array. I know. How about now? Yep, we see the issue still happening. So now we have an array here. Okay, instead of the beautiful class we had before. So now we can use this code coverage serializer. What is this? Oh, we can un serialize code coverage. Sebastian Bergman. Sebastian Bergman. Why do I don't see code coverage?
Wait, what? Uh uh uh uh uh PHP unit. Oh, PHP unit. Okay, here we go. Code coverage. And we have a new serializer which is And so we can serialize the target but we can also interesting we can also un serialize I assume which is this one right we just give the path and that's it. Okay. So, we just give the path apparently. Oh, right. Okay. What do I have here? Test. Un serializer not found. Yep. I need a little bit more. This is un serializer, I think. Serialization. Un serializer. Cannot be called it stat.
Okay. Un vilizer equals to new this. Let's import this all the way top potentially. By the way, all the cult completion is not actually working because I'm working on vendor at the moment. Okay. So, un serializer this what do we have? File cannot be read exception. Oh, because I deleted it. Something else we can do instead is kind of if class exists, then we do something. Otherwise, we don't. Yeah, we're going to do this. Yes. Yes. Yes. Yes. Yes. Yes. Yes. Yes. Yes. Yes. Jet Brains terminal make caching the Yeah, that was that was a a Jet Brains issue for sure.
Mr. Polly is saying PHP Storm terminal and open a new one. uh or just use ghostly which is exactly what I've done. Uh Goozy eyes is saying the following PHP storm two 2026.1 has um several problems. I came back to 2025.3 interesting. Good night Pipal. Good night. John Sugar is saying the following. Nuno there. Is that a use case to roll POW into past and use past general purpose app tool? Huh? What do you mean? Roll POW into past and use past as general purpose apt elf tool. Oh my god. Alexandra in the following. I tried Pokeyo and this week and I find it's cool.
Yeah, Poke is awesome. It's a single weight for PHP. Is nice a single weight for PHP. Okay, it's probably the easiest to sync you will ever use in your life in PHP. Dead simple, you know. Bam. Promise A, promise B. Just execute them both. Boom, boom. I just released the stable version of this, by the way. Okay, in the past, um, this wasn't actually stable yet, but now it is. This was a very fun project. I kind of wish I was able to just do more of this. Uh but yeah, it's it's just literally um almost 1,000 GitHub stars, close to a million downloads.
It popped up. Really really happy with the result, man. Really really happy. Yep. Good stuff. A million downloads. That's insane, though. Literally insane. All right. So if the class in serializable exist then I'm going to use it. Yeah, this works much better. Uh let's see what do we have now. So now we an array. So when I un serialize that path I have an array. Do I want an array here? I don't think I have an array. I want an array. I want a little of this back. this stuff back because it's telling me on the on the read me.
Let me just see. use the new code coverage serializer instead. Okay. So when I un serialize I get this. Let me try something. What are you using inside? Is do you have a BIB uh code for are you married? Huh? is do you have a BIM? Uh do you have a BIB code for are you married? What do you mean? How does a sync work with PHP? Uh I'm using an extension called PTLS PTLC I think. Um so in case you don't know PHP actually have an extension and a sync extension already and I'm just using it properly.
Literally I'm actually using two things. So I'm using PCN TL that extension but I'm also using FFI. Okay, to kind of communicate between processes. So PCNLT PCNTL it's literally forking the PHP process in creating a new one literally copy in memory that process. So if you have like one process, you can literally create another process from that process. So copies it in memory to execute the a sync task and then I just merge the processes at the very end. Okay. So the root process is copied in memory right here, copy in memory right here, and then once the task is done is just literally deleted from the system.
But I also use FFI to communicate between processes. So I kind of want to remember why and when do I use that. I literally forgot like oh I know why. So you know typically you wouldn't get the result back. It would be literally impossible to get the result back. But I use FFI to make it possible. So when you type something like return task one I'm going to literally write to the segment in memory. So then the other process can access to that segment in memory and uh read stuff from it. That's what I'm doing.
Okay. Uh the agent is saying code coverage report for I was just thinking about that Adrian because I was just walking through the documentation or the changes actually. That's why I went to the changes and all the way down we actually see that being used right here. So I'm wondering if we can actually we can actually use this as well to get that object we had in the past. So good point Mr. Agent good point. So this product is using PHP unit uh 13. Yes it is. Oh my god. Everything is like [ __ ] broken when you're when I'm on vendor.
Let's actually open collision instead. This will be much better. Uh collision. Let's remove this. How can I remove a project from PHP Storm? Oh, done. Poor gold here. Thank you. Thank you. What's up, Daniel? How you doing? Welcome to the live stream. Nice to see you. Nice to see you. You're very welcome to the stream. Very welcome. Okay, so now everything should be working. Report facade. What is this facade though? XML facade. No, this is not the correct the correct stuff. The good stuff. Yes, we're good. This needs to go to PHP 13. And for some reason, I'm not able to install it.
Why root composer requires 11, 12 and 135 blah blah blah blah blah blah. Root composer also require Yes. Oh, testbench core doesn't yet support PHP 13.1. That's an issue. Do we? Yes, we do care. We cannot do that. Uh, so I cannot in I cannot try it from this project either. This is open source folks. Literally just problems all the time. Literally. Jesus Christ. Test core. Test bench core. No, it does support. How about test bench? It does support as well. Okay. What we are building today literally just doing some open source stuff. I kind of have to fix the issue on collision today.
So that's what we're working on today. Uh uh uh uh test bench core conflicts with PHPUnit 13. I'm wondering if I do this what happens. Test bench core 11. And here we are on the 11. Yes, this should just work. Now when you say uh you support 13 and more, you are actually also saying that you support 13.1 as well. So this should just work kind of weird. Okay, Shad. So the goal right now is making sure I can install PHP 13 on collision. Okay, that's what we are doing right now. Okay. So until we can get that done, we cannot test this.
Okay. So let's remove vendor. Let's actually go from scratch. Remove composer.lock. Okay. And type composer update. Okay. Let's read this a little bit. Composer requires lot of 13. Okay, we're good. Okay. Yep, understandable. But also requires past five. Yeah, I've done this. So, we actually go to PHP 13 immediately. Yo, Jeff, how you doing, dude? Welcome to the live stream. Nice to see you. Nice to see you. Uhuh. Uhuh. what the [ __ ] is going on? You know what, chat? I'm going to improvise. I'm going to do the following. Going to try like this. Now it works.
But obviously with this crap happening. Yep. Nice. Uh let's add it back. Same issue. So there's obviously test bench causing some issues. Open code uh not anymore. You know, open code doesn't support cloth code. So I don't want to try it again. A Asian uh framework 11 is the issue. However, not even using framework 11. Like this should just default for 13. You know what I mean? Kind of weird. I think there is some 13 test bench score. Let's actually just put the latest of the latest just so the message is more clear. Okay, now it should be a little bit more clear.
Composer requires testbench core 11. Okay. But testbench core conflicts with PHPUnit 13.1. So maybe it's testbench core who has a [ __ ] conflict somewhere here. Testbench core and conflicts conflicts. Yep. Confirmed. Test bench core conflicts with PHP 13.1. So I need to tell Mir that he needs to fix this to begin with because otherwise I cannot actually proper test collision on this one. I'm going to tell Mir that he needs to bump uh at least his conflict. Can you fix this? Okay. So what we are going to do now to improvise is not use test bench on this project.
Okay. So let's actually do this. Let's revert all of this by the way and remove this. So this will allow me to [ __ ] perform composer update. Let me just confirm. Yes. So now I go to the code coverage class again. Let's actually make sure I'm on the proper one. So this should be at coverage level. Collision coverage level. Here we go. So we can go here. We can use the report facade situation from from Sebastian from serialized data potentially this accepts an array so potentially will be already at this point. So if code coverage is an array, boop boop boop boop boop boop boop.
If this is an array, then I want to kind of create a variable which is called that report. Not this one. Not this one. How is it called again? Oh, just facade. Gotcha. facade from serialized data and this will be inside and this should give me something cool. Okay, so we have collision here. We kind of need to sim link collision on the other project so I can execute this code or yeah I want to do that. Uh, so I'm going to go to the streams Laravel app. I'm going to sublime open this. Go to the composer.json real quick.
And I'm going to create a sim link. composer.json sim link.t literally forgot. And now I just cloud code this stuff. If I don't have so I don't have to do this anymore. Here we go. I need this. So, repositories type uh what is the type when it's like local? I think it's path, right? I think it's path. Yep, it's path. I just do path here and URL will be um good question one two one two nun Maduro collision okay this will be the path bam bam bam bam bam bam boom so meaning that now I can just come here and type potential Actually, yes, maybe composer update.
This will simplink it potentially. Nope. Oh, yeah. I need to use this. Okay. How about now? Nice. We sim link it. Meaning that if I go to this project and I type composer artisan test coverage, I will have that DD which now gives me an object just like back in the days. meaning that hopefully this object will have this beautiful get report method on it and we'll be good to go I think. Uh that was close. No report method. So what is this object though? If I type get class for example on this crap it it's a facade.
Okay. All right. So, if it's a facade, I can just do Which methods I have on? Render. I've just render. This is not what I want. This is not what I want. 100% sure. Not what I want. I need an object like this. Ah, interesting. Can I do this? Yeah, but this won't be a file name. Oh, no. Rewrite the whole thing. Yeah, it's exactly what I'm going to do, honestly. So, what is this facade to begin with? Oh, wait. Oh, wait. Wait, wait, wait, wait, wait, wait, wait. Now I do have the information I need inside.
I just think it's like within some internal I think. Haha. This is what I need. Chat, I think we are going to access the internals of this facade class. Okay. I need this this directory thing. They do have a getter on this. If they have a getter, we good. They don't have a getter, but I'm going to do a little bit of magic here. Chat, do you guys want to see something? Okay, I'm going to tell you something, but you don't tell anyone. Okay, so I want to access this private property. And what I will do is this report equal to FN test report and then I'm going to call this with test.
Okay, this will give me the report and then I can do this to get the report in the you on the old way literally and go from here. Oops. Okay. So if this thing is a an array which is a new format then we do this. If it's not an array we back to the old previous PHP version. So we just do that. Okay. And I'm going to call this uh how this is should be called facade. Yeah, I guess I'm going to call this facade. So, this will be facade here. This will be this.
Done. And I think we're good to go. Oo, it was close. Get report on an array. Uh line. Oh, yeah. We don't need this. This should be removed. Now we know that we have a report right here and report right here as well. Yep. Yep. Yep. This should just work. Oh yeah, baby. Oh yeah. Oh yeah, baby. All right. So the final test is so this is fixed I think. Yeah. So we do this. Bam. Just works. Um the final test is go back on PHPUnit version to the old one. So we're using past five which is PHPUnit 13.
Okay. So I'm going to go to past 4 which is PHP 12. Uh so I need to type uh wait wait wait. I need to focus. Yeah, I need to open the Laravel app. I'm going to do that. So, if I type vendor bean phpunit, we are with the version 13.1. But if I go to the lavl app and I change to 12 and I type composer update, I go to phpunit 12. Here we go. And now I type vendor vin version. I get the phpunit 12. But I type PHP test coverage and it still works.
And obviously if I go here and if I do XYZ I'm correctly using this code. So this will just broke. Yep. This is a fixed chat. Now something weird though is that I won't be able to test this stuff on CI because um TestBench doesn't yet support PHP13. meaning that yep the task suite that runs against PHPUnit which should be all the way down won't be able to actually run this code yep I won't be able to put phpit 13 here uh meanwhile at least well me fixed the issue okay so that being said what I have to do now is open a new window let's run the entire test suite and be sure we are ready to go I'm going to just open real quick the if oops just opened like my video gaming platform.
Here we go. Uh collision. Yep. Uh yeah, this is good. I just want Let's run composer lean. Make sure we're good here as well. Yep. Thank you for the fix. Uh let's run composer test. We should be good too. This is slow. Jesus Christ. Oh, here we go. Uh, yeah, this is broken locally, but this is expected to be broken locally, by the way. Yeah, two tests. Okay, cool. G statues get dash git add-p. We adding this. We adding this. So, again, to verify, we check if is an array. If it's an array, we are in a new format, then we do that.
If it's not an array, then we just go back to the previous solution, which is was already working, and we just do code coverage get report. So, we do this get- a blah blah blah get commit- m uh fix code coverage on uh PHP unit 13.1.0 zero get push. I feel naughty when I used the fn hack. It's great. Yeah, it works for this kind of stuff. Honestly, I kind of wish PHP didn't didn't introduce the visibility into properties. You know what I mean? But I think we were we were fine with um with the convention of underscore, honestly.
either something is purely like purely internal like actually internal either is not and I think like pet um PHP introduced visibility when things are not actual private as you just saw. So not pretty but works. Oh yeah baby Sylvia is saying the following. I would like to hear personal thoughts on a personal project. Yeah, let me know. Dude, you also have my Discord. Uh actually the Discord is the best place for that kind of stuff. I'm going to send you my Discord link. Here we go. is the best place for that kind of stuff. Okay.
All right. So, if I go to the GitHub account of collision, I should see the test suite running. Ooh, testuite failed. Static analysis. Well, of course, static analysis will fail because the class don't even exist. I kind of need to ignore this issue. Uh, so run PHP stand. Yep. It won't even comp compile. Jesus Christ. Um, undefined context stand. Oh, come on. PHP stand. Here we go. So, PHP stand won't compile because that class don't even exists on PHP uh unit um 13.0 or 12. So obviously we are going to see a bunch of issues.
Line 93. Uh right. So we kind of need to ignore all of this. So 93 95 plus 98. Okay. So let's go there. We saw 93. PHP stand ignore. Next line we saw 95 which is this one. PHP stand ignore line and we saw 98 which is now the 99. Okay. So we run pint to make sure we good. Yes we are. And we run PHP stand to make sure we're good. And we are as well. Yes. Meaning that now I can do this and I can just say short fix types. Hi Nuno. What a comeback.
What do you mean? Jean Sugar is saying the following. Maybe put a comment above the matrix in GitHub workflow to remind to fix when our cast supports it. Uh that's a good point. I think like just when Meer Mayer Meyer answers me back that will be enough to just me having me go there. M the body is saying the following. I read your cloud instructions and skills and I learned a lot from the best practices. Thank you for that bro. So the best practices pull request wasn't actually me. Jon is saying a I'm not a I don't use that kind of [ __ ] dude.
I'm going to be honest like uh on git I'm like a very simple user. I get commit, I use push, I get like checkout, I use rebates and that's it. I don't really care as much about the git history as as you guys may think, you know. I know a bunch of you care about that. I don't care as much. Okay. Once this is like done, we are going to tag stable uh we are going to tackle a release. But yeah, I know a lot of people are fan of huge and you know like dive into the GitHub stuff into the g stuff.
I don't I don't actually do that much. We're going to actually have someone on the channel to talk about that soon. Real soon just to teach me a few things on that. Okay, chat. Uh let me just give you some heads up about the future of this channel. Okay, so as you guys may know, I told you already like my brother is joining me working almost full-time for the channel. So basically, we are going to have a full-time editor literally producing videos for the channel. Okay, so the live streams are going to change a little bit.
Okay, previously the live streams in the past, they used to be like a lot of freestyle literally. I would just come here and just, you know, be energized for two hours straight and just have fun. They're still going to be like that. But I need to make sure I have content for my channel every single day. Okay. So this means the following means that during the live stream of two hours potentially you are going to see segments of 10 to 20 minutes where I'm going to actually explore a topic and the content of that topic will be used for a video.
Okay. So this will be happening very likely already starting potentially Wednesday. uh didn't happen today because I was just you know uh busy with work and I didn't find the time to actually set things right yet. But um the likelihood that you know all the live streams from now on will be a little bit like Theo3G. I don't know if you guys see that see his streams but uh he basically his live streams are mainly imperally about videos and it's likely that my live streams will become like that too. So, uh, you know, you won't be basically you won't see anymore me just, you know, kind of coding in the freestyle way.
Uh, for two reasons really because for I think like the main reason is because people don't actually code anymore. Like coding by hand. People don't actually do that anymore. So, that's one of the reasons. But the second reason is because um I need to make sure the time I have on live streams is like purely content. It needs to be content all the time. um you know so yeah that's happening starting Wednesday hopefully this is the longest streams uh longest stream without claw u is this a special stream yeah because you know like the reality is that we just don't do that anymore like coding debugging an issue by end we just don't do it anymore like who does that you know who who [ __ ] debugs an issue by end I just did that and you guys saw like I I could have literally asked cloudflow to fix the issue and it would be fixed in 30 seconds you know Chris is saying will you change the outfit for the segments to look uh it was recorded in a different day.
No not really. So the way will work out so potentially the the what I will have with my brother is that we are going to have we are going to try to have a video per day on the channel. Okay. So again if you see 3G uh you see that his YouTube channel have literally one video per day. Okay. And um the goal is that me and my brother, we managed to actually have the same pace as well. So, one video per day on the channel. It needs to be like good a good video, you know?
It won't be [ __ ] So, ideally, it would be videos like this. Let me just go to my channel real quick and show you. Ideally, it would be videos like this. So you goes to my channel, you click here and you see stuff like with 20K views, with 9K views, with 6K views, 22K, 6K, 5K, 6K, 4K, 10K, you know, it needs to be videos like this. 9K, 7K. So every single day it will be videos like this. And for now, what's happening is that I'm having a video like this every week, once a week literally.
And u that's why my channel is like is growth. It's being kind of good, but not perfect. I kind of wish to end the year with 100K if I can. But um but the goal is like just be way more consistent with videos. Okay. Sh. Let's see if collision is done with a CI though. It should be good. But uh let's confirm. Yep, we good. Okay, the CI is passing, meaning that we're ready to tag a stable release of Collision. I'm going to actually do that from the terminal. So what I typically do is that I just come here and type gag--list.
I don't actually keep a change log on collision I think. Yeah, I don't keep a change log. I don't have a release tagged or whatever. So what I will do here is that I will just check the latest version and we are on collision 8.9.2. And I'm going to confirm that as well here real quick. Yep, 8.9.2. So this is a bug fix. Okay, so because it's a bug fix, we are going to just bump this number right here. Okay. So again we are we are on 8.9.2. So we do get g tag uh g tag version 8.93.
Okay. So we just type enter. And by doing this we now see the version on the list at the very end. Okay. So now uh something I want to do real quick to to make sure we don't do crap is just compare the main with uh the latest version. Okay. And yep, we literally just are just porting this bug fix. So now I can just type gag- push and this will literally push the uh push the tag to uh to g. Okay, g uh push d-tax. I think that's it. Yes, here we go. So it's now it's fixed literally.
Meaning that if I go to my streams for example and I just type Laravel new Laravel with PHPUnit 13.1. I type this. I say yep updated. I want to use a starter kit. I want to use PHPUnit. If I do this now collision that will get the latest version hopefully. Yep. 8.9.3 which is the one we just tagged. I'm going to just say yes. Do all of this [ __ ] and then I'm going to run coverage to see if it's really fixed issued, but just in case. All right, we go in. Here we go. We type vendor bin or php artisen test- coverage.
So this is on phpunit 12. Okay, obviously working as expected. So if I type benderbin phpunit, we are on version 12. But if I open on Sublime real quick and I bump this to PHPUnit 13. I type composer update, we get PHPUnit 13 uh.1. Here we go. So everything updated. I run the vendor bean phpunit version. We get 13. And now I run PHP art test coverage. And we get coverage. The beautiful code coverage report appearing at the very end. my friend. How about pen PHP that you posted on Discord? That's a good point. Actually, I asked Puya Pal to take over a little bit of the project.
yeah, Puyal is literally I I don't have the time for the project honestly. Like my time is very limited at the minute. So, Pual literally just uh I asked him this morning, dude, do you mind taking over the project and like fix the issues that we have and blah blah blah? So, he's he you he'll be taking care of it. Okay. Uh what else? Uh yeah, we have something to check on POW. Literally, as you may know, POW makes sure the output of agents is very minimal for test suites and we are going to do that as well for PHP stand.
Okay, so this is the PHP stand regular output and Daniel Hart uh literally the pull request to have the same output also for PHP stand. We're going to do that in a second. Okay. Oh, okay. Jean is saying so no code. Yeah, potentially we're going to steal C code. I think is someone that is that's something that a lot of the content creators are struggling at the minute is is that you know I think even Primogen is struggling a little bit. Primagen is probably one of the most you know inter energized entertainers actually doing code.
The thing is that even himself is struggling because people don't actually code anymore. Like who codes? Like nobody actually handcodes stuff anymore. And I don't know man it'll be tough. will be tough. Jean is saying, "I've installed POW on this project, but it's not working. Do you mind if creating an issue?" What do you mean it's not working? You need to literally Yeah, you still see the normal input output. That's expected. PAL only acts when you are running through cloth code or uh you know any agent really. So you need to go to cloth code and literally just uh um ask cloth code to run your test suite and then your you will see like on the cloth code output you will see JSON.
Ernandez saying the following. Sometimes we need to exercise your our own skills our brain. It's like walking. Uh we could go by car everywhere but we need to go to the gym. Yeah, I feel you. I feel you. That's why literally today I did this by hand because maybe like will give me some if I do that every 10 minutes every day will give me still like the head I need for hand and craft code. Charlie French saying the following. Can we have POW by default on past? It's minating a little bit. That is actually an issue right now on POW which I need to fix but we areating POW everywhere like making sure it's working blah blah blah blah blah.
Once it's like super stable and working for everyone we are going to have POW by default on passed. Yes. Yes, it's coming. It's coming by default on Laravel actually. Okay. So, the goal is be by default on past and at some point will be by default in Laravel as well. So, everything is will be pow basically. Okay. Do you use cube? I don't chat. I really liked it this this new this new screen of having the both tweet and YouTube chat while I'm speaking with you guys. I feel like the interaction is so much reacher basically because I don't lose any messages and I I just feel like it's much richer.
What used to happen in the past is that I would be doing my stuff and then I would come I would literally read a chat I see you guys see right here all the way top and I would just lose a bunch of stuff you know I just I would lose a bunch of messages. So I feel like um you know the having this extra screen right now is just so much better. Silio is saying the following I just sent everything over Discord. Okay, dude. I will check when I have uh even today, I think.
I think I will check today. Yes. I have a question. Uh since you said that no one is using coding by hand anymore, what the new evaluation criteria would be for a job interview for example? That's a great question. I think like for job interviews, um you know, job interviews, I think job interviews, if I would do a job interview right now, I would just have a chat with you, you know. I would I would have a chat with you and I would ask you like what is your favorite stack and you would answer me and I would ask you why that is your favorite stack.
Uh what do you think about um you know what do you think about this technology? what you think about that technology for example and I think that would be my job interview with you you know um I don't think I think technically if you would be able to answer me those questions like live in my eyes that I will be able to assess like how good you are you know plus I will be able to assess like how good you are like in terms of soft skills too you know but like a technical like coding you know coding stuff that's just had g your cloth code got a day off today.
Yes. And we fixed it. It's tacked. It's out there already. So, it was a good It would be much easier if that was like a um a bug on an actual application. Being on collision is just difficult to test a little bit. To be honest, I think you are going to get more and more success doing real code on stream. Ah, I don't know man. I'm I'm you know my my channel will will will change a bunch. I'm going to be honest. Uh Jean Sugar is saying I think is against Twitch to display YouTube chat.
Oh really? Cuz literally everyone does that. Like Gio does that. Um Prime Agen does that. Everyone displays the YouTube chat. And honestly this stuff had the YouTube chat before already. I don't know man. But yeah, regarding code interviews, like actually going to a job interview and they ask you, "Oh, can you solve this problem using code and blah blah blah?" That is just a [ __ ] That's [ __ ] Okay, Chad. Chad, I'm going to rest a little bit. I'm feeling tired today. You may have noticed. Um, so again, we are going to be back next Wednesday and I promise you next Wednesday the live stream will be much better organized.
Okay, so starting ne next Wednesday, you guys need to help me out, okay? There will be a bunch of Q&A like this. Again, this will still continue to happen like a bunch, okay? But starting next Wednesday, we are going to focus a live streams on actually recording content. So we'll be a lot about you know making sure we have a nice video at the end explaining a certain topic or explaining or talking about something new about the cloud code drama or whatever but it will be literally about making sure we have content for the YouTube channel.
It needs to be like that otherwise you know it doesn't it's not worth it you know. Thanks for the stream you're welcome What should we focus more on learning uh on learning if coding is getting obsolete? That's a good question. You know, um I think you you should focus on getting on being on being a very good prompter. You know, that's something that I feel like you you need to focus on like how do I actually guide cloud code to produce very good apps, you know. Um you need to be a good reviewer. You need to be a good reviewer of the output but also of the input.
So, I would focus on that like be being a very good prompter basically. Okay, Sh I catch you guys next Wednesday. Okay. Love you all. Let's rate someone on Twitch as usual. Bunch of people on Twitch. You guys are awesome. Uh, stream manager, you're welcome, dude. You're welcome. But if you can't code, you can't review. That's not true, dude. I know a bunch of people who just review code and don't they don't code ever. I'm going to raid Mayer. Okay, cuz Maya is awesome. Let's actually raid Bush Bunny. I don't think I have a raider.
So, let's raid Bush Bunny. Chat, love you all. Okay, catch you guys next Wednesday for a proper live stream. Love you all. Catch you next time. Peace out. Boo. Now it fight it.
More from nunomaduro
Get daily recaps from
nunomaduro
AI-powered summaries delivered to your inbox. Save hours every week while staying fully informed.









