Symfony Station Communiqué — 12 January 2024. A look at Symfony, Drupal, PHP, Cybersec, and Fediverse News!
Tags: symfony, drupal, php, fediverse
Published: 2024-01-20 22:16:50


<p>This communiqué&nbsp;<a data-tooltip-position="top" aria-label="https://symfonystation.mobileatom.net/Symfony-Station-Communique-12-January-2024" rel="noopener" class="external-link" href="https://symfonystation.mobileatom.net/Symfony-Station-Communique-12-January-2024" target="_blank">originally appeared on Symfony Station</a>.</p>
<p>Welcome to this week's Symfony Station communiqué. It's your review of the essential news in the Symfony and PHP development communities focusing on protecting democracy. Because open-source equals open societies, peeps. We also cover the cybersecurity world and the Fediverse (more open-source).</p>
<p>There is good content in the of our categories, so please take your time and enjoy the items most relevant and valuable to you. This is why we publish on Fridays. So you can savor it over your weekend. 😉</p>
<p>Or jump straight to your favorite section.</p>
<ul>
<li><a data-tooltip-position="top" aria-label="https://symfonystation.mobileatom.net/Symfony-Station-Communique-12-January-2024#symfony" rel="noopener" class="external-link" href="https://symfonystation.mobileatom.net/Symfony-Station-Communique-12-January-2024#symfony" target="_blank">Symfony</a></li>
<li><a data-tooltip-position="top" aria-label="https://symfonystation.mobileatom.net/Symfony-Station-Communique-12-January-2024#php" rel="noopener" class="external-link" href="https://symfonystation.mobileatom.net/Symfony-Station-Communique-12-January-2024#php" target="_blank">PHP</a></li>
<li><a data-tooltip-position="top" aria-label="https://symfonystation.mobileatom.net/Symfony-Station-Communique-12-January-2024#more" rel="noopener" class="external-link" href="https://symfonystation.mobileatom.net/Symfony-Station-Communique-12-January-2024#more" target="_blank">More Programming</a></li>
<li><a data-tooltip-position="top" aria-label="https://symfonystation.mobileatom.net/Symfony-Station-Communique-12-January-2024#other" rel="noopener" class="external-link" href="https://symfonystation.mobileatom.net/Symfony-Station-Communique-12-January-2024#other" target="_blank">Fighting for Democracy</a></li>
<li><a data-tooltip-position="top" aria-label="https://symfonystation.mobileatom.net/Symfony-Station-Communique-12-January-2024#cybersecurity" rel="noopener" class="external-link" href="https://symfonystation.mobileatom.net/Symfony-Station-Communique-12-January-2024#cybersecurity" target="_blank">Cybersecurity</a></li>
<li><a data-tooltip-position="top" aria-label="https://symfonystation.mobileatom.net/Symfony-Station-Communique-12-January-2024#fediverse" rel="noopener" class="external-link" href="https://symfonystation.mobileatom.net/Symfony-Station-Communique-12-January-2024#fediverse" target="_blank">Fediverse</a></li>
</ul>
<p>Once again, thanks go out to Javier Eguiluz and Symfony for sharing&nbsp;<a data-tooltip-position="top" aria-label="https://symfonystation.mobileatom.net/Symfony-Station-Communique-05-January-2024" rel="noopener" class="external-link" href="https://symfonystation.mobileatom.net/Symfony-Station-Communique-05-January-2024" target="_blank">our communiqué</a>&nbsp;in their&nbsp;<a data-tooltip-position="top" aria-label="https://symfony.com/blog/a-week-of-symfony-888-1-7-january-2024" rel="noopener" class="external-link" href="https://symfony.com/blog/a-week-of-symfony-888-1-7-january-2024" target="_blank">Week of Symfony</a>. </p>
<p><strong>My opinions will be in bold. And will involve cursing. I am especially pissed off this week.</strong></p>
<hr>
<p><img alt="Symfony logo" src="https://www.symfonystation.com/sites/default/files/inline-images/Symfony-2.png" referrerpolicy="no-referrer"></p>
<h2 data-heading="Symfony">Symfony</h2>
<p>As always, we will start with the official news from Symfony.</p>
<p>Highlight -&gt; "This week, Symfony development activity focused on the translation files used by the Validator and Security components, completing many missing translations and normalizing the file contents. Meanwhile, Symfony 7.1 added support for <a data-tooltip-position="top" aria-label="https://github.com/symfony/symfony/commit/0766167db4a8a5e946e55bd92e2b24181ab002f4" rel="noopener" class="external-link" href="https://github.com/symfony/symfony/commit/0766167db4a8a5e946e55bd92e2b24181ab002f4" target="_blank">custom HTTP status codes</a> in the MapQueryParameter attribute, introduced a <a data-tooltip-position="top" aria-label="https://github.com/symfony/symfony/commit/82e0eff5a7751d0ec8409fbed4e8d9aeee5b48f4" rel="noopener" class="external-link" href="https://github.com/symfony/symfony/commit/82e0eff5a7751d0ec8409fbed4e8d9aeee5b48f4" target="_blank">new ServiceCollectionInterface</a> and added <a data-tooltip-position="top" aria-label="https://github.com/symfony/symfony/commit/4266345e5c53c128b0d0b0dcfbce1143c52c52e5" rel="noopener" class="external-link" href="https://github.com/symfony/symfony/commit/4266345e5c53c128b0d0b0dcfbce1143c52c52e5" target="_blank">Stringable interface support in all constraints</a>. Lastly, we <a data-tooltip-position="top" aria-label="https://symfony.com/blog/simpler-versioning-for-symfony-docs" rel="noopener" class="external-link" href="https://symfony.com/blog/simpler-versioning-for-symfony-docs" target="_blank">simplified the versioning of Symfony Docs</a>."</p>
<p><a data-tooltip-position="top" aria-label="https://symfony.com/blog/a-week-of-symfony-888-1-7-january-2024" rel="noopener" class="external-link" href="https://symfony.com/blog/a-week-of-symfony-888-1-7-january-2024" target="_blank">A Week of Symfony #888 (1-7 January 2024)</a></p>
<p>They also have:</p>
<p><a data-tooltip-position="top" aria-label="https://symfony.com/blog/symfonyonline-january-2024-join-us-next-week-to-share-our-passion" rel="noopener" class="external-link" href="https://symfony.com/blog/symfonyonline-january-2024-join-us-next-week-to-share-our-passion" target="_blank">SymfonyOnline January 2024 - Join us next week to share our passion!</a></p>
<p>SymfonyCasts finishs their LAST Stack tutorial:</p>
<p><a data-tooltip-position="top" aria-label="https://5hy9x.r.ag.d.sendibm3.com/mk/mr/sh/1t6AVsd2XFnIGBrRERGJumwddAsNT1/5jkUMYhZL4d" rel="noopener" class="external-link" href="https://5hy9x.r.ag.d.sendibm3.com/mk/mr/sh/1t6AVsd2XFnIGBrRERGJumwddAsNT1/5jkUMYhZL4d" target="_blank">This week on SymfonyCasts</a></p>
<p><strong>IMHO <a data-tooltip-position="top" aria-label="https://symfonycasts.com/screencast/last-stack" rel="noopener" class="external-link" href="https://symfonycasts.com/screencast/last-stack" target="_blank">30 Days with LAST Stack</a> is one of their best tutorials. And it's still free till the 15th, so get busy.</strong></p>
<hr>
<h2 data-heading="Featured Item">Featured Item</h2>
<p>Jake Lazaroff writes:</p>
<p>While I agree that most websites defy binary categorization, I don’t buy the overall “website vs. web app” framing. They’re both nebulous terms that attempt to describe what a site <em>is</em> rather than what it <em>does</em>. Moreover, I don’t think a one-dimensional spectrum can sufficiently capture the tradeoffs involved in web development.</p>
<p>I like to think about websites along two axes:</p>
<ul>
<li><strong>Static vs. dynamic</strong> — how much of the page updates in response to user interaction?</li>
<li><strong>Online vs. offline</strong> — how much functionality requires a persistent Internet connection?</li>
</ul>
<p>Obviously, this is still a pretty crude survey, but I think it broadly captures the most important architectural constraints. Let’s call the intersections <strong>informational</strong>, <strong>transactional</strong>, <strong>real-time</strong>, and <strong>local</strong>.</p>
<h2 data-heading="[The Website vs. Web App Dichotomy Doesn't Exist](https://jakelazaroff.com/words/the-website-vs-web-app-dichotomy-doesnt-exist/)"><a data-tooltip-position="top" aria-label="https://jakelazaroff.com/words/the-website-vs-web-app-dichotomy-doesnt-exist/" rel="noopener" class="external-link" href="https://jakelazaroff.com/words/the-website-vs-web-app-dichotomy-doesnt-exist/" target="_blank">The Website vs. Web App Dichotomy Doesn't Exist</a></h2>
<p><strong>This is a more structured article covering many of the same topics I did in: <a data-tooltip-position="top" aria-label="https://symfonystation.mobileatom.net/Frontend-Madness-JS-PHP-Backend" rel="noopener" class="external-link" href="https://symfonystation.mobileatom.net/Frontend-Madness-JS-PHP-Backend" target="_blank">Frontend Madness: SPAs, MPAs, PWAs, Decoupled, Hybrid, Monolithic, Libraries, Frameworks! WTF for your PHP backend?</a>. Jake's take is very well thought out.</strong></p>
<hr>
<h3 data-heading="This Week">This Week</h3>
<p>Alberto Robles explores an:</p>
<p><a data-tooltip-position="top" aria-label="https://bertorobles.medium.com/ai-powered-travel-guide-generator-create-travel-guides-in-any-language-with-1-click-symfony-php-e50ac2c340e2" rel="noopener" class="external-link" href="https://bertorobles.medium.com/ai-powered-travel-guide-generator-create-travel-guides-in-any-language-with-1-click-symfony-php-e50ac2c340e2" target="_blank">AI-Powered Travel Guide Generator -Create travel guides in any language with 1 click — Symfony PHP Javascript AI</a></p>
<p>Houssem Guemer examines:</p>
<p><a data-tooltip-position="top" aria-label="https://medium.com/actived/implementing-sepa-xml-generation-in-symfony-a-step-by-step-guide-2a21f0354090" rel="noopener" class="external-link" href="https://medium.com/actived/implementing-sepa-xml-generation-in-symfony-a-step-by-step-guide-2a21f0354090" target="_blank">Implementing SEPA XML Generation in Symfony: A Step-by-Step Guide</a></p>
<p>Lubna Altungi looks at:</p>
<p><a data-tooltip-position="top" aria-label="https://medium.com/@lubna.altungi/uploading-images-in-symfony-a-developers-journey-e959a753c9ae" rel="noopener" class="external-link" href="https://medium.com/@lubna.altungi/uploading-images-in-symfony-a-developers-journey-e959a753c9ae" target="_blank">Uploading Images in Symfony: A Developer's Journey</a></p>
<p>PreviousNext explores:</p>
<p><a data-tooltip-position="top" aria-label="https://www.previousnext.com.au/blog/symfony-messenger/post-1-introducing-symfony-messenger" rel="noopener" class="external-link" href="https://www.previousnext.com.au/blog/symfony-messenger/post-1-introducing-symfony-messenger" target="_blank">Symfony Messenger integrations with Drupal</a></p>
<p><a data-tooltip-position="top" aria-label="https://www.previousnext.com.au/blog/symfony-messenger/post-2-message-and-message-handlers" rel="noopener" class="external-link" href="https://www.previousnext.com.au/blog/symfony-messenger/post-2-message-and-message-handlers" target="_blank">Symfony Messenger’s message and message handlers and a comparison with @QueueWorker</a></p>
<p><a data-tooltip-position="top" aria-label="https://www.previousnext.com.au/blog/symfony-messenger/post-3-real-time" rel="noopener" class="external-link" href="https://www.previousnext.com.au/blog/symfony-messenger/post-3-real-time" target="_blank">Real-time: Symfony Messenger’ Consume command and prioritised messages</a></p>
<p><a data-tooltip-position="top" aria-label="https://www.previousnext.com.au/blog/symfony-messenger/post-4-scheduling-and-cron" rel="noopener" class="external-link" href="https://www.previousnext.com.au/blog/symfony-messenger/post-4-scheduling-and-cron" target="_blank">Automatic message scheduling and replacing hook_cron</a></p>
<p><a data-tooltip-position="top" aria-label="https://www.previousnext.com.au/blog/symfony-messenger/post-5-intercepting-queue-worker-plugins" rel="noopener" class="external-link" href="https://www.previousnext.com.au/blog/symfony-messenger/post-5-intercepting-queue-worker-plugins" target="_blank">Adding real-time processing to QueueWorker plugins</a></p>
<p><a data-tooltip-position="top" aria-label="https://www.previousnext.com.au/blog/symfony-messenger/post-6-emails" rel="noopener" class="external-link" href="https://www.previousnext.com.au/blog/symfony-messenger/post-6-emails" target="_blank">Making Symfony Mailer asynchronous: integration with Symfony Messenger</a></p>
<p><a data-tooltip-position="top" aria-label="https://www.previousnext.com.au/blog/symfony-messenger/post-7-ui-notifications" rel="noopener" class="external-link" href="https://www.previousnext.com.au/blog/symfony-messenger/post-7-ui-notifications" target="_blank">Displaying notifications when Symfony Messenger messages are processed</a></p>
<p><a data-tooltip-position="top" aria-label="https://www.previousnext.com.au/blog/symfony-messenger/post-8-symfony-messenger-in-drupal-core" rel="noopener" class="external-link" href="https://www.previousnext.com.au/blog/symfony-messenger/post-8-symfony-messenger-in-drupal-core" target="_blank">Future of Symfony Messenger in Drupal</a></p>
<p><strong>Great stuff.</strong></p>
<p>Dalibar Karlovi demonstrates:</p>
<p><a data-tooltip-position="top" aria-label="https://dkarlovi.github.io/symfony-feature-flags/" rel="noopener" class="external-link" href="https://dkarlovi.github.io/symfony-feature-flags/" target="_blank">Adding feature flags to your Symfony app</a></p>
<h3 data-heading="eCommerce">eCommerce</h3>
<p>Sylius shares its:</p>
<p><a data-tooltip-position="top" aria-label="https://sylius.com/blog/sylius-2023-summary-of-the-year-and-whats-next/" rel="noopener" class="external-link" href="https://sylius.com/blog/sylius-2023-summary-of-the-year-and-whats-next/" target="_blank">2023 Summary and What’s About to Come</a></p>
<p>Winkel Wagen examines:</p>
<p><a data-tooltip-position="top" aria-label="https://winkelwagen.de/2024/01/10/shopware-6-easy-errors-validation-on-checkout-and-flash-message/" rel="noopener" class="external-link" href="https://winkelwagen.de/2024/01/10/shopware-6-easy-errors-validation-on-checkout-and-flash-message/" target="_blank">Shopware 6: Easy errors/validation on checkout and flash message</a></p>
<h3 data-heading="Platforms">Platforms</h3>
<p>Emre Çalışkan says:</p>
<p><a data-tooltip-position="top" aria-label="https://medium.com/beyn-technology/hola-frankenphp-laravel-octane-servers-comparison-pushing-the-boundaries-of-performance-d3e7ad8e652c" rel="noopener" class="external-link" href="https://medium.com/beyn-technology/hola-frankenphp-laravel-octane-servers-comparison-pushing-the-boundaries-of-performance-d3e7ad8e652c" target="_blank">Hola FrankenPHP! Laravel Octane Servers Comparison: Pushing the Boundaries of Performance</a></p>
<h3 data-heading="CMSs">CMSs</h3>
<p>TYPO3 has:</p>
<p><a data-tooltip-position="top" aria-label="https://typo3.org/article/schedule-published-designing-futures-of-foss-content-management-at-fosdem" rel="noopener" class="external-link" href="https://typo3.org/article/schedule-published-designing-futures-of-foss-content-management-at-fosdem" target="_blank">Schedule Published: Designing Futures of FOSS Content Management at FOSDEM</a></p>
<p><a data-tooltip-position="top" aria-label="https://typo3.com/blog/unlocking-success-together-introducing-the-new-typo3-partner-program" rel="noopener" class="external-link" href="https://typo3.com/blog/unlocking-success-together-introducing-the-new-typo3-partner-program" target="_blank">Unlocking Success, Together: Introducing the New TYPO3 Partner Program</a></p>
<br> 
<p>And Joomla has:</p>
<p><a data-tooltip-position="top" aria-label="https://www.joomla.org/announcements/release-news/5902-joomla-5-0-2-and-4-4-2-bug-fix-release.html" rel="noopener" class="external-link" href="https://www.joomla.org/announcements/release-news/5902-joomla-5-0-2-and-4-4-2-bug-fix-release.html" target="_blank">Joomla 5.0.2 and 4.4.2 Bug Fix Release</a></p>
<br>
<p>Dries Buytaert has an:</p>
<p><a data-tooltip-position="top" aria-label="https://dri.es/acquia-retrospective-2023" rel="noopener" class="external-link" href="https://dri.es/acquia-retrospective-2023" target="_blank">Acquia retrospective 2023</a></p>
<p>DrupalEasy shares:</p>
<p><a data-tooltip-position="top" aria-label="https://www.drupaleasy.com/blogs/ultimike/2024/01/test-driving-rancher-desktop-docker-provider-ddev-macos" rel="noopener" class="external-link" href="https://www.drupaleasy.com/blogs/ultimike/2024/01/test-driving-rancher-desktop-docker-provider-ddev-macos" target="_blank">Test-driving the Rancher Desktop Docker provider with DDEV on MacOS</a></p>
<p>Florida Drupal Camp announces its agenda:</p>
<p><a data-tooltip-position="top" aria-label="https://fldrupal.camp/schedule/day-2" rel="noopener" class="external-link" href="https://fldrupal.camp/schedule/day-2" target="_blank">Agenda</a></p>
<p><strong>If you are attending be sure to look for me and let's talk. If you're arriving early or staying late, I can recommend some fun activities.</strong></p>
<p>HashBangCode examines:</p>
<p><a data-tooltip-position="top" aria-label="https://www.hashbangcode.com/article/drupal-10-opening-ajax-dialog-page-load" rel="noopener" class="external-link" href="https://www.hashbangcode.com/article/drupal-10-opening-ajax-dialog-page-load" target="_blank">Drupal 10: Opening An Ajax Dialog On Page Load</a></p>
<p>Metadrop looks at:</p>
<p><a data-tooltip-position="top" aria-label="https://metadrop.net/en/articles/using-vlsuite-copy-drupalorg-home-page" rel="noopener" class="external-link" href="https://metadrop.net/en/articles/using-vlsuite-copy-drupalorg-home-page" target="_blank">Using VLSuite to copy Drupal.org home page</a></p>
<p>ADCI explores:</p>
<p><a data-tooltip-position="top" aria-label="https://www.adcisolutions.com/knowledge/drupal-layout-builder." rel="noopener" class="external-link" href="https://www.adcisolutions.com/knowledge/drupal-layout-builder." target="_blank">Layout Builder: The power module in a nutshell</a></p>
<p>The DropTimes examines:</p>
<p><a data-tooltip-position="top" aria-label="https://www.thedroptimes.com/36618/essential-drupal-modules-help-you-prevent-spam" rel="noopener" class="external-link" href="https://www.thedroptimes.com/36618/essential-drupal-modules-help-you-prevent-spam" target="_blank">Essential Drupal Modules that Help you Prevent Spam</a></p>
<p><strong>The number 1 way to prevent spam is to not allow comments or have a contact form. That is what the Fediverse is for.</strong></p>
<p>And looks at:</p>
<p><a data-tooltip-position="top" aria-label="https://www.thedroptimes.com/36702/managing-drupal-translations-role-drush-commands" rel="noopener" class="external-link" href="https://www.thedroptimes.com/36702/managing-drupal-translations-role-drush-commands" target="_blank">Managing Drupal Translations: The Role of Drush Commands</a></p>
<p>The original version in Spanish via Drupal Sapiens explores: </p>
<p><a data-tooltip-position="top" aria-label="https://drupalsapiens.com/es/blog/backend/manteniendo-las-traducciones-actualizadas-en-drupal" rel="noopener" class="external-link" href="https://drupalsapiens.com/es/blog/backend/manteniendo-las-traducciones-actualizadas-en-drupal" target="_blank">Manteniendo las traducciones actualizadas en Drupal</a></p>
<h3 data-heading="Previous Weeks">Previous Weeks</h3>
<p>Abdulbasit Rubeiyya examines:</p>
<p><a data-tooltip-position="top" aria-label="https://medium.com/@noob.dev/simplifying-symfony-templating-with-blade-a-step-by-step-guide-c0ccf0ea4ea6" rel="noopener" class="external-link" href="https://medium.com/@noob.dev/simplifying-symfony-templating-with-blade-a-step-by-step-guide-c0ccf0ea4ea6" target="_blank">Simplifying Symfony Templating with Blade: A Step-by-Step Guide</a></p>
<p>The Drop Times looks at:</p>
<p><a data-tooltip-position="top" aria-label="https://www.thedroptimes.com/36545/centarros-drupal-commerce-237-release-enhances-user-experience" rel="noopener" class="external-link" href="https://www.thedroptimes.com/36545/centarros-drupal-commerce-237-release-enhances-user-experience" target="_blank">Centarro's Drupal Commerce 2.37 Release Enhances User Experience</a></p>
<p>PrometSource has:</p>
<p><a data-tooltip-position="top" aria-label="https://www.prometsource.com/blog/multilingual-support-drupal" rel="noopener" class="external-link" href="https://www.prometsource.com/blog/multilingual-support-drupal" target="_blank">A Deep Dive on Lenovo's Multilingual Drupal Site</a></p>
<hr>
<h2 data-heading="PHP">PHP</h2>
<h3 data-heading="This Week">This Week</h3>
<p>The Grumpy Programmer (a favorite following of mine on Mastodon) examines the:</p>
<p><a data-tooltip-position="top" aria-label="https://grumpy-learning.com/blog/2024/01/07/roi-on-updating/" rel="noopener" class="external-link" href="https://grumpy-learning.com/blog/2024/01/07/roi-on-updating/" target="_blank">Return on Investment on Updating Dependencies</a></p>
<p>Amit Merchant</p>
<p><a data-tooltip-position="top" aria-label="https://www.amitmerchant.com/whats-new-in-php-84/" rel="noopener" class="external-link" href="https://www.amitmerchant.com/whats-new-in-php-84/" target="_blank">What's new in PHP 8.4</a></p>
<p>Mohasin Hossain</p>
<p><a data-tooltip-position="top" aria-label="https://mohasin-dev.medium.com/higher-order-functions-in-php-with-example-9930a4edcc66" rel="noopener" class="external-link" href="https://mohasin-dev.medium.com/higher-order-functions-in-php-with-example-9930a4edcc66" target="_blank">Higher-Order Functions in PHP With Examples</a></p>
<p>Doğan Uçar</p>
<p><a data-tooltip-position="top" aria-label="https://doganoo.medium.com/readonly-classes-in-php-a-useful-addition-to-readonly-properties-4457b27a9f16" rel="noopener" class="external-link" href="https://doganoo.medium.com/readonly-classes-in-php-a-useful-addition-to-readonly-properties-4457b27a9f16" target="_blank">Readonly Classes in PHP: A Useful Addition to Readonly Properties</a></p>
<p>Exakat</p>
<p><a data-tooltip-position="top" aria-label="https://www.exakat.io/en/how-to-clean-after-oneself-in-php/" rel="noopener" class="external-link" href="https://www.exakat.io/en/how-to-clean-after-oneself-in-php/" target="_blank">How to Clean After Oneself in PHP</a></p>
<p>Imenezzine</p>
<p><a data-tooltip-position="top" aria-label="https://medium.com/@imenezzine29/utilisation-de-php-vcr-pour-enregistrer-et-rejouer-les-appels-dapi-en-php-98ec94bd7153" rel="noopener" class="external-link" href="https://medium.com/@imenezzine29/utilisation-de-php-vcr-pour-enregistrer-et-rejouer-les-appels-dapi-en-php-98ec94bd7153" target="_blank">Utilisation de PHP-VCR pour Enregistrer et Rejouer les Appels d’API en PHP</a></p>
<p><strong>This is interesting.</strong></p>
<p>Rubin Rubio continues a series:</p>
<p><a data-tooltip-position="top" aria-label="https://dev.to/rubenrubiob/optimising-a-web-application-iii-projecting-1ij3" rel="noopener" class="external-link" href="https://dev.to/rubenrubiob/optimising-a-web-application-iii-projecting-1ij3" target="_blank">Optimizing a web application (III): projecting</a></p>
<h3 data-heading="Previous Weeks">Previous Weeks</h3>
<p>Inspector</p>
<p><a data-tooltip-position="top" aria-label="https://inspector.dev/php-attributes-how-to-use-php-attributes-and-create-custom-attribute-classes-fast-tips/" rel="noopener" class="external-link" href="https://inspector.dev/php-attributes-how-to-use-php-attributes-and-create-custom-attribute-classes-fast-tips/" target="_blank">PHP Attributes: how to use PHP Attributes and create custom attribute classes – Fast Tips</a></p>
<hr>
<h2 data-heading="More Programming">More Programming</h2>
<p>Docker shares:  </p>
<p><a data-tooltip-position="top" aria-label="https://www.docker.com/blog/8-top-docker-tips-tricks-for-2024/" rel="noopener" class="external-link" href="https://www.docker.com/blog/8-top-docker-tips-tricks-for-2024/" target="_blank">8 Top Docker Tips &amp; Tricks for 2024</a></p>
<p>Atakan Demircioğlu</p>
<p><a data-tooltip-position="top" aria-label="https://atakde.medium.com/elastic-search-in-2024-2e13f6ecaea6" rel="noopener" class="external-link" href="https://atakde.medium.com/elastic-search-in-2024-2e13f6ecaea6" target="_blank">Elastic Search in 2024</a></p>
<p>Ismat Babiri asks:</p>
<p><a data-tooltip-position="top" aria-label="https://ismatbabir.medium.com/can-i-use-redis-as-a-message-queue-521df9e25066" rel="noopener" class="external-link" href="https://ismatbabir.medium.com/can-i-use-redis-as-a-message-queue-521df9e25066" target="_blank">Can I use Redis as a Message Queue?</a></p>
<p>TheNewStack reports:</p>
<p><a data-tooltip-position="top" aria-label="https://thenewstack.io/new-open-source-standard-brings-consistency-to-webhooks/" rel="noopener" class="external-link" href="https://thenewstack.io/new-open-source-standard-brings-consistency-to-webhooks/" target="_blank">New Open Source Standard Brings Consistency to Webhooks</a></p>
<hr>
<h2 data-heading="Fighting for Democracy">Fighting for Democracy</h2>
<p><a data-tooltip-position="top" aria-label="https://symfonystation.mobileatom.net/Support-Ukraine" rel="noopener" class="external-link" href="https://symfonystation.mobileatom.net/Support-Ukraine" target="_blank">Please visit our Support Ukraine page</a>&nbsp;to learn how you can help kick Russia out of Ukraine (eventually).</p>
<h3 data-heading="The cyber response to Russia’s War Crimes and other douchebaggery">The cyber response to Russia’s War Crimes and other douchebaggery</h3>
<p>MIT Technology Review asks:</p>
<p><a data-tooltip-position="top" aria-label="https://www.technologyreview.com/2024/01/05/1086203/whats-next-ai-regulation-2024/" rel="noopener" class="external-link" href="https://www.technologyreview.com/2024/01/05/1086203/whats-next-ai-regulation-2024/" target="_blank">What’s next for AI regulation in 2024?</a></p>
<p>Medium announces:</p>
<p><a data-tooltip-position="top" aria-label="https://blog.medium.com/updates-to-our-quality-guidelines-for-sensitive-content-e01ff8f55ad5" rel="noopener" class="external-link" href="https://blog.medium.com/updates-to-our-quality-guidelines-for-sensitive-content-e01ff8f55ad5" target="_blank">Updates to our Quality Guidelines for sensitive content</a></p>
<p><strong>As opposed to Substack, Medium improves it service.</strong></p>
<p>TechCrunch reports:</p>
<p><a data-tooltip-position="top" aria-label="https://techcrunch.com/2024/01/09/ftc-x-mode-ban-delete-location-data/" rel="noopener" class="external-link" href="https://techcrunch.com/2024/01/09/ftc-x-mode-ban-delete-location-data/" target="_blank">FTC bans X-Mode from selling phone location data, and orders firm to delete collected data</a></p>
<p><a data-tooltip-position="top" aria-label="https://techcrunch.com/2024/01/09/meta-to-restrict-teen-instagram-and-facebook-accounts-from-seeing-content-about-self-harm-and-eating-disorders/" rel="noopener" class="external-link" href="https://techcrunch.com/2024/01/09/meta-to-restrict-teen-instagram-and-facebook-accounts-from-seeing-content-about-self-harm-and-eating-disorders/" target="_blank">Meta to restrict teen Instagram and Facebook accounts from seeing content about self-harm and eating disorders</a></p>
<p><strong>After having its ass sued off Facebook takes credit for doing something useful.</strong></p>
<h3 data-heading="The Evil Empire Strikes Back">The Evil Empire Strikes Back</h3>
<p>Cybersec84 reports:  </p>
<p><a data-tooltip-position="top" aria-label="https://cybersec84.wordpress.com/2024/01/09/noname-ddos-attacks-disrupt-ukrainian-government-services/" rel="noopener" class="external-link" href="https://cybersec84.wordpress.com/2024/01/09/noname-ddos-attacks-disrupt-ukrainian-government-services/" target="_blank">NoName DDoS Attacks Disrupt Ukrainian Government&nbsp;Services</a></p>
<p>Platformer reports:</p>
<p><a data-tooltip-position="top" aria-label="https://www.platformer.news/p/substack-says-it-will-remove-nazi" rel="noopener" class="external-link" href="https://www.platformer.news/p/substack-says-it-will-remove-nazi" target="_blank">Substack says it will remove Nazi publications from the platform</a></p>
<p><strong>After immense pressure, Substack promises to be only 90%-fascists and c^unts in the future by removing 5 non-monetized pubs with less than 100 subscribers each.</strong></p>
<p>404 Media reports:</p>
<p><a data-tooltip-position="top" aria-label="https://www.404media.co/dogs-will-pass-away-hackers-steal-dog-rescues-facebook-page-turn-it-into-ai-content-farm/" rel="noopener" class="external-link" href="https://www.404media.co/dogs-will-pass-away-hackers-steal-dog-rescues-facebook-page-turn-it-into-ai-content-farm/" target="_blank">'Dogs Will Pass Away': Hackers Steal Dog Rescue's Facebook Page, Turn It Into AI Content Farm</a></p>
<p><strong>Now these are some mofos who need to be shot in the head and thrown in a ditch. It's also one of 4,135 reasons you should not be on FuckupBook and should have your own website.</strong></p>
<p>CNBC reports:</p>
<p><a data-tooltip-position="top" aria-label="https://www.cnbc.com/2024/01/10/wef-ai-election-disruption-poses-the-biggest-global-risk-in-2024.html" rel="noopener" class="external-link" href="https://www.cnbc.com/2024/01/10/wef-ai-election-disruption-poses-the-biggest-global-risk-in-2024.html" target="_blank">World Economic Forum: AI election disruption poses the biggest global risk in 2024</a></p>
<p>The Wall Street Journal reports:</p>
<p><a data-tooltip-position="top" aria-label="https://www.wsj.com/business/elon-musk-illegal-drugs-e826a9e1?st=eu57wwnuot8zq3g&amp;reflink=desktopwebshare_permalink" rel="noopener" class="external-link" href="https://www.wsj.com/business/elon-musk-illegal-drugs-e826a9e1?st=eu57wwnuot8zq3g&amp;reflink=desktopwebshare_permalink" target="_blank">Elon Musk Has Used Illegal Drugs, Worrying Leaders at Tesla and SpaceX</a></p>
<p>**How surprising he's a drug addict in addition to being mentally ill and a c^nt.</p>
<p>The Verge reports:</p>
<p><a data-tooltip-position="top" aria-label="https://www.theverge.com/c/23998379/google-search-seo-algorithm-webpage-optimization" rel="noopener" class="external-link" href="https://www.theverge.com/c/23998379/google-search-seo-algorithm-webpage-optimization" target="_blank">The Perfect Webpage</a></p>
<p><strong>Or why Google has always made SEO suck and now 97.2% horseshit.</strong></p>
<p>The Hacker News reports:</p>
<p><a data-tooltip-position="top" aria-label="https://thehackernews.com/2024/01/sea-turtle-cyber-espionage-campaign.html" rel="noopener" class="external-link" href="https://thehackernews.com/2024/01/sea-turtle-cyber-espionage-campaign.html" target="_blank">Sea Turtle Cyber Espionage Campaign Targets Dutch IT and Telecom Companies</a></p>
<p><a data-tooltip-position="top" aria-label="https://thehackernews.com/2024/01/pro-iranian-hacker-group-targeting.html" rel="noopener" class="external-link" href="https://thehackernews.com/2024/01/pro-iranian-hacker-group-targeting.html" target="_blank">Pro-Iranian Hacker Group Targeting Albania with No-Justice Wiper Malware</a></p>
<h3 data-heading="Cybersecurity/Privacy">Cybersecurity/Privacy</h3>
<p>And:</p>
<p><a data-tooltip-position="top" aria-label="https://thehackernews.com/2024/01/syrian-hackers-distributing-stealthy-c.html" rel="noopener" class="external-link" href="https://thehackernews.com/2024/01/syrian-hackers-distributing-stealthy-c.html" target="_blank">Syrian Hackers Distributing Stealthy C#-Based Silver RAT to Cybercriminals</a></p>
<p>Decipher reports:</p>
<p><a data-tooltip-position="top" aria-label="https://apple.news/AXOzJL8AsQSqS_KpyoUc5Rg" rel="noopener" class="external-link" href="https://apple.news/AXOzJL8AsQSqS_KpyoUc5Rg" target="_blank">Threat Actors Target Microsoft SQL Servers in Mimic Ransomware Attacks</a></p>
<hr>
<h3 data-heading="Fediverse">Fediverse</h3>
<p>The Fediverse Report has:</p>
<p><a data-tooltip-position="top" aria-label="https://fediversereport.com/last-week-in-fediverse-ep-50/" rel="noopener" class="external-link" href="https://fediversereport.com/last-week-in-fediverse-ep-50/" target="_blank">Last Week in Fediverse – ep 50</a></p>
<p><a data-tooltip-position="top" aria-label="https://fediversereport.com/rss-feeds-in-the-fediverse-a-huge-hit" rel="noopener" class="external-link" href="https://fediversereport.com/rss-feeds-in-the-fediverse-a-huge-hit" target="_blank">RSS feeds in the Fediverse a huge hit</a>/</p>
<p><a data-tooltip-position="top" aria-label="https://fediversereport.com/wordpress-activitypub-plugin-updates-to-v2-0/" rel="noopener" class="external-link" href="https://fediversereport.com/wordpress-activitypub-plugin-updates-to-v2-0/" target="_blank">WordPress ActivityPub plugin updates to v2.0</a></p>
<p>Laurens Hof reports:</p>
<p><a data-tooltip-position="top" aria-label="https://laurenshof.online/bluesky-has-3-million-accounts-invites-going-away-soon/" rel="noopener" class="external-link" href="https://laurenshof.online/bluesky-has-3-million-accounts-invites-going-away-soon/" target="_blank">Bluesky has 3 million accounts, invites going away soon</a></p>
<p>Owncast says:</p>
<p><a data-tooltip-position="top" aria-label="https://gabekangas.com/blog/2024/01/thank-you-for-making-owncast-a-success-in-2023/" rel="noopener" class="external-link" href="https://gabekangas.com/blog/2024/01/thank-you-for-making-owncast-a-success-in-2023/" target="_blank">Thank you for making Owncast a success in 2023</a></p>
<p>Jason Beaird explores:</p>
<p><a data-tooltip-position="top" aria-label="https://jasongraphix.com/journal/custom-domains-the-social-web/" rel="noopener" class="external-link" href="https://jasongraphix.com/journal/custom-domains-the-social-web/" target="_blank">Custom Domains &amp; The Social Web</a></p>
<p>Flipboard has:</p>
<p><a data-tooltip-position="top" aria-label="https://about.flipboard.com/inside-flipboard/tim-chambers/" rel="noopener" class="external-link" href="https://about.flipboard.com/inside-flipboard/tim-chambers/" target="_blank">Moderation and Migration for a Better Social Web, with Fediverse Leader Tim Chambers</a></p>
<p>Gadgeteer reports:</p>
<p><a data-tooltip-position="top" aria-label="https://gadgeteer.co.za/mbin-is-a-fork-of-kbin-a-decentralized-content-aggregator-running-on-the-fediverse-network/" rel="noopener" class="external-link" href="https://gadgeteer.co.za/mbin-is-a-fork-of-kbin-a-decentralized-content-aggregator-running-on-the-fediverse-network/" target="_blank">Mbin is a fork of kbin: a decentralized content aggregator running on the Fediverse network</a></p>
<hr>
<h2 data-heading="CTAs (aka show us some free love)">CTAs (aka show us some free love)</h2>
<ul>
<li>That’s it for this week. Please share this communiqué.</li>
<li>Also, please&nbsp;<a data-tooltip-position="top" aria-label="https://symfonystation.mobileatom.net/contact" rel="noopener" class="external-link" href="https://symfonystation.mobileatom.net/contact" target="_blank">join our newsletter list, The Payload, at the bottom of our site’s pages</a>. Joining gets you each week's communiqué in your inbox (a day early).</li>
<li>Follow us&nbsp;<a data-tooltip-position="top" aria-label="https://flipboard.com/@mobileatom/symfony-for-the-devil-allupr6jz" rel="noopener" class="external-link" href="https://flipboard.com/@mobileatom/symfony-for-the-devil-allupr6jz" target="_blank">on Flipboard</a>&nbsp;or at&nbsp;<a data-tooltip-position="top" aria-label="https://phpc.social/web/@symfonystation" rel="noopener" class="external-link" href="https://phpc.social/web/@symfonystation" target="_blank">@symfonystation@phpc.social</a>&nbsp;on Mastodon for daily coverage. Consider joining the&nbsp;<a data-tooltip-position="top" aria-label="https://phpc.social/web/home" rel="noopener" class="external-link" href="https://phpc.social/web/home" target="_blank">@phpc.social</a>&nbsp;instance.</li>
<li>Do you like Reddit? Why? Instead, follow us&nbsp;<a data-tooltip-position="top" aria-label="https://kbin.social/u/symfonystation" rel="noopener" class="external-link" href="https://kbin.social/u/symfonystation" target="_blank">on kbin</a>&nbsp;for a better Fediverse and Symfony-based experience. We have a&nbsp;<a data-tooltip-position="top" aria-label="https://kbin.social/m/Symfony" rel="noopener" class="external-link" href="https://kbin.social/m/Symfony" target="_blank">Symfony Magazine</a>&nbsp;and&nbsp;<a data-tooltip-position="top" aria-label="https://kbin.social/c/SymfonyUniverse" rel="noopener" class="external-link" href="https://kbin.social/c/SymfonyUniverse" target="_blank">Collection</a>&nbsp;there.</li>
</ul>
<p>Do you own or work for an organization that would be interested in our promotion opportunities? Or supporting our journalistic efforts? If so,&nbsp;please get in touch with us. We’re in our toddler stage, so it’s extra economical. 😉</p>
<p>More importantly, if you are a Ukrainian company with coding-related products, we can offer free promotion on&nbsp;<a data-tooltip-position="top" aria-label="https://symfonystation.mobileatom.net/Support-Ukraine" rel="noopener" class="external-link" href="https://symfonystation.mobileatom.net/Support-Ukraine" target="_blank">our Support Ukraine page</a>. Or, if you know of one, get in touch.</p>
<p>You can find a vast array of curated evergreen content on our [communiqués page]((<a rel="noopener" class="external-link" href="https://symfonystation.mobileatom.net/communiques" target="_blank">https://symfonystation.mobileatom.net/communiques</a>).&nbsp;</p>
<h2 data-heading="Author">Author</h2>
<p><img alt="Reuben Walker headshot" src="https://symfonystation.mobileatom.net/sites/default/files/inline-images/Reuben-Walker-headshot.jpg" referrerpolicy="no-referrer"></p>
<h3 data-heading="Reuben Walker">Reuben Walker</h3>
<p>Founder<br>
Symfony Station</p>`
```
`