A Question and Answer period with pre-recorded videos will follow State of the Word. To take part, record a video of you asking your question to Matt on your computer or phone (landscape format, please). Don’t forget to include your name and how you use WordPress! Try to keep your video to under a minute so Matt can answer as many questions as possible.
I fielded a question in the Laminas Slack yesterday that I realized should likely be a blog post.
The question was:
Is there a way to register development-mode-only modules in Mezzio?
There's actually multiple ways to do it, though one that is probably more preferable to others.
Conditional ConfigProviders
We already provide one pattern for doing this in the Mezzio skeleton application, by conditionally including the mezzio-swooleConfigProvider if the class is present:
Alternately, you could express this as an anonymous function:
function (): array {
if (class_exists(\Some\ConfigProvider::class)) {
return (new \Some\ConfigProvider())();
}
return [];
},
(The values provided to the ConfigAggregator constructor can be either string class names of config providers, or functions returning arrays, which is why either of these will work.)
This approach is primarily useful if the config provider will only be installed as a require-dev dependency.
But what if you are defining the config provider in your own code, and it's always present?
Development-Mode Configuration Aggregation
Another possibility is to do some "hacking" around how laminas-development-mode works with Mezzio.
laminas-development-mode in Mezzio works with the config/autoload/development.local.php.dist file; enabling development mode symlinks config/autoload/development.local.php to that file.
That file just needs to return an array.
As such, you could totally write it to aggregate other config providers, as well as some default development configuration, using the same tools you do in your primary configuration file:
// in config/autoload/development.local.php.dist:
declare(strict_types=1);
use Laminas\ConfigAggregator\ArrayProvider;
use Laminas\ConfigAggregator\ConfigAggregator;
$developmentConfig = [
// app-level development config you want to define
];
$aggregator = new ConfigAggregator([
// any ConfigProviders you want to list, then:
new ArrayProvider($developmentConfig),
]);
return $aggregator->getMergedConfig();
This approach is likely the best to use, as it makes it more clear in your main config what the default modules are, and any dev-only ones are now listed in this file.
The web design industry has matured in a number of ways over the past two decades. Technology has taken the average website to heights once thought unreachable – even for projects with small budgets. And it’s now easier than ever for new designers to learn the craft. Everywhere we look, there are powerful options available to us.
But, what about our clients? It’s fair to wonder how the typical web design client has evolved over the same time period.
As someone who has been a freelancer since the late 1990s, I’ve witnessed a lot of change in client attitudes, knowledge and expectations. While each person and organization are unique, there are some common themes that have emerged. Let’s take a closer look.
The Web Designer Toolbox
Unlimited Downloads: 1,000,000+ Web Templates, Themes, Plugins, Design Assets, and much more!
Being online 24/7 is often taken for granted. But back when I started out as a designer, the internet wasn’t nearly as ever-present as it is now. Smartphones had yet to come along. Access was pretty much limited to desktop devices (or a laptop tethered to a wired connection).
The technology was just starting to become utilized by mainstream businesses. As such, most of the clients I dealt with at the time were novice internet users. It was not uncommon to meet people who had little or no experience with either the web or computers in general.
This led to a ground-zero starting point for things like client education. The odd part of this was that the required knowledge had little to do with the inner workings of a website. Content management systems (CMS) weren’t readily available, so clients wouldn’t be making updates.
Rather, the education centered around actually using a website and related technologies. I spent a lot of time showing folks how to navigate and prepare content for their own website. Tasks such as scanning images and converting printed text come to mind. Then there were countless hours helping them learn to set up and use email as well.
Thankfully, the baseline for most every client is now significantly higher. Devices are in virtually everyone’s pocket these days and computers are pretty much a given.
Generally speaking, clients have now mastered the basics. This means we can all focus on the website itself, rather than the skills needed to utilize it. This is vital, as websites have become increasingly complex to build and maintain. There simply isn’t a moment to waste on other topics.
There’s More Trust and Acceptance of Designers
Establishing trust is a critical factor in client relationships. Without it, the entire design process and project outcome will suffer.
Reminiscing, I found this to be a much more difficult mountain to climb back in the day. Part of that may have been due to my age (I started freelancing at 21). But the industry was also quite young as well.
From a client’s perspective, dealing with a new medium presents a lot of challenges and uncertainty. It’s understandable that one would have a lot of questions regarding the how and why of web design. And you’d certainly want to keep a close watch over those you’re working with in this new, unfamiliar environment.
In practice, this meant a lot of phone calls and in-person meetings. While it brought a certain level of comfort to clients, it also threw a steady stream of interruptions at designers. Working as a solo entrepreneur was all the more difficult because of it.
Now, it’s quite rare that clients (new or established) request a formal get-together. And phone calls have lessened, though there are still a few holdouts.
Yes, it’s likely a result of more comfort with digital communication. But I think it’s also a sign of greater trust being placed in web designers and the industry at large.
Unlike the 90s, a website is more necessity than novelty. People seem to grasp that they need a professional to guide them towards a successful outcome. Therefore, it’s more about relying on us to provide solutions and get things done.
Where and how we communicate is now secondary. And our opinions and expertise are more often accepted rather than looked at with skepticism.
Expectations Are Higher
When it comes to an organization’s website, the realm of possibilities is greater than ever. Building a fully-functional eCommerce or membership site, for example, is within everyone’s reach. Plus, there are plenty of great examples for every type of site imaginable. Clients can experience all of this for themselves, making them more informed consumers.
This has led to a higher level of expectation. Clients have become much savvier when it comes to design and functionality. They recognize the little details that make one website stand out compared to others.
Web designers often chuckle at the thought of a client who asks us to “make it just like Amazon” or some other corporate behemoth. That is both the blessing and the curse of the modern web.
On the one hand, these expectations place burdens on designers that didn’t exist before. Yet it is also a great opportunity to boost revenue by taking on more complex projects. There’s also a chance to educate clients on the increasingly blurred lines between what large and small organizations can realistically achieve online.
Overall, this is a positive development. An informed client can play a huge role in the success of a project. However, it also means that the idea of a “simple” website is probably a misnomer these days.
An Age of Enlightenment for Web Designers and Clients
When I think about how client relations have changed over the years, I’m amazed at their evolution. It started as a feeling-out process as we learned what we needed from each other. Today, it more closely resembles a well-oiled machine.
That’s not to say any of this is easy, per se. There are still plenty of challenges abound. But it does point to a mature, established industry. This has resulted in clients who have a better idea of their own project goals.
Of course, some things remain the same. The need for great communication is still there – regardless of how we do it. And we designers ultimately have to deliver the desired results. Those will never change.
But, in spite of the world’s problems, we’re in a much better place today. That’s reason enough to celebrate.
Contributor teams released Gutenberg Version 9.3 on Nov. 4 and Version 9.4 on Nov. 18. Both versions include several improvements to Full Site Editing (FSE) flows, in addition to bug fixes and feature upgrades. Version 9.3 is the first release that isn’t included entirely in WordPress 5.6; the version automatically enables FSE experiments when a block-based theme is active. Version 9.4 introduces some new features like percentage width for button blocks, block variation transformations, social icon support, and font size support for the list block. You can find out more about the Gutenberg roadmap in the What’s next in Gutenberg blog post.
Two online WordCamps took place in November: WordCamp Finland Online and WordCamp Mexico Online. You can find Livestream recaps of the events on their websites. Videos will soon be available on WordPress.tv as well.
The Themes team made some changes to WordPress theme requirements. These include removing updated CSS guidelines and a proposed plan to make WordPress themes accessibility-ready. The team is also requesting feedback on the resolution process for issues found in live themes.
WordPress 5.6 will feature a major jQuery change, with the bundled jQuery version being updated to Version 3.5.1 and jQuery Migrate being updated to Version 3.3.2.