Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

orphanedrecord's avatar

orphanedrecord wrote a comment+100 XP

6h ago

Nice series!

Using cursor: pointer; of "hand" on the buttons would be closer aligned with the spec vs. the cursor: default; of "arrow".

The HTML Popover from the previous lesson was new to me and another good tool for the belt.

Thank you!

orphanedrecord's avatar

orphanedrecord wrote a comment+100 XP

10h ago

@simonswiss The proof is in the pudding … nice dessert pun :)

Appreciate these tutorials! You are a solid instructor.

orphanedrecord's avatar

orphanedrecord wrote a comment+100 XP

11h ago

Thank you Philo,

Your series has given me a customizable guide and ideas for setting up shop :)

orphanedrecord's avatar

orphanedrecord liked a comment+100 XP

11h ago

OK. Done. All 33. And was it worth it! There is a ton of great new stuff crammed into this tutorial. Livewire, wow. Kudo's and thanks to Philo for taking on, and delivering a robust tutorial on perhaps one of the most used and complex application types: a web store.

Here's a fun reflection on the entire experience, somewhere along the way, someone commented, "tongue-in-cheek" I think, something like, "... your lessons are so short". As I worked along building the app in my environment, I found a 10-11 minute lesson could easily turn into 1-2 hours. Press on, if you love the "magic", it's worth the time spent.

orphanedrecord's avatar

orphanedrecord wrote a comment+100 XP

2mos ago

@jeffreyway it matters :)

If I see someone else's trash at the beach, I pick it up … and teach my kids to care for the environment. Same applies to a codebase.

If you see it, you are now responsible.

orphanedrecord's avatar

orphanedrecord wrote a comment+100 XP

2mos ago

@mrlami It looks like it may be the Arc browser.

orphanedrecord's avatar

orphanedrecord wrote a comment+100 XP

6mos ago

I mentioned this in your previous Where Should This Code Go lesson, but I don't think there is a definitive answer and perhaps consistency is more important. Lately, it feels like the community is favoring Actions more than Services and I'd like to try out that pattern, as maybe it will feel more like a business's User Stories are coming to life to better align code with natural language.

On larger projects I've used Services with Interfaces (which require Container binding) which in turn call Repository methods. It has held up years later even though it requires more overhead to setup initially.

I do like the idea of custom Query Builders as a more elegant feeling Repo Pattern. The Query Builder methods could be called via Actions vs. Services … I think I may give that a shot in my next project to keep Controllers and Models leaner!