ezsystems/ezpublish-kernel

ezsystems/ezplatform及其衍生产品使用的内核。提供内容存储库、其API以及应用程序的Symfony框架集成。

安装数: 567 366

依赖者: 155

建议者: 0

安全: 17

星标: 161

关注者: 47

分支: 206

v2014.11.8 2015-01-26 07:09 UTC

This package is auto-updated.

Last update: 2024-09-22 11:49:42 UTC


README

Build Status Downloads Latest version License

SensioLabsInsight

欢迎来到eZ Platform Kernel。它是建立在Symfony (Full Stack) 框架之上的现代CMS——eZ Platform的核心。它包含一个高级内容模型,允许您在一个面向未来的内容存储库中结构化任何类型的内容或类似数据。eZ Platform Kernel还旨在为MVC层(Symfony)提供额外的功能,以提高您的生产力。

此代码存储库包含多个API层(和实现)。内核指的是这是核心,而Full Stack则包含捆绑包、用户界面和安装程序,所有这些都被配置为形成一个完整的应用程序。

此存储库用于内核的核心开发;用于eZ Platform Kernel本身的问题修复、功能和文档。

什么是eZ Platform?

eZ Platform是一个现代、自给自足的CMS/CMF,可以满足开发人员和编辑团队的需求。自2011年以来一直在开发中。当前的eZ Platform是产品的下一代(之前名为eZ Publish)。它是建立在Symfony框架(Full Stack)之上的。

获取完整安装(Full Stack

如上所述,有几种方法可以获取此内核的完整安装

  • eZ Platform:用于干净安装eZ Platform的现代Symfony CMS。
  • eZ Platform demo:eZ Platform的演示网站,作为如何开始的一个示例。
  • eZ Platform Enterprise Edition:eZ Platform的商业发行版,旨在为编辑、编辑团队和大型组织提供额外的功能和服务。

内核概述

eZ Platform旨在成为一组可重用组件,通过混合解耦和特定捆绑包将它们全部组合在一起。从高层次的角度来看,它包含前端/用户界面层、中间/MVC层和后端(存储库)。所有层都包含进一步细分的小组件的子层。

此Git存储库包含MVC和后端层的主要部分,底层组件计划作为单独的(子树分割)包提供,以实现重用。正如Solr Bundle的情况一样。

当前组织

在doc文件夹中,您可以找到大多数功能的规范,包括REST API。

MVC层

  • eZ/Bundle - 这些捆绑包对于将后端和MVC层的功能暴露给Symfony非常重要。
  • eZ/Publish/Core/MVC - 组成不同组件的各个部分,这些组件扩展了Symfony。
  • eZ/Publish/Core/Pagination - 扩展PagerFanta的组件,用于eZ Platform搜索查询的分页。

后端

  • eZ/Publish/API - PHP Public API的稳定接口定义,主要指内容仓库API
  • eZ/Publish/SPI/Persistence - 一个尚未冻结的层,意味着它可能在不同的版本之间发生变化。这些是存储引擎的持久化接口。
  • eZ/Publish/SPI - (除了持久化之外的内容)已冻结,并承诺向后兼容服务提供者接口(SPI),这意味着在消费和实现方面都不会有破坏性的变化。
  • eZ/Publish/Core - API和SPI的实现;命名旨在与它们实现的接口名称对应。例如,Core\Persistence\Legacy是实现SPI\Persistence的。
  • eZ/Publish/Core/REST 是一个提供REST服务器和REST客户端原型的组件。

本地测试

此内核包含了一套全面的单元、功能性和集成测试。在撰写本文时,有9k个单元测试,8k个集成测试,以及几个功能性测试。

依赖关系

  • PHP 7模块:php7_intl php7_xsl php7_gd php7_sqlite (即pdo_sqlite
  • 数据库:sqlite3,可选:mysql/postgres 如果这样的话,请确保安装了相应的pdo模块

要为此组件做出贡献,你应该运行单元和集成测试。

  1. 在本地设置此存储库

    # Note: Change the line below to the ssh format of your fork to create topic branches to propose as pull requests
    git clone https://github.com/ezsystems/ezpublish-kernel.git
    cd ezpublish-kernel
    composer install
  2. 运行单元测试

    在这个时候,你应该能够运行单元测试

    php -d memory_limit=-1 vendor/bin/phpunit
  3. 运行集成测试

    # If you want to test against mysql or postgres instead of sqlite, define one of these with reference to an empty test db:
    # export DATABASE="mysql://root@localhost/$DB_NAME"
    # export DATABASE="pgsql://postgres@localhost/$DB_NAME"
    php -d memory_limit=-1 vendor/bin/phpunit -c phpunit-integration-legacy.xml

    要针对Solr运行集成测试,请参阅eZ Platform的Solr搜索引擎组件

这应该会产生类似于以下的结果:travis。如果不这样做,请双检查.travis.yml,以获取有关travis设置的最新信息。

问题跟踪器

https://jira.ez.no/browse/EZP中提交错误、改进和故事是可能的。如果您发现了一个安全问题,请参阅如何在“在eZ Systems产品中报告安全问题”中负责任地报告此类问题。

贡献

eZ Platform是一个开源项目,通过GitHub拉取请求由eZ Systems和eZ社区进行代码贡献。

礼貌

  • 请记住,首先在我们的问题跟踪器中创建一个问题,并在提交和拉取请求标题中引用它。例如:“EZP-20104:修复ContentController以在内容未找到时返回错误状态”或“EZP-20105:在Y中添加对X的支持”
  • 如果您想提出实现规范提案,请将它们放在doc/文件夹中。
  • 如果以后更喜欢cherry-pick而不是合并,请在不同的提交中保持不同的更改。
    • 拉取请求应该只覆盖一个问题。
    • 单个提交不应包含代码更改以及编码标准/空白/错别字修复。
  • TDD:在执行实际的代码更改之前,编写/更改您的修复的测试并提交它。
    • 如果一个错误影响了公共API,编写或增强一个集成测试以确保错误被覆盖。
    • 单元测试应仅使用模拟/存根,绝不能像集成测试那样测试整个栈。
  • 请在推送之前测试/检查您的提交,即使我们在拉取请求中也有自动化检查。
    • 在提交之前运行单元测试和集成测试。
    • 在将更改提交到PHP文件之前,请确保通过执行composer fix-cs遵循我们的编码标准,并查看我们的编码规范

有关更多信息,请参阅相关的指导页面。您将学习如何制作拉取请求等内容。更多关于此的信息在这里:"通过git贡献"

讨论/交流

已建立专门的论坛来讨论所有PHP API相关主题:eZ社区

版权 & 许可

版权所有 (c) eZ Systems AS。有关版权和许可详情,请参阅提供的LICENSE文件。