Steve Grunwell

Open-source contributor, speaker, and coffee snob

Tag: Testing

A close up of a pair of stainless steel knife blades

Writing Custom Laravel Blade Directives

Though it’s far from the top of the list of most celebrated features, Laravel’s Blade templating engine makes it really nice to work with data on the front-end of our applications. With built-in helpers for handling loops, conditionals, and sub-views, Blade gives us a nice way to write dynamic templates that don’t feel like a bunch of PHP mixed in with HTML.

Were you aware you can author your own Laravel Blade directives? The syntax is probably a little under-documented, but it can be an incredibly useful tool if you find yourself applying the same patterns over and over. In this post, I want to show you a Blade directive I find myself using in pretty much every application I build: @activeIfInRouteGroup.

Continue reading→

Ohio Laravel Monthly Meetup

Learn how to test @ the Ohio Laravel Meetup!

I don’t make it out to many meetups these days, but Ohio Laravel is one that I try my best to attend regularly. No, it’s not just its location in the awesome Columbus Idea Foundry, the free pizza, or that it’s brewery-adjacent (though those things don’t hurt). No, I love Ohio Laravel because it’s regularly filled with awesome folks and above-average speakers for a local meetup. That’s why I’m proud to announce that I’m finally contributing a talk to my local Laravel meetup this April!

Continue reading→

The skyline of Austin, TX

Getting started with testing at Longhorn PHP 2019!

To my knowledge, Longhorn PHP was the only new PHP community conference in the US that I didn’t get to speak at last year — I was fortunate enough to speak at PHP Detroit (Detroit), Southeast PHP (Nashville), Cascadia PHP (Portland), and WavePHP (San Diego). In fact, I haven’t been outside of an airport in Texas since the final Lone Star PHP (the spiritual predecessor to Longhorn PHP) in 2017. That’s but one reason I’m excited to announce that I’ll be giving my Testing Like You’ve Never Tested Before (Because You Haven’t) talk at Longhorn PHP 2019!

Continue reading→

An aerial view of the Minneapolis, Minnesota skyline

Two Talks at Midwest PHP 2019

I’ve been fortunate enough to speak at most of the community PHP conferences across the continental United States (that can pay for travel, anyway), with one notable exception: Midwest PHP. That’s why I’m thrilled to announce that list will be one shorter this March, as I’ll be giving two talks at Midwest PHP 2019!

Continue reading→

A pack of elephants bathing and drinking at a watering hole

Intro to Testing @ Nomad PHP

This January, I’ll be kicking off the new year giving my second-ever Nomad PHP talk: Testing Like You’ve Never Tested Before (Because You Haven’t).

Continue reading→

Intro to Testing at CodeMash 2019

For the first few years of my speaking career, I viewed CodeMash as something of a White Whale; after all, the conference regularly brings in some of the best speakers in the industry, convening on the Kalahari at the beginning of the year like some sort of geeky New Years’ party. In 2017, I was lucky enough to give my first talk at the conference. Attendance was, well… let’s say “underwhelming”, but the experience of speaking at CodeMash was great.

This year, I’m proud to announce that I’ll be kicking of 2019 by speaking at CodeMash again! I’ll be giving my Testing Like You’ve Never Tested Before (Because You Haven’t) talk, which serves as an introduction to automated testing.

Continue reading→

A basket full of assorted vegetables

Streamlining your test suite with PHPUnit Data Providers

In every testing talk I’ve attended (or given), there’s one stand-out feature that often has the audience saying “whoa, I had no idea you could do that!” No, it’s sadly not “hey look, you can reliably build quality software with a much lower chance of defects or regressions!”, but rather the inevitable use of PHPUnit’s Data Providers.

With Data Providers, our test suite can become more readable and maintainable while making it trivial to add new testing scenarios. Best of all? PHPUnit ships with Data Providers right out of the box.

Continue reading→

A squirrel perched on the forest floor

Speaking Twice at WordCamp Kent 2018

I’ve long considered WordCamp Kent (formerly WordCamp Northeast Ohio, and WordCamp North Canton before that) to be the premier WordCamp in Ohio. Don’t get me wrong, I had a lot of fun in Cincinnati last year, WordCamp Dayton always puts on a good show, and Columbus will always be my first (and hometown) ‘Camp, but Kent has been the highlight of my Ohio WordCamp experience for the last few years.

WordCamp NEO (2016) marked the first time the conference was held in Kent, Ohio, along with the first time I got to formally meet Chris Lema (my current boss); I’d be lying if I said the session I spent sitting into the hall talking to Chris didn’t in some way lead to me being at Liquid Web today. Then I spent the after-party having a great conversation with podcaster, educator, and generally funny (lookin’) Adam Silver. Last year, I got to know WordPress educator and freelancer Carrie Dils along with SEO expert Rebecca Gill (who wasn’t even speaking, she just wanted to take in the fun). Kent consistently pulls in big names for a moderately-sized WordCamp, meaning you’re able to really get to know the speakers and attendees.

Continue reading→

Writing WooCommerce Extensions with Confidence

If you haven’t heard, Liquid Web is now the first company offering Managed WooCommerce hosting, which is a huge step forward in the world of WordPress-oriented e-commerce. As a result, I’ve been spending a lot of time over the last few weeks working on WooCommerce extensions that help improve the experience and performance of WooCommerce.

One of the main WooCommerce extensions I’ve been working on is WooCommerce Custom Orders Table, which takes the WooCommerce 3.x CRUD concept to its next logical point: storing order data in a custom, flat table instead of scattered throughout post meta. Mindsize worked with other members of my team at Liquid Web to build the initial version of the plugin, then I came in to fix a few bugs.

Continue reading→

Egyptian pyramids

Deeper Testing with PHPUnit Markup Assertions

In a perfect world, every piece of software would have automated tests. As soon as we change a line, we as developers would know what, if anything, broke in our application and where we need to look to fix it. Unfortunately, we don’t live in a perfect world, so we get by doing what we can.

Still, we can look to our image of the perfect world and draw from it, molding and shaping what we do have to closer resemble what we’ve been longing for.

Continue reading→

Be excellent to each other.