#24DaysInDecember 2022

Thank you to all the 2022 contributors!

This year’s event was an awesome collection of writings. Catch up on any submissions you might have missed below!

  • Make it a marathon, not a sprint

    The year was 2002; I was working as technical support for an internet provider. It wasn’t always busy, and although playing MUD and hanging out on IRC were some of the ways I and my colleagues used to pass time, eventually, I started blogging, and that is when things started to change. Looking at what…

    Read full post


  • Making PHP the language you want it to be

    Have you ever had an idea about how to improve PHP? Or maybe you yearn for a feature that another language has, that hasn’t made it into PHP yet? The great news is that PHP is improving with every release. One day the PHP feature you wish for might make it into the language. If…

    Read full post


  • Three developer super powers you may not realise that you have

    If you’re reading this, then I assume you do software development of some sort. You write code. You “make sand think” as I heard someone describe it. If you write code then I believe you have some super powers. You may not know it. Or you may not believe it. But I know it, and…

    Read full post


  • Keep your documentation up-to-date

    Where tests have a significant and unpopular position in the workflow of most developers, some of us skip that part because we have no time to do it, and documentation is even less popular. “Documentation is a waste of time”; “Most documentation is already outdated before it is written”;“Once written, we will never look at…

    Read full post


  • Zombies 3 and PHP

    I’m weirdly enamoured with the Disney Plus teen musical movie, “Zombies 3.” Mostly though, it’s not the movie itself. It’s this interview with the Asian, non-binary, queer actor Terry Hu who portrays a non-binary alien main character in the movie: In the interview, Terry says: “Holistic representation or true representation of a group or community…

    Read full post


  • Maintenance Art

    While catching up with PHP 8.2 recently, I had a chuckle at how deprecated features get top billing — as they should! Knowing well ahead of time what things that work today will break in future versions of PHP keeps developers on their toes. With the mortality of your code in view, thanks to the…

    Read full post


  • Raising the Bar

    I started my professional career with PHP in the year 2000. Professional in the sense that I got paid to program, not so much because of my knowledge of PHP. I wasn’t a newbie, though, or at least I didn’t feel like one. At this point, I had accumulated around ten years of experience programming…

    Read full post


  • Phel Lang, a native LISP for PHP

    For more than two years, Jens and Chema have worked hard to create what Phel is today. Phel is a Functional Programming language that compiles to PHP. It is a dialect of Lisp inspired by Clojure and Janet. What does Phel look like?  Here is an example of some Phel code from the website. Why Phel? It is the result of many failed attempts to…

    Read full post


  • A Personal Journey: Launching a SaaS as a WordPress agency founder 

    Note: This was originally tweeted as a far-too-long-should-have-been-a-blog-post thread on Twitter. It was the first thread of several (second, third, fourth) threads leading up to the launch of Otherboard.com. Very minor edits have been made. There’s almost certainly a fancy German word for the feeling when you are days away from launching your first SaaS…

    Read full post


  • Versioning a PHP API with Composer

    This year I’ve had the opportunity to learn and grow in many different ways. Recently I’ve had reason to dive into the benefits and trade-offs that come with a formal versioning convention. As part of this I’ve been spending time returning to the fundamentals of versioning. One thing I always find useful is revisiting fundamentals…

    Read full post


  • Work smarter by taking cues from the music-learning process

    In 2019, after several years as a cellist and orchestra manager, I started learning to code. While I didn’t have a technical background, I found I had developed a number of coding-adjacent skills through studying music. One practice I’ve adopted from music learning has helped me deliver code with fewer mistakes, better choices, and more…

    Read full post


  • Progress is Never Permanent

    “Progress is never permanent, will always be threatened, must be redoubled, restated and reimagined if it is to survive.” – Zadie Smith, Feel Free: Essays As anyone who has worked on a software project of any size or complexity can tell you, things just have a tendency to… decay. The more people work on it,…

    Read full post


  • Creating music with PHP

    As Wikipedia tells us, PHP is a general-purpose scripting language geared toward web development. And that’s true. For example, WordPress – CMS that powers 40% of the web, runs on PHP and JavaScript. But there is more to it. PHP is a handy programming language suitable for prototyping ideas quickly. As I’ve always been interested…

    Read full post


  • Share your stories!

    This year I was lucky enough to be a speaker at the SymfonyCon 2022 conference in Disneyland Paris. I was honored to be invited to this very special edition and made a brand new talk for this conference: 7 Lessons You Can Learn From Disney Movies. Yes, it was completely themed to the location of…

    Read full post


  • Why I built Suphle, an opinionated PHP framework, in 2022

    Among all the new PHP projects you’d expect to see in 2022/23, I doubt another PHP framework is one of them. In fact, you probably already have your favorite one serving all your needs. So I’m not here to tell you why you should use my framework. Rather, this is the story of what inspired me…

    Read full post


  • Security doesn’t have to be boring

    When it comes to building your own apps, setting development priorities, spending budgets, and generally getting stuff done, security is usually considered to be boring and unnecessary. This is especially true when you’re working with a modern PHP framework like Laravel or CodeIgniter. Security is included out of the box so you don’t need to…

    Read full post


  • An Ode to PHP

    I have been working with PHP for many years, mostly as a side language. Once upon a time in, on an island far, far away, I did try to get a SaaS business going based on a PHP stack but alas it suffered from a lack of customers and we eventually bowed out. It did…

    Read full post


  • The PHP 8.2 Release Managers

    PHP 8.2 will be released on December 8, and many articles have already been written about the new features in this version, So let’s talk about the people involved in releasing PHP — the release managers. Who are the release managers? I joined the release manager team in May of this year, a lot of…

    Read full post


  • Evolving PHP

    With 2022, I see PHP’s cost as becoming prohibitive. Here’s why. PHP continued to evolve in 2022. That’s a good thing. PHP also scored an “own goal” near the end of 2022. This latter concern is not at all obvious. Here’s my view of the situation. Double-digit bugs Do you remember the Year 2000 problem?…

    Read full post


  • Discomfort is where we grow!

    For the vast majority of my professional career, I’ve been working with mostly just PHP, and felt pretty confident with it. However, the longer I worked with just PHP, the more afraid I became of branching out into new things. I watched as the backend ecosystem started changing – it seemed like every one was picking up…

    Read full post


  • Knit 1, Perl 1

    Knitting is computing. Bear with me, I’ll explain. Computing is using certain hardware, following a set of instructions to manipulate input and produce a desired result. Knitting is using certain hardware, following a set of instructions to manipulate input and produce a desired result. See, it’s the same! Knitting ‘hardware’ is needles, our ‘input’ is…

    Read full post


  • A walk in the forest of worktrees

    Lately, I’ve been working on migrating Doctrine ORM to PHP 8 syntax. To that end, I’ve been using Rector, an automated refactoring tool. It comes with a set of rules called LevelSetList::UP_TO_PHP_81 which makes sure you use the most modern syntax to do something as long as it is supported on PHP 8.1. UP_TO_PHP_81 is…

    Read full post


  • Being a developer is not the same as knowing how to code

    In 2016 I decided that I didn’t want to be an IT-coordinator anymore. At the time I couldn’t deal with the politics involved in that function. You know, co-workers protesting the changes that you have to make happen and stuff like that. After some talks with job – and career – advisors I decided to…

    Read full post


  • All I want for Christmas

    Let’s set aside all practical concerns for a moment — it’s Christmas, after all. If you could choose — freely choose: what would you change about PHP? Would you want generics or the pipe operator? Maybe you’d like to see consistent function signatures or get rid of the dollar sign. Type aliases, scalar objects, autoloading…

    Read full post


