Steve Grunwell

Open-source contributor, speaker, and electronics tinkerer

Tag: Testing

Taco, a black cat, peeking out of a white drawer

The Beauty of PHP Value Objects

At last year’s php[tek], one of my biggest “holy cow, why haven’t I been doing this?!” moments came from my friend Andrew Cassell when he explained PHP Value Objects in the context of Domain-Driven Design.

Put simply, a Value Object is an immutable object that encapsulates some data and will always be in a valid state.

Continue reading→

A series of pipes and gauges along a wall

Travis CI for WordPress Plugins

If you’ve spent much time on GitHub, you’ve probably come across repositories with green badges that look like this: Build: Passing

A lot of repositories will have these badges/shields, as they indicate that the last run of the Continuous Integration (CI) pipeline for this repository “passed” (e.g. everything is working as expected).

Now, Continuous Integration can mean a lot of things: maybe the project has a wealth of well-written tests that are all passing, or the simply that coding standards are all up-to-par. No matter the coverage level, this green badge indicates to potential users of your code that it satisfies the quality checks you’ve put in place.

Better yet, once we have a Continuous Integration pipeline in place, we can make it a prerequisite for pull requests to be merged. If you’re tired of PRs that don’t respect your project’s coding standards, ignore PHP compatibility rules, or otherwise produce lots of overhead, automating the high-level testing can save you lots of time.

Continue reading→

Join us for WooSesh: October 9 and 10

WooCommerce Custom Orders Table @ WooSesh 2019

As you may or may not be aware, one of the many projects I maintain at work is the WooCommerce Custom Orders Table plugin. The plugin takes all of the individual post meta entries that come along with most every order — billing and shipping addresses, order totals, and way more — and stores them in a flat database table, optimized for performance.

The WooCommerce Custom Orders Table plugin has been crucial on some of our bigger stores at Liquid Web, but one does not simply change how WooCommerce stores order data without being very careful and deliberate. That’s why I’m pleased that Brian and Patrick at WooSesh reached out and asked if I could talk all about it!

Continue reading→

The Gateway Arch in St. Louis, MO

Confidently Testing WordPress @ WordCamp US 2019

The term “WordCamp” can encompass a number of types of conferences. Some are friendly homecomings, groups of a couple hundred people, a few tracks, and a small group of volunteers working tirelessly to spread the love of WordPress to their local communities. These are the camps where I spend most of my time: Dayton, Detroit, Kent, Grand Rapids, and Ann Arbor are all a fairly short drive away, and hotels are typically affordable.

There are other WordCamps, though: the destination camps. The WordCamps that people will travel from all over the country for. WordCamps Miami, Chicago, Phoenix, Orange County — places where people will flock from all over the country to attend and rub elbows with some of the biggest names in WordPress.

The biggest of these whale-sized WordCamps, however, is WordCamp US. Like it’s European counterpart, WordCamp US is meant to be the country’s premiere WordCamp. That’s why I’m pleased to announce that this year, I’ll be speaking at WordCamp US 2019!

Continue reading→

A stylized, neon "Portland, Oregon" Old Town sign

Testing WordPress & Code Review @ Cascadia PHP 2019

Last year, I was fortunate enough to spend a week and a half on the West Coast, splitting time between Portland, OR and San Diego, CA for the first installments of two new community PHP conferences: Cascadia PHP and WavePHP.

Sadly, WavePHP isn’t happening this year, but I’m thrilled to announce I’ll be returning to Portland for Cascadia PHP 2019!

Continue reading→

Looking out from the Smithsonian Natural Science museum on a foggy day

My First Workshop @ php[world] 2019!

It’s no secret that I’m a big fan of php[world]: php[world] 2014 was my first big speaking engagement, and I’ve spoken at the 2016 and 2018 editions of the conference (and attended in 2017). That’s why I’m thrilled to announce that I’ll be returning to Washington, D.C. this October for php[world] 2019!

Continue reading→

The Ledyard Building in Grand Rapids, Michigan

Confidently Testing WordPress @ WordCamp Grand Rapids 2019

Grand Rapids is one of those towns I just can’t get enough of: hot on the heels of Beer City Code 2019, I’m excited to announce I’ll be returning to Grand Rapids for WordCamp Grand Rapids 2019!

I’ll be giving my Confidently Testing WordPress talk, which has been making the rounds this year (it’s almost as if people need a bit of help getting into testing 🤔)

Continue reading→

A gray squirrel eating a nut

Two Talks @ WordCamp Kent 2019

WordCamp Kent has grown to be one of my favorite, must-attend WordCamps, and they keep accepting me to speak. This year, I’m fortunate enough to again be giving two talks at WordCamp Kent 2019!

Continue reading→

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→

Page 1 of 2

Be excellent to each other.