sulu-standard之后:Sulu生态系统、社区支持与sulu/skeleton迁移路线图
【免费下载链接】sulu-standardThis repository is not longer the recommended way to start a sulu project. Use:项目地址: https://gitcode.com/gh_mirrors/su/sulu-standard
sulu-standard 曾是 Sulu 内容管理框架(基于 Symfony 的开源 CMS/CMF)的标准项目骨架,如今官方 README 已明确提示:新项目请直接使用 sulu/skeleton。本文帮你快速看懂 Sulu 生态系统的现状与社区支持情况,并给出一条从 sulu-standard 迁移到 sulu/skeleton 的 5 步路线图。
📌结论先行:sulu-standard 已不再作为新项目的起点,但它仍是理解 Sulu 架构的"教科书";老项目想跟上主线,迁移到 sulu/skeleton 是最稳妥的路径。
30秒搞懂:sulu-standard 与 sulu/skeleton 的区别
| 对比维度 | sulu-standard(旧) | sulu/skeleton(新) |
|---|---|---|
| 定位 | 完整的标准项目骨架 | 官方推荐的新项目起点 |
| 依赖版本 | sulu/sulu~1.6.34、Symfony 2.8/3.0 | 跟随 Sulu 主线持续演进 |
| 运行环境 | PHP 5.5+ / 7.0(见composer.json) | 更高版本的 PHP 与 Symfony |
| 适合场景 | 学习架构、维护老项目 | 启动任何新的 Sulu 项目 |
从目录结构看懂 Sulu 项目架构
sulu-standard 最值钱的地方,是它把 Sulu 的"双内核"结构讲得明明白白:
- 管理后台内核:
app/AdminKernel.php—— 内容编辑者使用的后台 - 前台渲染内核:
app/WebsiteKernel.php—— 面向访客的站点 - 公共基类:
app/AbstractKernel.php,两个内核共享的装配逻辑
入口与配置也是"一套两份",对照着看一目了然:
| 后台(Admin) | 前台(Website) |
|---|---|
web/admin.php | web/website.php |
app/config/admin/config.yml | app/config/website/config.yml |
自定义主题放在src/Client/Bundle/WebsiteBundle/Resources/themes/default/下,模板、snippet 片段、webspace 配置(app/Resources/webspaces/sulu.io.xml.dist)都有现成示例——这些正是老项目迁移时要带走的"资产"。
社区支持现状:从 CHANGELOG 看维护节奏
📊 翻看CHANGELOG.md可以读出三个关键信号:
- 记录停在 1.6.38(2020-11-26),此后以 bugfix 收尾,不再有新功能;
- 依赖锁定在
sulu/sulu~1.6.34 与 Symfony 2.8/3.0,与 Sulu 主线已分道扬镳; - 社区开发重心已转向 Sulu 主线与 sulu/skeleton,老项目做安全维护即可。
CONTRIBUTING.md显示项目遵循 Symfony 编码规范、欢迎 Pull Request——但请注意,贡献应指向 Sulu 主线仓库,而不是这个骨架仓库本身。
5步迁移路线图:从 sulu-standard 到 sulu/skeleton
第1步:盘点项目资产
列出旧项目里的自定义部分,迁移清单越全,后面返工越少:
src/Client/下自定义的 Bundle- 主题模板(
themes/default/templates/) - webspace 与 snippet 配置
- 内容数据(PHP-Content Repository 中的页面 + Doctrine 中的后台数据)
第2步:搭建参考环境
想本地浏览 sulu-standard 的代码结构作为参考,可以克隆仓库:
git clone https://gitcode.com/gh_mirrors/su/sulu-standard同时按 Sulu 官方文档,用 sulu/skeleton 初始化一个新项目作为迁移目标。
第3步:迁移自定义代码
把主题模板、snippet、webspace 配置复制到新项目对应目录;涉及 Sulu API 调用的代码,按新版本的命名空间逐一调整。UPGRADE.md里逐版本记录了破坏性变更(如接口方法改名),是很好的对照检查清单。
第4步:迁移内容与数据
- 后台数据(用户、媒体库、联系人)通常通过数据库导出/导入迁移;
- 页面内容存于 PHP-Content Repository,导入新环境后需逐页核对 URL 与模板渲染效果。
第5步:验证与灰度上线
- 跑一遍
tests/下的测试脚本(如tests/runtests.sh); - 对照旧站逐页检查前台渲染、RSS 输出(
overview.rss.twig)与 sitemap; - 灰度切换域名、观察一周后再正式下线旧环境。
⚠️提醒:Sulu 1.x → 2.x 是跨大版本,不存在"一键升级",务必先在测试环境完成迁移,再动生产环境。
迁移FAQ
Q:旧项目还能继续用吗?A:能,但只建议做安全维护——composer.json锁定的sulu/sulu~1.6.34 不会再获得主线新功能了。
Q:必须现在迁移吗?A:不强制。但如果站点需要新版 Sulu 的能力(更现代的 PHP/Symfony 支持、新版后台体验),迁移就是必经之路。
Q:迁移最大的工作量在哪?A:自定义 Bundle 与模板的 API 适配,以及内容数据的核对——这正是第 3、4 步最花时间的地方。
总结:下一步该做什么
- ✅学习架构:sulu-standard 是读懂 Sulu 双内核结构的完整范本;
- ✅启动新项目:一律从 sulu/skeleton 起步,配合 Sulu 官方文档;
- ✅维护老项目:按上文 5 步路线图逐步迁移,而非试图原地升级。
【免费下载链接】sulu-standardThis repository is not longer the recommended way to start a sulu project. Use:项目地址: https://gitcode.com/gh_mirrors/su/sulu-standard
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考