mglaman.dev – December 29th, 2023
Hey there, happy New Year!
Here's your weekly newsletter from me, Matt Glaman!
Was this forwarded to you? You can subscribe here!
My latest blog post
Things have been pretty busy the past few months. I have found it pretty hard to sit down and work on the blog or the newsletter, but I wanted to do a little retrospective blog post.
Looking back on 2023
It's the end of 2023! The end of the year is a special time. We can look at the calendar and say, "I can't believe the year is already over," and "This has only been one year?" I always do an end-of-year review of my notebooks to remind myself of the year's events, successes, or failures to grow from next year. A lot happened this year. Here are a few things I wanted to share.
My blogs from this year
As I said, things have been busy. I wasn't able to curate any links to share. But here is a list of my blog posts from this year.
- Trimming whitespace from Drupal form submissions using an HTTP middleware
- Launching my wife's cookie shop web store with Drupal 10 and Square
- Leveraging the list cache tag for entity types "* The trinary states of Drupal access control: allowed, forbidden, neutral."
- Using the new add_suggestion Twig filter in Drupal 10
- The Drupal 10 Development Cookbook is out!
- Debugging your render cacheable metadata in Drupal
- The legacy of DrupalVM's impact on my career "* Check out the ""Drupal at your fingertips"" developer reference guide"
- Running specific PHPUnit data provider data set with PhpStorm
- PHPStan's new @not-deprecated annotation
- Using the bundle specific list cache tag for entity types
- Adding backward compatibility to Rector rules
- Creating fields programmatically and not through field configuration
- Handling hard decisions with Jiminy Cricketing
- Are you ready for Drupal 11 in 2024?
- Lessons learned from helping port the top contrib projects to Drupal 10
- Drupal module semantic versioning for Drupal core support
- Upgrading my site from CKEditor 4 to CKEditor 5
- Simplifying the frontend developer experience in Drupal with a click of the button
- Dependency injection anti-patterns in Drupal
- Factories and dependency injection
- Retrofit: Running legacy Drupal 7 code on your Drupal 10 site
- Registering services to the Drupal service container without a module
- Using jq with Drush to inspect state values in Drupal
- Profiling Drupal AJAX requests
- Using DDEV snapshots to speed up GitHub Actions workflows
- Can we use concurrency to speed up streamed BigPipe responses in Drupal?
- Retrofit's next milestone: Drupal 7 theme support
- Speed up developer onboarding with DDEV snapshots from your CI
- Improving Simplytest's maintainability
- Parallels of typing with PHP and TypeScript
- Protect your investment in Drupal 7 with Retrofit for Drupal
- How do theme template overrides in Drupal work?
- PhpStorm live templates to automate the boring things
- My adventure up to Twin Cities DrupalCamp 2023
- Book Review: Modernizing Drupal 10 Theme Development
- Writing backward-compatible deprecation fixes for contributed modules will be much easier for Drupal 11
- Documentation added for supported hooks and APIs in Retrofit for Drupal "* To POST, or PUT, PATCH, and DELETE? URLs are cheap, but API design matters"
- PHPStan is now running for all Drupal modules on GitLab CI!
- A playground to test Drupal code with phpstan-drupal is coming soon!
If you're curious, here is the SQL query I used to generate this list
SELECT CONCAT('* [', n.title, ']', '(', CONCAT('https://mglaman.dev', p.alias), ')') as markdown
FROM node_field_data as n
LEFT JOIN path_alias as p ON path = CONCAT('/node/', nid)
WHERE YEAR(FROM_UNIXTIME(n.created)) = 2023
AND n.type = 'article'
AND n.status = 1
ORDER BY MONTH(FROM_UNIXTIME(n.created)), DAY(FROM_UNIXTIME(n.created));
If you enjoyed this, consider forwarding it to a friend.
Do you have suggestions or ideas for future blog posts and newsletters? Let me know!
Don't miss what's next. Subscribe to mglaman.dev: