yii2-tools / yii2-community-cms
基于 Yii2 的简单 CMS
Requires
- php: >=5.4.0
- 2amigos/yii2-ckeditor-widget: ~1.0
- 2amigos/yii2-file-upload-widget: ~1.0
- almasaeed2010/adminlte: ~2.0
- dmstr/yii2-adminlte-asset: 2.*
- kartik-v/yii2-grid: ^3.1
- kartik-v/yii2-krajee-base: ^1.8
- kartik-v/yii2-sortable: ^1.0
- kartik-v/yii2-widgets: ^3.4
- pear/archive_tar: ^1.4
- soundasleep/html2text: ~0.2
- tinymce/tinymce: 4.0.11
- wapmorgan/unified-archive: 0.0.*
- yii2-tools/yii2-active-params: ~1.0
- yii2-tools/yii2-base: ^1.0.4
- yii2-tools/yii2-breadcrumbs-filter: ~1.0
- yii2-tools/yii2-crud: ~1.0
- yii2-tools/yii2-secure-ar: ~1.0
- yiisoft/yii2: 2.0.8
- yiisoft/yii2-authclient: ~2.0
- yiisoft/yii2-bootstrap: *
- yiisoft/yii2-jui: ~2.0
- yiisoft/yii2-redis: ^2.0
- yiisoft/yii2-swiftmailer: *
- yiisoft/yii2-twig: ~2.0.0
Requires (Dev)
- codeception/c3: *
- codeception/codeception: 2.1.9
- codeception/specify: *
- codeception/verify: *
- packagist/closurecompiler-bin: ^2015.05
- packagist/yuicompressor-bin: ~2.0
- se/selenium-server-standalone: ^2.52
- yiisoft/yii2-apidoc: ~2.0
- yiisoft/yii2-codeception: *
- yiisoft/yii2-debug: ~2.0
- yiisoft/yii2-faker: *
- yiisoft/yii2-gii: *
This package is auto-updated.
Last update: 2024-09-17 00:56:30 UTC
README
这是一个在 2016 年 1 月至 6 月期间,学习 Yii2 期间编写的训练项目 💀。
如果部署它,将得到一个简单的网站(PHP5 + Yii 2.0.8),包括论坛、新闻条目和后台管理,可以更改模板、管理论坛、用户(基于 dektrium/yii2-user),添加/删除页面以及安装插件/小部件。后台管理界面使用了并进行了适配的 AdminLTE。
该网站在实际的网站构建器中使用过(类似 Wix/uCoz 的主题构建器)。在网站构建器的个人资料页面中,通过按钮将 (default_site/) 文件夹复制到指定的服务器,创建子域和数据库,在配置中传递环境参数,并分配管理员账户给用户。
模板
网站模板(以及所有使用的资产)被收集在一个目录中,可以通过后台管理(基于 wapmorgan/UnifiedArchive)一次性加载。模板是一个 .twig
文件,由控制器在 sandbox
模式下渲染。在模板内部,可以操作定制的 Twiga API,例如从同一存档中绘制图片或连接 js 文件,以及沙盒的安全过滤器。
后台管理模板位于单独的命名空间下,用户没有访问它们的界面(除非有访问网站代码的权限)。
插件和小部件
可以安装小部件和插件。小部件是一个包含集成 .php
插件的存档,引擎在遍历目录时会消耗它,以及用于添加到页面的资产集合。安装后,小部件由用户嵌入到模板的适当部分,作为文本占位符(例如,{MY_WIDGET_XXX}
)。在渲染时,引擎将占位符替换为实际的 html/js 代码。
插件与插件不同,它实际上是嵌入到网站中的应用程序(厚客户端 js,它能够自己向各种后端请求数据)。插件不嵌入到模板的任何部分,而是通过特殊控制器在单独的页面上渲染。
小部件和插件在个人账户中安装,并由供应商提供。也就是说,与用户可以编辑的模板存档不同,小部件和插件物理上复制到网站目录中(通过 demon/任务(rsync/scp)。用户只需将网站排队以连接额外的功能(包括付费功能)。
为小部件和插件提供了版本控制,即当部署新的插件/插件版本时,用户可以从更新服务器上拉取自己的网站副本。
这能用来做什么吗?(笑)
如果将其作为框架并针对特定需求进行修改,则理论上可以。所有内容都相当结构化和可扩展(在 Yii 生态系统范围内),但从 2016 年以来,许多内容都发生了变化,依赖项已经过时,需要检查。例如,流行的后台管理前端 AdminLTE 将命名空间从 almasaeed2010
改为 ColorlibHQ 等。当时并没有特别关注代码质量,按“能工作就行”的原则编写,因此现在对许多地方感到羞愧(但也许很多人都有过这样的经历) 😮
Makefile
项目管理使用了 make
。可以通过代码注释生成文档(使用yiisoft/yii2-apidoc),执行迁移,运行测试(覆盖率80%+),进行消息检测,绘制带有当前标签的徽标,以及与jenkins的多种集成。