The Importance of Tech-Related Advent Blogs

To this day PHPAdvent (later renamed to WebAdvent) has a special place in my heart.

I can’t remember exactly when I discovered PHPAdvent, but it was pretty early in my PHP career, so probably around 2007/2008. At the time I was a fairly junior PHP developer, and the ability to read about the work and live experiences of more senior developers was pretty life-changing. I felt like I was sitting around a campfire, listening to the stories of the tribe’s elders. Every day I read each new post with great enthusiasm, keen to hear what new things I could learn or discover.

24DaysInDecember is the spiritual successor to PHPAdvent, and I look forward to planning and sharing the stories of the PHPamily every year. This will be the 7th edition of 24 Days in December, and hopefully, by kicking things off earlier than I did last year, we’ll have another bumper year of stories to share.

It’s been such an interesting year in the PHP space, so if you’ve had a thought or idea in your head that you’d like to share with the PHP community, this is your chance.

What should I write about?

In all honesty, your contribution is whatever you want it to be about. Did you learn something recently you’d like to share in a guide or a tutorial? Do you have an opinion about the current state of PHP core development? Have you been working on something cool you’d like to share with the community? Do you want to share something less technical you learned this past year? The content is entirely up to you.

How much time do I have?

There are no hard and fast deadlines, except that we try to post at least one new article every day for the 24 days leading up to the 25th of December. If we have more contributions we keep going, but that’s our goal. Given that the 1st is just over 3 weeks away if you choose to contribute today, you’ll have at least 3 weeks.

