No pain, no gain. In this article, I will explain three goals I’ve set for my PHP-based websites in 2023. And how they will become more integrated with Symfony than ever.
I don’t believe in New Year’s resolutions because they are horseshit.
However, I do believe in setting business and personal goals. And I enjoy earning money and learning new skills because I am nearing retirement and need to keep challenging my aging brain.
Longtime readers of my sites may know I use them as learning and testing grounds. I like experimenting with new technologies and expanding our capabilities and services on in-house sites first.
For 2023, I have three goals for them. And this effort entails a specific goal for each one.
With our flagship site that promotes our content strategy and publishing business, I want to integrate Symfony with WordPress. Yes, you read that correctly. I am not demented yet.
For our content production and web development business, I want to migrate to Sulu CMS with a frontend implementing Netgen Layouts. Or, if that doesn’t work, use the Symfony web skeleton with Layouts.
And for Symfony Station, I want to upgrade to Drupal 10 with a new theme.
Mobile Atom Media
The tagline for my flagship business, Mobile Atom Media, is Digital Content, Simplified. A custom OOP WordPress theme powers its frontend. I plan on unsimplifying its backend by integrating Symfony with it.
My goal is to do so using Sword. It will be the most challenging goal of the three for me to meet. I have never created a theme with Symfony. In fact, I don’t have the Symfony programming skills to do so at this point. So, this will be my third goal to attempt this year. It may be a step too far.
Anyway, William Arin created Sword, and introduces it in this article.
What is Sword?
William says, “Modern WordPress development has been around for a while with software like Bedrock.
Sword takes an alternative approach. Instead of being WordPress with extra features and a new file structure, Symfony embeds WordPress. All WordPress pages and logic, including WP-CLI, run through Symfony.
Welcome to a new era.”
Their site makes three main points:
- Next-gen WordPress → Sword is WordPress run by Symfony. Your WordPress code has access to all Symfony features, while your Symfony code can be WordPress-independent. Build your theme or child-theme, just like you would build a Symfony app.
- Synchronized auth → Login into WordPress will also log you into Symfony. Check the user’s WordPress capabilities using Symfony's authorization checker.
- Docker ready → Sword comes with a preconfigured Docker environment that can be used both in development and production. WordPress is entirely configurable through environment variables.
An additional challenge may be to continue using the Gutenberg editor.
February 2023 update
Well, business goals have intervened with this personal goal.
I have a new client with a hard-coded site I need to move to a CMS. I wanted to explore the easiest solution for content producers in Drupal and compare it to the WordPress experience.
So, I rebuilt my Mobile Atom Media site in Drupal with DXPR.
"For too long, marketers have struggled with Drupal. Those days are over. Smart, fast marketing teams build whatever they need with DXPR, even with no Drupal experience. Drupal-powered marketing teams are now dangerous. You have all the power of Drupal—the ability to create robust websites with any form, gallery, or shop you need—combined with easy visual building. Now, that technical downside of Drupal is behind you. Move forward with intuitive drag and drop building."
FYI. It is the best Drupal experience I have had. However, it's not quite to WordPress's ease of use yet. But, it's still impressive.
I may revisit Sword again in 2025.
Mobile Atom Code
Mobile Atom Code implements Mobile Atom Media’s content strategies. Its tagline is Content Production, Simplified. That’s for my clients. For my sites, I like doing things the hard way. Or at least a new way.
So for my second most challenging goal of 2023, I want to migrate MAC to a Sulu CMS backend and a Netgen Layouts frontend. Sulu is an abstracted Symfony CMS, and learning it should prepare me for my Sword challenge.
However, I don’t even know if using Layouts with Sulu is possible. I will find out. But you can connect Netgen Layouts to a generic Symfony Skeleton, so why not. Maybe I can use Sulu’s headless API?
Or I might have to go another API route and use Contentful to pull in content. But at least the other parts of the backend will be Symfony.
As you can see, this goal is in the idea stage and still needs lots of research.
There is a SymfonyCast I plan on taking to learn more about using Netgen Layouts with Symfony. And I may even have to spend some consulting money. You can’t always do everything yourself.
If I have to use Symfony directly, this may not be an achievable goal this year.
What is Sulu CMS?
I want to try Sulu first because it is Symfony-based.
If you read my article, Exploring the 17 Content Management Systems of Symfony, you know that:
"Sulu is a content management platform based on Symfony and made for businesses. It's a flexible CMS to create and manage enterprise multi-sites and a reliable development environment for high-performance apps. With powerful features for developers and a simple UI for editors, it's the ideal engine for state-of-the-art business websites and web-based software.”
For developers, they emphasize:
- Full-Stack Symfony → 100% Symfony, extended and enhanced with agency-ready CMS and digital marketing features.
- Great UX Out-of-the-Box → Sulu delivers its beautiful user interface out-of-the-box, with no more fiddly boilerplate frontend code.
- Open-Source → One philosophy, one license, one version, a world of CMS possibilities.
- Strict Code is Quality Code → Writing code to our standards delivers robust, secure applications ready for future extension and improvement.
- Extensible & Flexible → From large portals and websites to complex business applications and everything in between, you can deliver it with Sulu CMS.
- Future-proof & Maintainable → Sulu is here for the long run. Backed by a professional community, a commercial entity, and a deep connection to the Symfony PHP framework, you can count on Sulu.
What is Netgen Layout?
The creators say, “Netgen Layouts is a layer in your web stack, a full-stack Symfony application that can be integrated with other Symfony apps (such as Ibexa/eZ Platform CMS or Sylius eCommerce) or used independently with headless information systems (such as Contentful CMS). It renders web pages based on layouts arranged by "site builders (web designers)".
They emphasize the abilities to:
- Arrange all visual blocks of your site → Drag & drop interface provides easy layout and block management, without losing extensibility for your complex web projects.
- Build magazines & media sites, corporate sites, shops → By utilizing a collection of reusable blocks and style standards guiding the use of those blocks; you will be able to build and maintain various types of sites in a more agile way. You can show different pages for different user contexts, automate content visibility, and more.
- Integrate with the technologies and tools you already use → Netgen Layouts is a layer in your web stack, a full-stack Symfony application that can be integrated with other Symfony apps (such as Ibexa/eZ Platform CMS or Sylius eCommerce) or used independently with headless information systems (such as Contentful CMS). It renders web pages based on layouts arranged by "site builders".
I hope I will be able to do this, but it will be tough (for me).
My most manageable goal, and one that will be accomplished, is rebuilding and upgrading this site to Drupal 10 with a new theme.
Will it be a custom theme I build? Will I customize the new default theme? Or will I build one with the new starter kit capability? I don’t know yet.
But now that I am semi-literate in Drupal, I can clean up the backend. And the frontend can be designed the way I want it to look rather than modifying a 3rd party theme.
However, I won’t do this until auto-updating is functional in Drupal later in the year. As we all know updating Drupal core is a pain in the ass. This is the best reason to upgrade to 10.
In the meantime, I will take several local dev workshops at DrupalCamp Florida to boost my crap local development skills. And possibly a Git course for my super crap git skills. If you have a recommendation, let me know on Mastodon.
As you probably know Drupal 10’s new features include:
- Claro administration theme (replacing Seven). Hurray!
- Olivero default theme (replacing Bartik). Very nice.
- Introduction of CKEditor 5 with better authoring experience and more modern editing (replacing CKEditor 4). Mmmh. I will still use Gutenberg.
- Theme Starterkit tools for bespoke theme creation. 2nd best reason to upgrade.
- Symfony 6 under the hood (replacing Symfony 4) and PHP 8.1 are required to keep the system secure. Mo Symfony, mo better.
Summing it up
As you can see, I’ve set quite a set of challenges this year.
This article is the most personal and non-evergreen one to date. So, if you read it, thanks.
Hopefully, you learned a few things about Sword, Sulu, Netgen Layouts, and Drupal 10. And we’ll find out how much I accomplish this year.
Thanks for visiting, and keep coding Symfonistas!