Pimcore 11 现在可以解决840个问题和拉请求. 这些升级使最新版本的Pimcore功能强大且高效. 新版本比以前的版本更具可扩展性,因为Pimcore社区不懈地修复了所有开放的问题和pull请求. Pimcore 11已准备好以其经得起未来考验的新标准, 未来几年的突破性方法.
您可以利用Pimcore 11的潜力,成为这个现代的行业领导者, evolving digital landscape. Thus, 用最新的Pimcore 11升级您的网站,并开始革命性的数据管理策略.
请继续阅读本文,了解Pimcore 11中的新更新,以及升级系统所需的所有技术要求.
YOU MAY ALSO LIKE: PIM vs MDM
重要的技术Pimcore更新和更改
Pimcore version 11进行了重要的增强, optimized integration designs, and fundamental refactoring, 是什么让它成为一个更可靠、更注重性能的版本. 让我们来看看Pimcore 11中引人注目的突破性更新.
1. 改进代码质量和结构
Pimcore 11将不太常用的特性分离到包中. Thus, 现在你将体验到更强的灵活性, a leaner core, 以及高效的开发过程.
从这个版本开始,Pimcore将对所有参数和返回类型应用原生PHP类型. 因此,Pimcore核心框架现在是严格类型的,这提高了平台的稳定性和代码质量. 此更新背后的想法是为开发人员提供一个更直观的系统,以便他们可以编写代码并防止生产中的类型错误.
Pimcore 11具有高级的测试覆盖率,并为所有包添加了静态分析检查, 这提高了包装的质量. 改进的包质量将在开发、未来的更改和适应过程中帮助开发人员.
Moreover, Webpack用于安装和打包关键的前端依赖项, for instance, 用于Pimcore后端用户界面的JavaScript和CSS文件. 此更新有助于简化未来的更新并保持所有组件的现代化.
Pimcore 11已激活CSP (Content Security Policy)作为其后端接口的默认设置. 此更新有助于防止某些特定类型的攻击, for instance, data injection attacks, cross-site scripting (XSS), etc. 最新版本的Pimcore使用CSP更加安全,并将恶意活动和数据泄露的风险降至最低.
2. Updated third-party dependencies
对于Pimcore 11, PHP的最低要求是版本8.1; however, it is compatible with the latest PHP 8.2 as well. Due to this update, Pimcore 11利用PHP语言的新特性来提高代码质量, performance, and security. Since this is a stable version of PHP; thus, 这些更新和安全修复程序将至少在未来三年保留.
在Pimcore 11中,几乎所有第三方依赖项都已更新到最新版本. 因此,最新版本可以利用其依赖项的最新特性和优点. 并且在接下来的几年里,它为Pimcore 11提供了强大的安全性,直到依赖关系没有结束.
Symfony是一个重要的依赖项,它已经更新到最新的版本6.在接下来的四年里,这在功能、支持和安全性方面都是有益的.
YOU MAY ALSO LIKE: Pimcore MDM
3. 重构以减少技术债务
Among many updates and changes, 一个意义深远的更新是重构,以保持代码库的更新和可维护. 对于Pimcore开发人员来说,这也是一个重要的改进,因为它将减少维护工作并增加核心框架的稳定性.
All deprecated features, implementations, 旧的向后兼容层被删除以清理代码库.
代码包的代码结构在Pimcore 11中进行了更新,以符合最新的约定和最佳实践.
Session handling, authentication, 和Symfony运行时组件被删除,以减少Pimcore代码库的复杂性.
4. 引入了基本的重构
为WYSIWYG编辑器找到一个抽象层,该编辑器将超现代的TinyMCE作为默认实现. 抽象层有助于使用扩展轻松集成其他所见即所得编辑器.
Gotenberg(一个多功能的PDF生成器),已在Pimcore 11中实现. 它有助于生成office文档(如Word)的资产文档预览, Excel, 和PowerPoint,然后在web2print模块中创建pdf. Gotenberg实现的引人注目的部分是它作为微服务轻松地集成到系统基础设施中. 它最终将基础设施需求最小化,并简化系统复杂性.
增加了对自定义文档和资产类型的支持,从而增强了可扩展性. Likewise, other updates, 这也将帮助开发人员通过扩展实现他们自己的类型,以根据他们独特的需求完全定制Pimcore. 这是一个新功能,它允许创建支持3D文件格式的扩展.
数据对象(如数字范围)的新范围数据类型, quantity value range, and date range have been added, 改进了Pimcore 11的数据建模能力.
YOU MAY ALSO LIKE: DAM VS CMS
5. Focusing on the Ecosystem
所有的Pimcore扩展已经更新,以确保他们的和谐兼容性与Pimcore 11.
POEditor翻译工作流和所有Pimcore扩展的集成使开发人员能够用他们首选的语言翻译所有Pimcore扩展的标签. However, it is already possible for Pimcore core; now this functionality is available for extensions as well. 因此,您的整个系统可以翻译成您喜欢的语言.
How to upgrade from Pimcore 10.x to Pimcore 11.x?
To upgrade the database, 确保将json_array类型更改为json,因为在doctrine/dbal3中删除了json_array类型.
mysqldump -u-p --no-data | grep -i json_array
对于外观和品牌,复制每一个相关的设置
from var/config/system.修改为var/config/admin_system_settings/admin_system_settings.yaml to protect the settings.
要在设置存储中保存新设置,请使用以下configuration -
pimcore_admin: config_location: admin_system_settings: write_target: type: 'settings-store' read_target: type: 'settings-store'
对于系统设置,请复制所有相关设置
from var/config/system.修改为var/config/system_settings/system_settings.yaml.
使用以下配置将系统设置保存到设置存储中:
pimcore: config_location: system_settings: write_target: type: 'settings-store' read_target: type: 'settings-store'
配置存储设置可以分两步完成——在更新之前删除设置,在解压的包安装之后重新添加设置.
# pimcore_custom_reports:
# config_location:
# custom_reports:
# write_target:
# type: 'settings-store'
# pimcore_web_to_print:
# config_location:
# web_to_print:
# write_target:
# type: 'settings-store'
# pimcore_static_routes:
# config_location:
# staticroutes:
# write_target:
# type: 'settings-store'
For Web2Print functionality, 将默认文档视图中的标志“启用Web2Print文档”设置为true,以确保默认安装PimcoreWebToPrintBundle.
如果不使用Web2Print功能,则将该标志设置为false.
通过Composer更新Pimcore到Pimcore 11 -W pimcore/pimcore:^11.0 pimcore/admin-ui-classic-bundle.
更新设置后,按照以下步骤操作
对于admin bundle,在Kernel: src/Kernel中注册admin-ui-classic-bundle.php
registerBundlesToCollection(BundleCollection $collection):无效 { // pimcore bundles $collection->addBundle(new \Pimcore\Bundle\AdminBundle\PimcoreAdminBundle(), 60); }
There are a few code changes.
Update config/packages/security.yaml to the latest format. Also, update references from @PimcoreCoreBundle /资源/ config /... to @PimcoreCoreBundle/config/... in config/routes.yaml. If needed, then change routing.yml to routing.yaml.
在config/bundles中激活提取的bundle.PHP,并根据需要删除包.
您需要为提取的包重新激活配置存储设置.
#custom_reports pimcore_custom_reports: config_location: custom_reports: ... #web_to_print pimcore_web_to_print: config_location: web_to_print: ... #static_routes pimcore_static_routes: config_location: staticroutes: ...
一旦再次构建Symfony容器,就执行所有迁移.
bin /控制台学说:迁移:迁移
如果不使用Web2Print功能, 确保运行以下命令和查询来清理系统:
Bin /console pimcore:documents:cleanup printpage printcontainer
DELETE FROM ' users_permission_definitions ' WHERE ' key ' = 'web2print_settings';
UPDATE ' users ' SET ' permissions ' =REGEXP_REPLACE(' permissions ', '权限')?:^|,)web2print_settings(?:$|,)', ") WHERE ' permissions ' REGEXP '(?:^|,)web2print_settings(?:$|,)';
同样,如果不使用Newsletter功能,运行以下命令来清理您的系统:
Bin /console pimcore:documents:清理通讯
删除孤儿自定义设置,因为在Pimcore 11中删除了facedetect支持.
bin/console pimcore:assets:remove-custom-setting faceCoordinates bin/console pimcore:assets:remove-custom-setting disableFocalPointDetection bin/console pimcore:assets:remove-custom-setting:禁用imagefeatureautodetection
重建类,objectBricks, fieldCollections和customLayouts:
bin/console原则:migration:exec 'Pimcore\Bundle\CoreBundle\Migrations\Version20230412105530'
Remove var/config/system.yaml after migrating all settings.
最后,更新Symfony Messengar Worker Configuration.
Wrapping up
Pimcore总是以卓越的数据管理和面向未来的方法给用户带来惊喜. 此外,Pimcore 11基于最新的行业标准和最佳实践,其更新的特性和功能也会给你带来惊喜. 因此,将您的应用程序或网站升级到Pimcore 11,以获得无缝的数据管理体验.
As a recognized silver partner of Pimcore,我们提供广泛的 Pimcore development services to cater the diverse client needs.
Our services encompass PIM, MDM, DAM, CMS, design, multi-channel ecommerce, integration, maintenance, and support. We serve a wide range of clients, including SMEs, large enterprises, international organizations, and web development agencies. 要了解更多信息,您可以填写以下表格或发送电子邮件至 [email protected] . We look forward to assisting you!