How long should it be?

There are no guidelines here. It could be a few short paragraphs or an entire deposition. We don’t mind.

What format should I send it to you in?

Markdown is preferable, but plain text is also acceptable. You can send it in an email, as a text attachment, via Google Doc, tied to the leg of a carrier pigeon, we honestly don’t mind, as long as we can get it.

We hope to hear from you soon.

If you would like to contribute to this year’s edition, please email us at info AT 24daysindecember DOT net, or contact us via Mastodon at @24DaysInDec or Twitter (while it’s still viable) at @24DaysInDec.

Thankful

Given that I don’t live in a US-centric country, but I’ve watched enough US television over the years, I know about the concept of thanksgiving. In South Africa, Christmas day is usually a time to share gifts, spend time with family, and be thankful for all the good things in the year that has passed.

This year, I am thankful that my family has made it through another year of living with the pandemic.

I am thankful that the career I stumbled into 16 years ago continues to grow and thrive and present new opportunities.

I am thankful that I have a job that allows me the ability to work from wherever, whenever, and schedule my work so that it suits my life, and not the other way around.

I am thankful that 26 years ago a Danish gentleman created a scripting language for the web, and then spent the next few years putting work into the server stack around that scripting language, a key piece in making it the dominant platform of the web still to this day.

And I am thankful for all of you, my extended PHPamily, some of who I’ve met in person, some who I only interact with on social media or in chat channels. Every day I learn from you and I’m challenged by you to become a better programmer, writer, and person.

If the last two years have taught me anything, it’s that we need those connections, especially when working in remote environments, with little social interaction.

Without the love and support of my IRL family and the interactions with my PHPamily, I probably wouldn’t be here today to be thankful.

“Stay a while and listen”

Yesterday Jetbrains announced the formation of the PHP Foundation, “a non-profit organization whose mission is to ensure the long life and prosperity of the PHP language.” Last year, PHP celebrated its 25th anniversary, with the language currently powering 78.2% of the open web.

And yet every year at this time I am reminded of the fact that PHP is not just a language. PHP is a group of people, a community of developers who build things for the web. The PHPamily spans the globe, and while we might not always agree or get along, we have one thing in common, we’re passionate about what we do.

This site is the place to share that passion. Each year we reach out and ask for contributions. Each year it’s often a scramble to get those contributions in, but we do it because we want to share your thoughts with the rest of the PHPamily, and have open discussions about the things that matter to all of us most.

This will be the 6th edition of 24 Days in December, and as always we’d like to invite you to share your stories with us. If you’ve had a thought or idea in your head you’d like to share with the PHP community, this is your chance.

I thought this might be a good time to cover some of the more common questions:

What should I write about?

In all honesty, your contribution is whatever you want it to be about. Did you learn something recently you’d like to share in a guide or a tutorial? Do you have an opinion about the current state of PHP core development? Have you been working on something cool you’d like to share with the community? Do you want to share something less technical you learned this past year? The content is entirely up to you.

How much time do I have?

