Scott Keck-Warren
0:05
Hello developers, and welcome to the PHP Architect Community Corner, where we have conversations with members of the web development community. I'm your host, Scott Keck Warren, and today we're talking with Nick about his framework, PopPHP. Nick Sagona is the primary maintainer of the PopPHP framework and the CTO at BM4 Technology, a small shop located in New Orleans. The company is focused primarily on building solutions in the title and real estate industry. He's been working with PHP since the early 2000s and has really enjoyed having a front row seat to how the language has evolved over the past 20+ years. Like many, he was drawn to the low barrier to entry, but quickly came to appreciate how great it truly is. To solve common problems in his early career, he set forth creating a small library of reusable components. That library eventually grew into the POP PHP framework, and it's been the core of everything he's done in his career. It has allowed him to quickly build flexible and robust systems to provide solutions for the companies he's worked for over the years. When not writing PHP, he enjoys playing music and building amps. Thank you, Nick, for finding some time to talk to us today.
Thanks for having me. It's great to be here.
Scott Keck-Warren
1:12
Yes, absolutely. So I think you, you kind of came across my, my feed because I saw something, I think in r/php about how there was a new release of your framework. Can you kind of Talk to us about how POP PHP is different than the other more, I'm gonna say, well-known frameworks and where it fits.
Yeah, so what I tried to focus on with the framework is I'd seen frameworks that were very large and had a big barrier to entry, and I'd seen frameworks that were pretty opinionated and you just kind of had to go with the magic box that they provided you, and I was trying to land somewhere in the middle. somewhere where there's a pretty low barrier to entry, not too crazy, but yet not too opinionated to where you just had to go with that flow for that framework. So that's kind of been the mantra since the beginning, and I think it's worked out pretty well. Again, it's not a huge framework out there, but it served me very well, and there's a few fans out there.
Scott Keck-Warren
2:15
Yeah, absolutely. So I think that the thing I found really interesting about it when I was looking around is it says, On your homepage, it says no magic, just PHP. It's a framework built for people who want to see what their code is doing and just lean on the power of PHP. And I really think that's like an interesting concept because I, I primarily am a Laravel developer and, and there is a lot of that, like, well, this, this thing, we do this thing and then something magical happens and then the code essentially renders.
Scott Keck-Warren
2:41
And like, we, we like, we're constantly fighting like routes and things in inside of our application to be like, okay, well, this route should be showing if it's this and it's this. And so there's all these, but we just like It's opaque to us. And so how has that been, why is that the forefront of your framework?
Well, I just, so when I started the framework, and it started as a small library of components, when I was younger, I had more time, I really wanted to see what was going on under the hood more. And so I started building my own classes and my own components, and at all times I wanted to see what was in front of me. and not have something just kind of abstracted away where I didn't know what was going on. So yeah, with Laravel, when it really started to pop years ago, I took a look at it, and even in the beginning, I was like, yeah, this is very nice, and I could see why it's popular, but it just seemed a little too magic and abstracted for me. And at the time when it crossed my desk, I was already pretty knee-deep in maintaining POP, so I had a lot of friends say, hey, why don't you just use Laravel? And I was like, I kind of like where I'm at with Pop, so I'm going to keep going with it. Obviously Laravel is huge and a great ecosystem inside of PHP, but I just wanted to keep going with Pop and see where it could go. You brought up version— the version that was just released was a big, big push. It's probably one of the biggest upgrades of the framework, which is kind of why Over the years, I've never done much push of the framework or marketing, and this is why I kind of try to do a little bit here, post on Reddit, and kind of update some things out there, because it is the biggest version upgrade in quite some time to try to make it more interoperable, play well with others, better PSR support. I'm sorry. And so that's why I made a little noise about it this time around. Yeah.
Scott Keck-Warren
4:38
And I, so, and so like, I think like the, the thing I'm kind of used to is like a, like a full framework. And is, do you call this a micro framework or is it, or do you, do you have a different term for it?
I would say it's more than a micro framework. Uh, is it a full, full framework? I don't know what your, uh, who's criteria, everyone's probably got different criteria what defines a full framework. Um, I think it'll definitely get you there, um, with most of the components it's got, I think all the checks a lot of the boxes to be at least a basic full framework. There was, it's funny you say microframework, because before this upgrade, there was a microframework spinoff of POP called Popcorn, which was just a single class that laid on top of the main application class that helped enforce REST HTTP method for routing and all that. And I just, I just went ahead and got rid of that and folded it right in directly to the application class. So now that's merged in, but that was the only kind of microframework there was with it. And this POP itself, I think would be more of a, at least a basic full framework, you know? Yeah.
Scott Keck-Warren
5:45
Cause, and like, and I guess like my, my point was like, it's, it's cause there's, you know, there's like Laravel and Symfony, which are these massive things that have like a lot of learning to do. And, and like, this is nice because it's, it's much, much smaller. There's not so much there that like, you know, like I'm like a lot of times, like, I don't like the way Laravel does things. Or I don't like the way Symfony does things, so I do things my own way. And, and it's kind of nice because it's like—
Sounds like you're gonna write a framework soon.
Scott Keck-Warren
6:08
Right. Yeah. And that's the problem. Um, I will probably never do that cuz that'll kill me. Um, but it's, but it's like that, that's the, the whole thing, right? Is like you have like a very basic set of, you know, database entry, routing. I'm trying to remember what all the different things were, but like, but it gets you started, but it doesn't, it doesn't do too much, I feel like.
Right. I think that's attractive. I think if you're going to use one of the others, you're definitely going to commit to it and you've bought into what they're selling. And that's all very good. It's obviously been proven for years, those frameworks are amazing and very robust and well-documented, huge communities behind them, and you can't go wrong, right? So I just, like I said, it became a thing where I'd been maintaining it for so long, I just don't see myself leaving it. It's served me very well. It's been at least for me, in my experience, I've used it at some— the company I'm at right now, we built some pretty big apps with it that have really grown, helped grow the company and the bottom line at the company, which is always a good case study and indicator. And we're on pace right now to launch the new product in October. We're really excited about that. So it's worked well for me. So, you know, it's kind of one of those things where it's like, this is how I think, this is how I do things. I'll put it out there, see if anybody else likes it, doesn't like it. You know, I just haven't put too much push behind it, I guess, and for better or for worse. Yeah.
Scott Keck-Warren
7:33
And I think that's like the amazing thing about the open source community is like, there is, it's just so easy to say like, hey, I solved my problem. Hopefully it can help other people. And like, that's, that very much is what like all the frameworks essentially are, is like a very, you know, hey, we solve this problem so you guys don't have to. So I appreciate that, that you're kind of putting that out for everybody. Well, thank you. Yeah, so I had one question about naming for you. So why is it called Pop?
Man, naming things is hard. So I think it came to be Pop in 2012. The library components really didn't have much of a name before that. I just thought it was short and sweet, and it just kind of popped in there. It popped in my head, I guess, is, you know, a little, it's what I stuck with. It actually, I think, served well, 'cause then when I came up with Popcorn, I thought that was interesting for the little, little microframework that unfortunately doesn't exist anymore, but, 'cause it's been rolled up, but, and then the command line helper is Kettle. So I think from a naming marketing standpoint, it was interesting, but there was no real true rhyme or reason behind Pop. It was just available and I went with it.
Scott Keck-Warren
8:38
Yeah, that was actually one of the things I found really interesting reading through the documentation is it was called Kettle. And I was like, well, so is this all popcorn-based or what is it? But it is like a nice—
Yeah, it was Pop and then Popcorn became that little REST microframework. And, um, from there, when I went to go build out the CIL, the console helper, um, Kettle just kind of sprung in my mind as a natural name for that. So I thought that worked pretty well. So.
Scott Keck-Warren
9:09
Yeah, I think so. I think so too. I think it's really kind of fun. I was like, I was like, that's a fun name for that. 'Cause I also have, I'm also in that boat of like, things are hard to name. Like I've gotten to the point where like all we had, we got a dog and so all of my things now I'm naming after dog concepts. And I'm just like, that's the easiest one to just pick a lane and just keep working your way down that way. Who do you think would be like the best use case for the POP PHP framework?
Well, like I said, I think, and like we've been talking about, I think anybody that may feel overwhelmed by some of the framework offerings out there that it's a little too much to commit to or a little too much of a learning curve. I think that if you're kind of, in the PHP space, whether you're new or somewhat experienced and not looking for anything too heavy, you know, I think POP would be a really good fit.
Scott Keck-Warren
9:55
Okay.
Scott Keck-Warren
9:57
And I think that's, that's been my like consensus looking at it is it does seem very like I could do something with it with like a small piece, you know what I mean? Like not a, you know, I could very quickly spin up an API server using it. Um, so, so do you, do you, when you have people that are, that are new that are coming to, uh, POP PHP, like do you, Is there common stumbling blocks that people have, or is it pretty easy to get onboarded?
I haven't heard of any directly. Usually when people communicate with me, whether it's through the Discord channel or other means, it's all very positive. So the handful of, a little bit of feedback I have gotten, they've seemed to really like it. They've said it's very easy to stand up and they haven't really had any issues. And then they might ask some kind of smaller, like, oh, well, how do you do this one thing? And that's about it, you know? Yeah.
Scott Keck-Warren
10:43
You have some really like well, well-made documentation too. There is like a docs.popphp.org, which is probably like, there is a nice, like, what's new? How do you get started? Here are the basics. Here's how you access databases. So that's like very important to me as a person is to make, making sure that like most of those docs are already out there for people. Um, so docs, oh, it's the worst. It's like, honestly, I hate it. Um, so is, is there any way that the, like, what is it? What are ways that the community could help POP PHP, um, like expand essentially, or, or develop? What is it, what is it you're looking for? Do you need more developers or more people writing articles about it?
I think, uh, just awareness would be great to start off. Um, you know, I've had a few contributors over the years that have contributed to some of the, uh, components that they chose to use, and that's, that's really great. I love their contributions. Uh, I really appreciate it. Um, but awareness would be number one. Um, it's kind of why I pushed out to Reddit and now we're, We're doing this podcast, which is great, and I really appreciate it. So that's it. And then if anybody picks things up and they want to, you know, interact with it and contribute and have ideas, they can always open issues up on the GitHub repositories and we can start the conversation there, what they'd like to see or what they'd like to do. You know, that'd be great too. Yeah.
Scott Keck-Warren
12:02
And then this is my last question before we kind of transition out, but is there any Are there any features that you're particularly proud of that like you get like, we're like, oh wow, I really nailed this?
Um, well, I'll tell you, if you go back to how it started with the library of components, I was working primarily for an interactive shop that we were servicing mostly advertising agencies. So there had to be a lot of media graphic type stuff. So I started with, um, an image component, web form stuff. Uh, the PDF component is one of the oldest. That's a, it's a pretty robust component of, you know, PDF. I know a lot of people probably roll their eyes at PDF that we still have to use it and work with PDFs. 2026, but it's not going to go away anytime soon. So pretty proud of the PDF component, and that got a big bump in functionality in V7. So those components there, some of the oldest, and I'm kind of fond of those. But then the database component's been around for a while, and the core components, those kind of tie everything together. So that's what I would touch upon.
Scott Keck-Warren
13:05
Okay. It is a really interesting framework. And unfortunately I do have to bring this to a close. Is there something that you'd like to direct our listeners to before I let you go?
Uh, you could check us, uh, or check me out and check POP out at, uh, github.com/popphp. And there's popphp.org is the website, direct you to the docs site there to get started if you're interested in checking it out. I appreciate it. Awesome.
Scott Keck-Warren
13:29
Thank you so much for your time today.
Yeah, thank you very much. I really appreciate it. Yeah.
Scott Keck-Warren
13:33
And we'll be back after this word from our partners. If you ship software at a small company or an agency, security and DevOps are probably hats you put on between features, not a team down the hall. Nobody hired you to read CVE feeds, chase Dependabot PRs, or wonder whether that staging box is 3 Ubuntu versions out of date. Hundreds of CVEs ship every week. Almost none of them are about you until one is. CVEs and security newsletters aren't all that useful if you don't know what you're actually running. Install our GitHub app on your repos and our sensor on your servers, and we know exactly what you run everywhere and exactly what's vulnerable. Our CVEs takes a full inventory of everything in your stack and makes it available to your coding agent via an MCP server. Your coding agent and our MCP server help you switch on unattended upgrades, auto-merge dependency bumps, and schedule reboots that clear the everyday CVEs on their own. Then we monitor those automations to ensure that they're actually doing their job and pull you in only when something drifts or a CVE generally needs a human. Once you are automating as much of your security posture as possible, we keep an eye on those automations to ensure that they are working as expected and are sufficient to keep you safe. When something does need your attention, we notify you and your coding agent using our MCP server to help you get through things that can be tracked quickly. Check out ourcves.com. I have to say another heartfelt thank you to Nick for all of his time, as well as for you for listening. If you're not already a subscriber, make sure you subscribe with whatever your preferred method is so you can get the episodes as soon as they're released. Maybe share this post with a coworker who would be interested to know about POP PHP as well. This podcast is available both in an audio version on the PHP Architect website and a video version on our YouTube channel. This is Scott Keck Warren for the PHP Architect Community Corner signing off and reminding you to keep listening, keep coding, and keep reading.