wb-crowdfusion / crowdfusion
基础众包融合框架。
Requires
- php: >=5.4
- psr/log: ~1.0
- symfony/http-foundation: ~2.6|~3.0
Requires (Dev)
- phpunit/phpunit: ~4.3
README
众包融合文件结构概述
这是对众包融合系统的简要概述。对于完整概述,请参阅[[系统概述]]文档。
众包融合系统由以下部分组成
- 位于
crowdfusion/
文件夹中的众包融合共享公共插件。 - 位于
system/
文件夹中的众包融合框架。
您的众包融合应用程序包含一些基本理念
- 私有和/或公共插件,提供共享数据方面和PHP功能,包括提供的众包融合插件
- 您前端站点的视图或展示
- 表示主要内容类型的元素独特配置
- 应用程序和环境特定配置
- 内容(成员、新闻、个人资料、媒体文件等)
系统布局
实际上,您将在 app/
文件夹中构建您的应用程序,在众包融合平台上。此树状图旨在向您展示您的众包融合安装中不同文件夹的职能。
app/
plugins/ - private plugins for your application
view/ - view or presentation files
build/
context/ - environment-specific XML context files
media/ - uploaded media content
config.php - general configuration for your application
config_dev.php - environment-specific configuration for your application
config_prod.php - environment-specific configuration for your application
pluginconfig.php - plugin-specific configuration (deprecated)
contexts.xml - environment-specific contexts/sites XML configuration file
system.xml - system XML configuration file (list of installed plugins, elements, aspects, etc.)
crowdfusion/ - the Crowd Fusion CMS plugins
system/ - the Crowd Fusion Core Framework
console.php - command line (CLI) Front Controller
web.php - web request Front Controller
视图布局
app/
view/
cms/
shared/
public/
web/
app/view/cms/
文件夹包含CMS屏幕的任何设计定制。在安装示例应用程序时,此文件夹中只有 app/view/cms/assets/images/cluster-logo.png
项。替换此文件将替换此安装CMS屏幕左上角的默认众包融合标志。
app/view/shared/
文件夹包含系统使用的共享模板。此外,app/view/shared/public/
文件夹包含在您站点的文档根目录和您的CMS安装处提供的静态文件(例如:favicon.ico
、robots.txt
等)。如以下所述,这些公共文件可以从设计内部覆盖。
app/view/web/
文件夹包含您站点的网页设计(以及任何其他设计)。
安装后,将有一个简单的设计,引导您登录到位于 default/
文件夹中的CMS。要替换此设计,您将创建一个与您的站点同名的文件夹,并在该文件夹内创建一个名为 main/default/
的文件夹。例如,以下 www.YOURDOMAIN.com/
是一个参考设备视图和设计文件夹,用于显示位于 http://www.YOURDOMAIN.com
的网站的前端设计文件结构。如果您重命名此文件夹或复制此文件夹并将其重命名为匹配您安装众包融合的主域名的域名,则此设计中的适当部分包含的任何文件将覆盖 app/view/web/shared/
中的设计。
您会注意到在 www.YOURDOMAIN.com/
文件夹中的第一个文件夹也被称为 main/
。您可以在与这个 main/
文件夹平行的位置创建额外的文件夹,这些文件夹将作为此网站的多个设备视图。这样做是为了您可以从相同的URL为桌面、手机、平板电脑等设备提供服务。在该文件夹内部有一个 default/
文件夹,它包含了设计。为了测试目的,可以通过一个基于cookie的切换器来在不同设计之间切换,这个切换器通过一个特殊的查询字符串来调用。一旦您完成一个设计并进行了测试,您可以将它复制到您的 default/
文件夹中,以替换网站上每个人的默认设计。设备视图也可以通过相同的机制进行切换测试。例如,?device_view=tablet&design_switch=v2design
一个示例设计:www.YOURDOMAIN.com/main/default/
app/
view/
shared/ (available to all contexts)
assets/
public/
templates/
web/
default/ (deprecated path, will be removed in later version)
assets/
public/
templates/
shared/ (renamed to shared for less confusion with "default" design switch)
assets/
public/
templates/
www.YOURDOMAIN.com/
main/ (the only required device view folder)
default/ (the DESIGN SWITCH folder)
assets/
public/
templates/
redirects.php (optional, will override routes by array key, not by order!)
routes.php (optional, will override routes by array key, not by order!)
shared/ (available to all device views)
assets/
public/
templates/
routes.php (applies to ALL device views)
redirects.php (applies to ALL device views)
assets/
- 包含网站展示的所有静态(非内容)设计组件(CSS、JavaScript、图片、Flash文件等)。public/
- 包含在您网站文档根目录下提供的静态文件(例如:favicon.ico
、robots.txt
等);此文件夹可用于根据站点覆盖在app/view/shared/public/
中找到的文件。templates/
- 包含您设计所需的所有模板。模板通过 [[Renderer]] 被调用。Renderer 使用一个视图名称(基于模板名称加上文件扩展名,格式为template.ext
)来确定要处理的模板引擎和模板。扩展名.cft
表示 Crowd Fusion [[CFT Template Engine|模板引擎]] 作为处理文件的引擎。扩展名.xmod
(通常称为 xmodule),加载基于 XML 的模板引擎 Crowd Fusion [[XMOD Template Engine|XBuilder Template Engine]]。还可以定义其他模板引擎。routes.php
- 将请求 URI 映射到物理模板位置或操作。redirects.php
- 从一个 URI 转向另一个 URI。
插件布局
app/
plugins/
example-com/
aspects/
classes/
context/
api-context.xml
cli-context.xml
cms-context.xml
install-context.xml
shared-context.xml
web-context.xml
view/
bootstrap.php
plugin.xml
插件文件夹包括您应用中可用的所有插件。插件通过调用模板、资产、消息、路由、重定向、跨上下文共享的过滤器类、CMS使用的 xbuilders 以及各种 PHP 类(包括控制器、过滤器、事件处理程序和库等)来提供视图和控制的组合,主要用于 CMS 上下文。此文件夹中找不到的唯一插件是位于安装根目录 crowdfusion/
文件夹中的核心 Crowd Fusion 插件。您不需要访问 crowdfusion/
文件夹,因为您可以通过您的应用程序来覆盖或更改那些默认插件的功能。
上述结构中唯一必需的项是 plugin.xml
文件,它定义了插件。其他所有部分都提供了对插件的功能增强和定制。
aspects/
- 包含您插件所需的任何方面 XML 定义文件。classes/
- 包含您插件所需的全部 PHP 类;这些可以放置在任何所需的子目录配置中。context/
- 包含在插件加载时需要包含到相应上下文中的IoC容器XML上下文文件。上述树中包含了一些示例文件。如果没有特定于当前上下文(web、cms、cli等)的上下文文件,IoC容器将定位并包含shared-context.xml文件。 注意:在存在特定上下文文件的情况下,假定您会手动包含shared-context.xml。view/
- 与您应用根目录下的view/
目录类似,该目录包含定义应用外观的所有资产和模板,您的插件中的view/
文件夹包含插件CMS、CLI或API区域的视图或表示层。此文件夹的内容应与应用根目录下的view/
目录的结构相同。重要提示:虽然在这里包含web
上下文视图文件是可能的,但并不推荐;仅推荐包含必要的CMS、CLI和API表示文件。bootstrap.php
- 允许插件在加载过程中执行代码,在调用分发器或容器中的任何类之前。当所有插件都加载到上下文中时,容器将按优先级顺序迭代它们,并在每个插件的根目录中执行一个bootstrap.php文件。如果该文件不存在,容器将继续到下一个插件。plugin.xml
- 定义插件,是插件所需唯一的文件。
许可证
版权所有 2016 华纳兄弟娱乐公司。保留所有权利。
根据Apache许可证2.0版(“许可证”)许可;除非符合许可证规定,否则不得使用此文件。您可以在https://apache.ac.cn/licenses/LICENSE-2.0获取许可证副本。
除非适用法律要求或书面同意,否则在许可证下分发的软件按“原样”基础分发,不提供任何明示或暗示的保证或条件。有关许可证的具体语言规定许可和限制,请参阅许可证。