There are no hard and fast deadlines, except that we try to post at least one new article every day for the 24 days leading up to the 25th of December. If we have more contributions we keep going, but that’s our goal. Given that the 1st is a week away if you choose to contribute today, you’ll have at least a week.

How long should it be?

There are no guidelines here. It could be a few short paragraphs or an entire deposition. We don’t mind.

What format should I send it to you in?

Markdown is preferable, but plain text is also acceptable. You can send it in an email, as a text attachment, via Google Doc, tied to the leg of a carrier pigeon, we honestly don’t mind, as long as we can get it.

We hope to hear from you soon. If you would like to contribute to this year’s edition, please email us at info AT 24daysindecember DOT net, or contact us via Twitter at @24DaysInDec.

Community wrangling is hard!

Something that many folks who know me, know about me, is that I tend to have a habit of rushing in where angels fear to tread. Call it blind optimism, call it stupidity, but whenever there is a need, I rarely think about the consequences and blast headfirst into getting involved, in order to help out.

The words “how hard could it be?” are something I regularly say to myself.

In 2016, after I discovered and officially became part of the WordPress community, I was asked if I’d be interested in helping to organize WordPress Cape Town meetups. I didn’t know what a meetup was, or how it worked but, how hard could it be?

Later that year, on a 1 and a half hour flight from Cape Town to Johannesburg, for the first WordCamp in that city, I was asked if I’d be interested in replacing the current WordCamp Cape Town lead organizer, who had to step down. I’d applied to lead in 2018, and therefore was planning on being part of the 2017 team, so I could learn the ropes. It meant I’d go from zero experience to leading the organizing team, and I’d never organized a large community conference in my life but, how hard could it be?

Last year, when the local PHP Cape Town meetup organizer had to step down due to moving to another country, he reached out to me and another member of our community to take over the meetup. I was already an experienced WordPress Cape Town meetup organizer, and I had someone who was helping me this time so, how hard could it be?

At the end of 2019, after offering to write a post for this very blog, I was asked if I’d be interested in helping to organize it. I had no idea what went into organizing/planning a yearly series of blog posts, every day, for the first 24 days of the month but, how hard could it be?

In case you’re wondering, the answer to all those questions was, pretty damn hard!

Because not everyone is like me. Not everyone rushes in where angels fear to tread and has time to speak at a meetup/help organize a conference/write a post for a blog in a short space of time.

And that’s ok. Those of us crazy/stupid/willing to do this will keep doing it. And those who aren’t, are very probably way better off for not doing it, and I respect them for it. And in every community, there are those who want to volunteer and those who don’t, and that’s ok too. Neither group should vilify the other for doing what’s right for them.

If 2020 has taught me anything, it’s that my involvement in the various communities I belong to is vital to keeping me sane, and I do it because I want to, not because I have to.

What I need to start remembering is that it’s always harder than it looks.

Share your story with the PHPamily

Thanksgiving in the US marks the beginning of the festive season that a lot of the members of the PHP-Community are celebrating in December. It’s the time of darkness, but also of the warm lights. And – most important – it’s the time to gather the family and to celebrate.

These were the words Andreas Heigl used in his opening post on this site, published on the 25th of November 2015, almost 5 years ago.

His goal at the time was simple; reach out to his extended, distributed, PHP-Family (or PHPamily for short) and bring together as many diverse and interesting thoughts and ideas from our community, in one central place, for us to share with each other, learn from each other, and support each other.

A lot has changed over the past 5 years, life, as we know it now, is very different from then. Many of us are dealing with new and interesting challenges, both in our personal and professional lives. And that’s the beauty of sharing stories from our community, as Andreas so eloquently put it back in 2015.

And as in every family, there are differences and there is potential for conflicts. And there are times where we don’t talk to each other. But in the end, we somehow manage to at least get along with one another. And the knowledge that we will get along with one another in the end and the knowledge that we all want to achieve awesome things bind us together. And as in every family, we can achieve even greater things together.

This year marks the 5th edition of the 24 Days in December site, and we’d like to take this opportunity to invite you to share your stories with us. We really hope we can bring fresh voices to the forefront, so if you’ve never written for a PHP related publication, this is the perfect opportunity to do so.

