"value":"\n <p><a href=\"\/daily\/2023\/12\/04\/writing-contrib-modules-as-glue-between-your-custom-code\">In yesterday's email<\/a>, I mentioned the Private Message Queue module - a contributed Drupal module we wrote for a project as part of a contribution-first workflow.<\/p>\n\n<p>In our experience, doing that and releasing Private Message Queue as its own open-source project encouraged more open-source contributions.<\/p>\n\n<p>We started to ask questions like, \"Which user should the messages be sent from?\".<\/p>\n\n<h2 id=\"system-users\">System Users<\/h2>\n\n<p>This led us to create the <a href=\"https:\/\/www.drupal.org\/project\/system_user\">System User module<\/a>.<\/p>\n\n<p>Inspired by system users in Linux, it provides a way to identify and retrieve system users that aren't tied to individuals' accounts and without relying on \"magic\" user IDs.<\/p>\n\n<p>But what if a website doesn't have a system user?<\/p>\n\n<h2 id=\"null-users\">Null Users<\/h2>\n\n<p>This led to the <a href=\"https:\/\/www.drupal.org\/project\/null_user\">Null User module<\/a>.<\/p>\n\n<p>Following the Null object pattern, if there isn't a system user, instead of returning <code>NULL<\/code> or <code>FALSE<\/code>, you return a null user that you use in the same way, though they'll have default empty values and won't perform any actions.<\/p>\n\n<p>This pattern simplifies your code as you don't need to check for <code>NULL<\/code> or <code>FALSE<\/code> values.<\/p>\n\n<h2 id=\"here%27s-the-thing\">Here's the thing<\/h2>\n\n<p>If I remember correctly, as part of the project, we created and released around ten new contributed modules to Drupal.org.<\/p>\n\n<p>We were able to move straight onto the next phase of the project.<\/p>\n\n<p>We didn't need to clean them up or refactor them beforehand. We didn't need to dedicate any additional time as they were already released.<\/p>\n\n ",
"processed":"\n <p><a href=\"http:\/\/default\/daily\/2023\/12\/04\/writing-contrib-modules-as-glue-between-your-custom-code\">In yesterday's email<\/a>, I mentioned the Private Message Queue module - a contributed Drupal module we wrote for a project as part of a contribution-first workflow.<\/p>\n\n<p>In our experience, doing that and releasing Private Message Queue as its own open-source project encouraged more open-source contributions.<\/p>\n\n<p>We started to ask questions like, \"Which user should the messages be sent from?\".<\/p>\n\n<h2 id=\"system-users\">System Users<\/h2>\n\n<p>This led us to create the <a href=\"https:\/\/www.drupal.org\/project\/system_user\">System User module<\/a>.<\/p>\n\n<p>Inspired by system users in Linux, it provides a way to identify and retrieve system users that aren't tied to individuals' accounts and without relying on \"magic\" user IDs.<\/p>\n\n<p>But what if a website doesn't have a system user?<\/p>\n\n<h2 id=\"null-users\">Null Users<\/h2>\n\n<p>This led to the <a href=\"https:\/\/www.drupal.org\/project\/null_user\">Null User module<\/a>.<\/p>\n\n<p>Following the Null object pattern, if there isn't a system user, instead of returning <code>NULL<\/code> or <code>FALSE<\/code>, you return a null user that you use in the same way, though they'll have default empty values and won't perform any actions.<\/p>\n\n<p>This pattern simplifies your code as you don't need to check for <code>NULL<\/code> or <code>FALSE<\/code> values.<\/p>\n\n<h2 id=\"here%27s-the-thing\">Here's the thing<\/h2>\n\n<p>If I remember correctly, as part of the project, we created and released around ten new contributed modules to Drupal.org.<\/p>\n\n<p>We were able to move straight onto the next phase of the project.<\/p>\n\n<p>We didn't need to clean them up or refactor them beforehand. We didn't need to dedicate any additional time as they were already released.<\/p>\n\n ",