Symfony Station Communiqué - 2022 年 1 月 21 日。了解 Symfony 和 PHP 新闻。
这篇文章最初出现在Symfony Station上。
欢迎来到本周内容丰富的 Symfony 站公报。这是您对 Symfony 和 PHP 开发社区中最有价值和最重要的新闻的每周回顾。花点时间享受对您最有价值的物品。
感谢 Javier Eguiluz 和 Symfony 在他们的 SymfonyWeek of Symfony中分享我们最后的公报](https://www.symfonystation.com/Symfony-Station-Communique-14-January-2021)和最新文章[。
*请注意,链接将在新的浏览器窗口中打开。我的意见,如果我提出任何意见,将以粗体显示。
Symfony
与往常一样,我们将从 Symfony 的官方消息开始。
Highlight -> "本周,Symfony 修复了与 PHP 枚举相关的一些问题,并提高了在应用程序中使用许多环境变量时的性能。同时,SymfonyWorld Online 2022 夏季版会议结束了早鸟期,但征文活动仍在开放,因此您可以在 2022 年 2 月 14 日之前发送您的提案。”
Symfony 一周 #785(2022 年 1 月 10 日至 16 日)https://symfony.com/blog/a-week-of-symfony-785-10-16-january-2022
Symfony 宣布“今天,我们为 Symfony 6 推出了新的认证考试。该考试类似于现有的 Symfony 认证考试(相同的考试主题,相同的问题数量等),但我们已经修改了许多认证内容除了删除过时或复杂的问题之外的新问题。我们还更新了内容,因此 Symfony 6 的整个认证考试比以前容易得多。没有技巧问题,整个考试都经过重新设计,确保所有问题都易于易于理解且易于回答。
介绍 Symfony 6 认证https://symfony.com/blog/introducing-the-symfony-6-certification
他们推出了全新的 Webapp 包。 “有什么好处?主要的好处是一个包是一个常规的 Composer 包,你可以在任何现有项目中需要它(甚至在游戏后期)。这允许使用多个包来编写你的应用程序。至于代码, 包组合几乎总是比继承好. 网站骨架都是关于继承的: 从哲学上讲, 它扩展了基本骨架. 你需要使用一个或另一个. 相反, webapp 包可以包含在任何一组依赖项中, 独立于用于创建项目的骨架。将包视为 PHP 特征的等价物。”
快速启动 Symfony 项目的更好方法https://symfony.com/blog/a-better-way-to-quickly-start-symfony-projects
[
](https://res.cloudinary.com/practicaldev/image/fetch/s--xTJH3MnI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://symfonystation.com /sites/default/files/inline-images/Featured-Item_1.png)
特色项目
Symfony Flex 可以轻松安装包并获得立即开始工作所需的一切:新的配置文件、对 .env 的更改、Docker 配置等等。这个想法是如此强大以至于 symfony/skeleton——用于新 Symfony 应用程序的存储库——除了 composer.json 之外都是空的! src/Kernel.php、bin/console 和 config/services.yaml 等熟悉的文件通过配方添加到您的项目中。
从 symfony/flex 1.18.0 或 2.1.0 开始,当您需要将 Symfony 更新到新版本时,现在可以使用新的 composer 命令:recipes:update。这个命令很聪明:它在最初安装的配方版本和最新版本之间生成一个“差异”,然后利用 git 应用那个补丁。换句话说,升级配方就像用 git 合并两个分支一样简单而健壮!大多数情况下,更改会干净利落地应用。但如果他们不这样做,你就会得到一个熟悉的 git 风格的冲突,你可以解决它。
快速、智能的 Flex 配方升级与配方:更新
本周
阿卡西先知带着另一篇有趣的文章回来了。
Symfony 如何获取 AJAX 调用发送的查询字符串值https://akashicseer.com/web-development/symfony-how-to-get-query-string-values-sent-by-ajax-calls/
Oliver de Cramer 写道:“7 年多来,我主要从事电子商务项目。其中大多数是 Magento 1 和 2 项目,还有一些其他解决方案的冒险经历(Drupal 商务😱)。
所以,今年夏天开始时,我有机会参与一个不销售产品但订阅的 Sylius 项目,我抓住了机会。 "
A Little Sylius Adventure:从 Magento 开发人员的角度来看。https://oliverde8.medium.com/a-little-sylius-adventure-f9e9c96f6b23
说到 Sylius,Les-Tilleuls.coop 对其客户之一 Rapid-flyer.com 进行了案例研究。
他们说:“在这篇文章中,我们会见了这家成立近 20 年的公司的首席执行官 Nicolas Mathieu,他回顾了导致我们合作的不同技术选择以及这个电子商务项目的当前发展。”
案例研究:Rapid-flyer.com x Les-Tilleuls.coop(法语)https://les-tilleuls.coop/blog/etude-de-cas-rapid-flyer-com
PrestaConcept 提出了“一个简单而优雅的解决方案,使用标记服务的注入,让您可以在执行某些命令时禁用某些侦听器。”
如何在 Symfony 中的某些命令期间禁用某些侦听器(en Francais)https://www.prestaconcept.net/blog/symfony/comment-desactiver-certains-listeners-lors-de-certaines-commandes
EasyAdmin 4.0.2 已经发布,它包含了社区最需要的功能之一:菜单徽章。这些标记通常用于在菜单项旁边显示一些数值(例如,通知数量、新客户数量、待支付发票数量等)
EasyAdmin 4 中的新功能:菜单徽章https://easycorp.github.io/blog/posts/new-in-easyadmin-4-menu-badges
Kévin Dunglas 说:“流行的 Doctrine DBAL 库的第 3 版已于 2020 年底发布,距离第 2 版的初始发布近 10 年。2021 年 9 月,Doctrine ORM 2.10 增加了对 DBAL 3 的支持,同时仍支持 DBAL 2同时。
从 DBAL 2 升级到 DBAL 3 的过程通常很简单。大多数重大更改都会影响低级类,这些类在使用 ORM 时通常不会直接操作。但是,如果您依赖 JSON 列,事情会变得更加复杂,您可能知道我是它们的大用户!”
JSON 列和 Doctrine DBAL 3 升级https://dunglas.fr/2022/01/json-columns-and-doctrine-dbal-3-upgrade/
Luismi Sánchez 分享了他来自 SymfonyCast 的提示和笔记。
Symfony 基础笔记https://luismi.sanchezarteaga.es/symfony-fundamentals-notes/
Damian Brdej 写道:“Laradock 是 Docker 的完整 PHP 开发环境。它包含各种流行的服务,例如 PostgreSQL、MySQL、Redis、MongoDB、PHPmyAdmin 等。”
Laradock - 即用型 PHP docker 环境https://dev.to/quentindamianino/laradock-ready-to-use-php-docker-environment-320e
Oleg Charnyshevich 告诉我们“我的工作的一部分是代码审查,我开始注意到我的一些同事无法理解依赖注入和服务容器。因此,他们倾向于过度设计事物。”他继续这样做。
在 Symfony 中注入依赖项的 4 种方法,你可能不知道https://medium.com/@OCharnyshevich/4-ways-to-inject-dependencies-in-symfony-that-you-probably-dont-know -约-65e8efe02af5
Youri Galescot 说:“前段时间,我发现了由 Adam Wathan 创建的 TailwindCSS 框架,我被它的简单性和使用速度所吸引。我在创建用户界面和 HTML/CSS 集成方面的生产力确实得到了提高。”
如何使用 Webpack Encore (en francais)将 TailwindCSS v3 集成到 Symfony 项目中 https://www.yourigalescot.com/fr/blog/comment-integrer-tailwindcss-v3-a-un-projet-symfony-avec-webpack -安可
PHPStan 将被添加到今年晚些时候 Drupal 10 更新的核心中。
静态分析器工具 PHPStan 已添加到 Drupal Core。https://www.drupal.org/node/3258232
对于那些在站点上使用 Drupal 的人来说,这看起来是一个有用的模块。
使用 Drupal 9 智能内容模块为访问者个性化网站体验。https://www.specbee.com/blogs/personalizing-website-experience-using-drupal-9-smart-content-module
最后在 Drupal 方面,Daniel Sipos 在 12 月写道:“Drupal 的 9.3.0 次要版本发布,与往常一样,包含对整个产品的一些渐进式增强。其中,我今天想强调两个这样的变化:权限系统。所以让我们开始吧。”
Drupal 9.3中的权限更新 https://www.webomelette.com/permissions-updates-drupal-9.3
Matija Cerovec 写道:“策略设计模式是一种行为软件设计模式,它允许您定义一系列算法,封装它们,并从池中选择一个以供运行时使用。这些算法可以相互互换。通过使用设计模式,您可以让你的代码更加灵活、可重用和可维护。在这篇博客中,我将通过真实案例展示如何在 Symfony 上使用策略设计模式。
使用 Symfony实施策略模式 https://q.agency/blog/implementing-strategy-pattern-with-symfony-showcase
Jérôme Tamarelle 告诉我们“集成 Vault 和 Symfony 不需要任何 PHP 代码。使用 Vault-agent 机密变量可以转储到 .env 文件中。动态机密甚至可以用作功能标志。”
使用 Symfony 在 Vault 中存储秘密
https://dev.to/gromnan/store-secrets-in-vault-with-symfony-51ai
Freek Van der Herten 声称“Ignition 是 PHP 应用程序中最漂亮的错误页面。昨天,我们推出了 Ignition 的新主要版本 - 您可以在这篇博文中查看所有详细信息。
Ignition 曾经是 Laravel 特有的,但我们现在也创建了一个与框架无关的版本。让我们尝试在一个简单的 Symfony 应用程序中使用 Ignition。”
Symfony 应用程序的更好的错误页面https://freek.dev/2169-a-better-error-page-for-symfony-applications
Leo Hajder 问道:“你需要多久使用一次外部 API 并将其集成到 Symfony 应用程序中?让我们看看如何快速和/或做好它,并希望在此过程中学到一些东西。对于这个例子,我们将看看如何从 API 端点获取响应并在 twig 模板中呈现数据。”
使用外部 API:基本提示和技巧https://netgen.io/blog/sumption-external-apis-basic-tips-tricks
永恒

赞助文章
我们在 Symfony Station 上发表了我们的第一篇赞助文章,探讨了代码执行监控如何帮助您在客户之前识别 Symfony 应用程序中的错误和瓶颈。像我们所有的文章一样,它现在可以通过音频获得。
为什么你应该使用 Symfony 的代码执行监控
所有赞助文章均针对我们审查并支持的产品。如果它们适用于 Symfony Station 站点,我们要么使用它们,要么会这样做。

比索
本周
在这篇写得很好的文章中,Ibrahim Alausa 向我们展示了如何让我们的控制器适应未来。
关于如何设计面向未来的控制器的综合指南:第 1 部分https://worldclassibro.hashnode.dev/a-comprehensive-guide-on-how-to-design-future-proof-controllers-part-1
Hojjat 为我们准备了另一篇介绍性文章,并指出“在本指南中,我们将使用 Docker 使用 Docker Hub 上的官方镜像快速部署 Redis。”
将 Redis 部署为 Docker 容器 [第 1 部分] https://dev.to/hojjat12/deploy-redis-as-a-docker-container-part-1-5c48
Rob Hedgpeth 说:“长期以来,PHP 编程语言一直被认为是一种相当轻量级和简单的解决方案,供开发人员用来创建健壮和创造性的 Web 应用程序。事实上,就像过去的几个 PHP 版本一样,现在也是如此语言比以往任何时候都更具吸引力。
与许多其他语言一样,PHP 能够利用 MariaDB 的强大功能,这实际上是一个非常简单直接的过程。”
开发人员快速入门:PHP 和 MariaDBhttps://dev.to/probablyrealrob/developer-quickstart-php-and-mariadb-e3g
上周,我们分享了 Eric the Coder 关于现代 PHP 的文章。他在该系列中添加了一些新帖子。
PHP 速成课程:字符串和数字https://dev.to/ericchapman/php-crash-course-strings-and-numbers-40i0
Yactouat 完成了他关于 PHP 迭代器和生成器的系列文章。
使用IteratorAggregate\接口介绍 PHP 自定义集合https://dev.to/yactouat/introducing-php-custom-collections-with-the-iteratoraggregate-interface-1469
后端开发人员为我们审查只读属性。
PHP 8.1 新特性——只读属性https://kvnc-inc.medium.com/php-8-1-new-features-readonly-properties-9994fdffd594
Dolcer Engineering 问道:“你有没有在微服务架构上工作过,其中有很多服务,每个服务都是由不同的团队和不同的代码标准创建的?这样的情况从来都不是理想的,但有时别无选择,而你需要改进你能做的。这正是我们遇到的问题。
通过静态分析和 SonarQube提高 PHP 应用程序的质量 https://medium.com/docler-engineering/improve-quality-of-php-applications-with-static-analysis-and-sonarqube-eb6d7d52e8db
当我们在 Twitter 上分享时,以下内容很受欢迎。 Dariusz Gafka 向我们展示:
如何集成微服务https://blog.devgenius.io/how-to-integrate-microservices-a506fe2d1a48
他继续说:
从 PHP中的微服务开始 https://medium.com/nerd-for-tech/starting-with-microservices-in-php-6e3c411f3d27
Stitcher.io 的 Brent 写道:“我想就如何处理更新外部依赖项分享一些可行的建议。因为,让我们面对现实吧,您想将项目更新到 PHP 8.1,但您的一些依赖项不支持它。所以,故事结束,对吧?
这就是我在这种情况下所做的。”
处理依赖https://stitcher.io/blog/dealing-with-dependencies
新一期的 PHP [Architect] 已经发行,并以领域驱动设计为特色。
PHP[Architect] 的一月版已经发布。 https://www.phparch.com/magazine/2022/01/domain-driven-resolutions/
Kristiana Lentino 分享了他对 Rabbitmq 的探索。
试用 Rabbit MQ
https://dev.to/kristianlentino99/trying-out-rabbitmq-2goh
Frank de Jonge 说:“在系统中使用事件很棒,但是你如何确定你是否可靠地调度了你的事件?事件的传输需要可靠地完成,同时保持整个系统的一致性,无论是最终的还是立即的。在典型的设置中,数据库用于存储信息,队列用于在进程和系统之间发送消息。通常,事件在存储数据中信息的同一操作中直接分派到队列。这似乎不是显然是错误的,但这种方法存在潜在问题。”
使用事务发件箱进行可靠的事件分派https://blog.frankdejonge.nl/reliable-event-dispatching-using-a-transactional-outbox/
Ajimoti Ibk 向我们展示如何:
轻松计算 PHP 缓存时间https://medium.com/@ajimotiajbkibk/calculate-php-cache-time-with-ease-d3805fa1c46e
上周
Git 钩子是在 git 中发生特定事件时运行的脚本,例如 git push、git pull、git commit 等。我们可以在特定 git 存储库中的 .git/hooks 中找到 git 钩子。
Pre-commit 是一个 git 钩子,它在执行 git 提交期间触发自定义脚本或命令。
在本文中,我们将在将代码提交到 git 时使用 prettier 格式化 PHP 代码。
自动化 — git commit之前的 PHP 代码格式化 https://blog.canopas.com/automation-php-code-formatting-before-pre-git-commit-ce23c43586b0
上个月
是否曾经发现自己想要对 Composer 依赖项中的 PHP 文件进行一些小调整?以下是如何在不分叉整个包的情况下做到这一点。
在 Composer 依赖项中覆盖供应商类https://downing.tech/posts/overriding-vendor-classes
永恒
Joshua Otwell 写道:“如果您是 PHP/MySQL 开发人员,那么您可以选择数据库和编程语言的日期函数选项。在这篇文章中,我将介绍 5 个 PHP 日期函数及其(有点)MySQL 等价函数,并举例说明每个。”
5 PHP 日期函数及其 MySQL 等价物https://levelup.gitconnected.com/5-php-date-functions-and-their-mysql-equivalents-a70c208e4d13
[
](https://res.cloudinary.com/practicaldev/image/fetch/s--9RQn0MV---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://symfonystation.com /sites/default/files/inline-images/code-logo_3.jpeg)
其他
About.com Software 展示了如何使用 Docker 进行本地开发,通过安全的 SSH 隧道使用远程数据库。不需要 Docker 黑客攻击和防火墙修补。
用于胜利的简单 Docker 隧道https://medium.com/@dotcom.software/easy-docker-tunnel-for-the-win-a913436b403f
上周,我分享了几篇关于开源维护挑战的文章。本周,我将继续这个主题。”
正如我之前所说,如果您使用开源产品,请为维护者做出贡献。
GitHub 参加了白宫关于开源网络安全的会议。在帖子中,他们“概述了 GitHub 政策团队认为应该推动与政策制定者对话的三个主题——以帮助开源繁荣和可持续发展。这些主题只是一个起点:如果你有想法,请与我们联系”。
开源创造价值,但你如何衡量它?https://github.blog/2022-01-20-open-source-creates-value-but-how-do-you-measure-it/
Jeff Geerling 分享了他作为多个项目的维护者避免倦怠的策略。
开源维护者的负担https://www.jeffgeerling.com/blog/2022/burden-open-source-maintainer
The Next Web 指出“仅仅因为你是 OSS 并不意味着你必须一直被现金束缚。”
开源开发者赚钱的 6 种方式https://thenextweb.com/news/6-ways-open-source-devs-can-make-money-syndication
ZDNet 提出了这一点,“与其像无头小鸡一样到处乱跑,因为一个广泛使用的开源软件是由志愿者维护的,而且里面有一个巨大的漏洞,想象一下花钱请人妥善照顾这些软件。”
仅出于安全考虑,我们可以尝试正确支付开源项目https://www.zdnet.com/article/for-security-alone-we-could-try-paying-open-source-projects-properly/
Shawn Hooper 说:“问题是当项目变得流行时。你现在最终得到的软件被用于数千(数百万?)个软件中,这些软件面临以下风险:a)它的开发人员要么因为新的兴趣而放弃项目,要么改变了生活优先事项或 2) 支付开发工作费用的雇主结束了项目。”
关于 PHP 基金会的开源和重要性https://shawnhooper.ca/2022/01/16/php-foundation-open-source/
最后,TechCrunch 指出:“大多数人都没有意识到这一点,但你每天使用的许多设备和应用程序都是建立在开源软件之上的,由一两个开发人员维护,他们没有为他们的时间付费,他们修补错误并改进他们的代码,以回馈社区或作为一个激情项目。”
免费工作的开源开发人员发现他们有能力
https://techcrunch.com/2022/01/18/open-source-developers-who-work-for-free-are-discovering-they-have-power/
Tara Prasad Routray 希望帮助我们“了解 Tailwind CSS v3.0 版本附带的令人难以置信的新功能。”
Tailwind CSS v3.0中引入的 10 大功能 https://levelup.gitconnected.com/top-10-features-introduced-in-tailwind-css-v3-0-39f9700b12a1
Christoph Nißle 的文章很好地概述了 IT 环境的分散性质及其面临的挑战。
为什么你应该决定做 API 管理https://medium.com/@christophnissle/why-you-should-decide-to-do-api-management-bbc651269b69
您是否发布或看到过我们错过的与 Symfony 或 PHP 相关的内容?如果是这样,请联系我们。
这就是本周的内容。感谢您完成另一个扩展版。我期待在周五与您分享下周的 Symfony 和 PHP 新闻。
请分享这篇文章。 :) 请务必加入我们网站页面底部的时事通讯列表。加入后,您可以在收件箱中收到每周的公报(提前一天)。并在 Twitter 上关注我们:@symfonfystation。
快乐的编码 Symfonistas!
鲁本·沃克
创始人 Symfony Station
Reuben 还是Mobile Atom Media及其部门Mobile Atom Code的负责人。
更多推荐


所有评论(0)