But what to write? Well, many of our previous contributors have written about the community, or open-source in general, or the way the modern web is changing how we live. Some authors picked a technical PHP topic that they would like to share because 24 Days in December is primarily aimed at PHP developers. Others shared something specific to the year that had passed, and what made it interesting for them. You can find a lot of inspiration in the past posts from previous years. The point is, this site is for you, our extended PHPamily, so share whatever you feel is important for us to think about as this year comes to a close.

Whether you want to write about something technical that is related to plain PHP, a fully-fledged and integrated Framework like Symfony, Laminas or Laravel, something about your favorite CMS like WordPress, Drupal, Typo3 or Concrete5, or something that relates to higher-level concepts, like open source, the PHP community in general, or your specific experiences as a person working in STEM, we are open to it, and encourage you to contribute.

If you would like to contribute to this year’s edition, email us at info AT 24daysindecember DOT net, or contact us via Twitter at @24DaysInDec.

Why Can’t We All Just Get Along?

In the 1996 movie Mars Attacks, the president of the United States, played by Jack Nicholson, makes an impassioned plea to the Martian invaders.

The outcome is often how I feel when discussing what I do for a living with some members of my local PHP community.

I joined the WordPress community (out of choice) after attending my first WordCamp in 2015. In the 15 years since I started my programming career, the closest I’d gotten to an open source community was following the blogs of folks who had written articles I found useful. To me, the people involved in open source were mostly programmers like myself, who spent their spare time only in submitting features and patches to the specific project they were involved in. Thus attending my first open source conference was a huge eye opener.

Here were a bunch of folks who not only contribute to their chosen open source project, but also met regularly to share knowledge and discuss all things around this project. Not only that, but the usual ‘brogrammer’ attitude I’d encountered for much of my journey, did not seem to exist here. Everyone was friendly, helpful, and above all, positive. For someone who’d reached a point of feeling like an outsider in his own community, WordCamp was an experience I will never forget. It was at that event that I chose to learn WordPress as a foundation for my future development journey.

As time went by I started looking for other open source communities, specifically related to PHP. Having read the many online (usually negative) opinions of PHP and having had many, many conversations with opinionated programmers in other languages, who ALWAYS expressed how poor my preferred language of choice was, I was looking forward to meeting and having conversations with other developers who used the same languages, frameworks and CMS’s I did, and would share my love of our often misunderstood language.

What I found surprised me. When folks asked me what I did/worked on for a living, and I mentioned WordPress, the general response was the same as when I used to tell Python developers I code in PHP. The general disdain and almost hatred for a CMS that powers a large majority of the online space amazed and astounded me. Just by being associated with WordPress, I felt as if other PHP developers looked down on me and whatever skills I had.

The irony is that WordPress has enabled me, in the last 4 years, to scale up in skill and knowledge at an astronomical amount. This is because, as those WordPress developers who’ve been active in the space since almost day one started delving into more advanced concepts like modern object orientated programming, automated testing and continuous integration, they share this knowledge with others. And because there are so many more of them, the amount of knowledge out there is abundant. I’ve forgotten how many times I’ve reached out to members of the WordPress community who I look up to, and how they’ve always taken the time to help me understand a difficult concept I was struggling with.

At the end of the day, by choosing PHP we are already taking flak from the so-called ‘real’ programmers of the world. Sure, PHP has come a long way, but it still has the stigma of being something that only ‘noobs’ and ‘kids’ use, even though it’s still one of the top 10 most popular languages on the web. Do we really need to shame each other for the choice we’ve made to use this ‘legacy’ framework, or that popular CMS, or procedural instead of object orientated, or whatever, because we ‘have seen the light’ and ‘know better’?

Why can’t we all just get along?

So the next time someone is using something you deem ‘less worthy’, maybe instead of deriding them, reach out to them. Find out why they are using what they are using, and if they are experiencing any hurdles (they probably are) and share your own knowledge and experiences with them. If we can put aside our differences, focus on our similarities and work towards sharing our knowledge and experience with each other, regardless of what we work with every day, all of us will be in a better place.