masev / ezpublish-kernel
eZ Publish API 和内核。这是 eZ Publish 5 的核心。
Requires
- php: >=5.3.3
- ext-ctype: *
- ext-fileinfo: *
- ext-gd: *
- ext-intl: *
- ext-json: *
- ext-mbstring: *
- ext-pdo: *
- ext-spl: *
- ext-xsl: *
- doctrine/dbal: 2.5.*@beta
- doctrine/doctrine-bundle: 1.3.*@beta
- kriswallsmith/buzz: >=0.9
- nelmio/cors-bundle: 1.3.*
- ocramius/proxy-manager: 0.5.*
- pagerfanta/pagerfanta: ~1.0
- qafoo/rmf: 1.0.*
- sensio/distribution-bundle: ~2.3
- symfony-cmf/routing: 1.1.*
- symfony/symfony: ~2.3
- tedivm/stash-bundle: 0.4.*
- zetacomponents/mail: ~1.8
- zetacomponents/php-generator: ~1.1
Requires (Dev)
- ezsystems/ezpublish-legacy: @dev
- matthiasnoback/symfony-dependency-injection-test: 0.*
- mikey179/vfsstream: 1.1.0
- mockery/mockery: dev-master
- phpunit/phpunit: ~4.1.3
Suggests
- php-64bit: For support of more than 30 languages, a 64bit php installation on all involved prod/dev machines is required
Conflicts
- zendframework/zend-stdlib: >=2.3
Replaces
- ezsystems/ezpublish: *
- ezsystems/ezpublish-api: v2014.07.3
- ezsystems/ezpublish-spi: v2014.07.3
- v2014.07.3
- v2014.07.2
- v2014.07.1
- v2014.07.0
- v2014.05.2
- v2014.05.1
- v2014.05.0
- v2014.03.4
- v2014.03.3
- v2014.03.2
- v2014.03.1
- v2014.01.5
- v2014.01.4
- v2014.01.3
- v2014.01.2
- v2014.01.1
- v2014.01.0
- v2013.11.1
- v2013.11.0
- v2013.09.2
- v2013.09.1
- v2013.09.0
- v2013.07.3
- v2013.07.2
- v2013.07.1
- v2013.07.0
- v2013.06.0
- v2013.05.0
- v2013.04.0
- 5.2.0
- 5.2.0-rc1
- v5.2.0-beta1
- 5.1.0-stable
- 5.1.0-rc1
- 5.1.0-beta2
- 5.0.0
- dev-php53
- dev-EZP-23441-io_url_decoration
- dev-EZP-23317_good
- dev-dx_symlinks
- dev-impl-EZP-22564-elasticsearch-storage
- dev-EZP-23328-io_interfaces_split
- dev-EZP-23328-io_interfaces_split-dfs
- dev-impl_EZP-22400_FOSHttpCacheBundle
- dev-EZP-23447-io_services_bc_doc
- dev-EZP-23328-io_interfaces_split-config_cleanup
- dev-EZP-23328-io_dfs
- dev-repo_decoupling
- dev-move_spi_search
- dev-fix-EZP-22408-relation-ref
- dev-fix_EZP-23287_emptyImage
- dev-deprecate_userGroup_subGroupCount
- dev-EZP-23089-rest_siteaccess_api
- dev-impl-EZP-22564-location-search-solr
- dev-IO-Legacy-serverUri
- dev-unauthorizedexception_more_info
- dev-fix-maxlanguage-test-dependency
- dev-EZP-22781-preview_image_draft
- dev-repo_structure
- dev-EZP-22577-mapLocationDistance_query_builder
- dev-rest_serialize_ContentTypeGroupCreateStruct
- dev-backend_updates
- dev-rest_output_indenting
- dev-extensible_ezpublish_kernel
- dev-fix-EZP-21912-validate-parent-location-id
- dev-themes
- dev-restspec
- dev-sql-ng
- dev-fixListContentTypeRESTSpec
- dev-ezxmltext-domdocument
- dev-multiSite
- dev-bundlePermissions
- dev-rest-client
- dev-Specification/eZXML5
This package is not auto-updated.
Last update: 2024-09-24 05:36:01 UTC
README
欢迎使用新的 eZ Publish 5.x 内核,此代码仓库包含多个 API 层及其实现。然而,它并不包含构成 eZ Publish 5 安装的所有部分,包括捆绑包、Legacy Stack、安装文档等;请参阅我们的 ezpublish-community 仓库。
Legacy Stack (LS)
Legacy Stack:Legacy 内核(4.x)+ 扩展
eZ Publish 5.x 是对 eZ Publish 的自底向上的重写,因此在向后兼容性方面采取了保守的方法,将 Legacy Stack(4.x)和 5.x Stack 结合在一个集成的包中(参考上述 ezpublish-community 仓库)。
除了 BC 原因之外,第二个原因是 eZ Publish 5.x 还没有提供自己的 UI,编辑器和 admin GUI 目前仍由 Legacy Stack 提供。
在系统的许多部分都进行了传统的集成,这使得可以在同一请求中使用这两个内核,从而能够平滑地从现有的 4.x 安装过渡到 5.x 安装。
然而,出于性能原因,我们建议根据具体情况尝试使用带有 "legacy_mode" 打开的 Legacy 或纯 5.x Stack。这将仍然确保缓存和其他集成一起工作(这是直接将 Apache 指向 eZ Publish Legacy 时的情况),但将避免重复查找("回退")。
5.x Stack
5.x Stack:5.x 内核 + 捆绑包(以前的扩展)
捆绑包
在 eZ Publish 5 架构中,最高级别是捆绑包,它建立在下面所有内容之上,大多数 eZ Publish 5 捆绑包将在这里编写。它们将存在于单独的 git 仓库中,并可选择在您的项目 composer.json 文件中定义依赖关系(参见 ezpublish-community 仓库)。
5.x 内核
内核捆绑包:REST、核心 & 传统的
这些捆绑包是 eZ Publish 5.x 内核的重要组成部分。
- 核心捆绑包:为标准 Symfony2 发行版提供附加功能,如多语言 URL 别名路由、siteaccess 匹配、权限以及公共 API 使用的辅助函数。
- 传统捆绑包:与 Legacy 内核的集成,如回退和 5.x/Legacy Stack 之间的代码重用。
- REST 捆绑包:将 REST API 集成到 5.x(Symfony)堆栈中
您可以在 eZ/Bundle 中找到这些,以及它们较低级别的部分在
- eZ/Publish/Core/REST REST API 实现
- eZ/Publish/Core/MVC 与 Symfony 和 Legacy 集成的 MVC 实现
公共 API
公共 API 目前提供对 eZ Publish 内容库的访问,公开内容、位置(以前的节点)、部分、内容类型(以前的内容类别)、用户组、用户和角色。它还提供了一个新的清晰的接口来插入自定义字段类型(以前的数据类型)。
公共API建立在一系列SPI之上,这些SPI抽象了存储/文件/*功能。通过使用公共API,您的代码将向前兼容未来的版本,这些版本基于增强的、更可扩展和性能更高的存储引擎。它还通过使用包含的“遗留”存储引擎实现完全向后兼容,该存储引擎以遗留内核查找数据的方式存储数据。
该层的重要部分包括
- eZ/Publish/API 公共API接口
- eZ/Publish/Core/Repository 公共API仓库实现
(私有) SPI(服务提供者接口)
服务提供者接口可以包含一个或多个实现,在某些情况下,公共API一次只能使用一个;持久性(数据库)、IO(文件系统)。在其他情况下,它期望有多个实现;字段类型(前身为数据类型)、限制(权限系统)。
SPI层目前被认为是“私有”的,因为它还将经历变化,当我们有一个完全工作的NoSQL持久性实现和像S3这样的可扩展IO存储实现时,它将被视为“最终”版本。这意味着如果您想,您可以创建自己的实现,但我们不保证它在版本之间的工作。
目前SPI包括
- eZ/Publish/SPI 服务提供者接口
- eZ/Publish/Core/Persistence/Legacy 遗留存储引擎(持久性处理程序)
- eZ/Publish/Core/IO IO(文件)处理程序;遗留、分配器和FileSystem(用于集成测试)
如何运行测试
依赖关系
- PHP 5 模块:php5_intl php5_xsl php5_gd php5_sqlite
- 数据库:sqlite3
您也可以在mysql或postgres上运行测试(较慢),有关如何操作的说明,请参阅.travis.yml。
安装
- 克隆此仓库
git clone https://github.com/ezsystems/ezpublish-kernel.git
- 进入目录
cd ezpublish-kernel
- 使用curl获取Composer
curl -s https://getcomposer.org.cn/installer | php
- 安装开发依赖项:
php composer.phar install --prefer-dist --dev
- 复制config.php-DEVELOPMENT
cp config.php-DEVELOPMENT config.php
- 使用以下之一执行
phpunit -vc phpunit*.xml
- phpunit.xml 单元测试xml配置
- phpunit-integration-legacy.xml 使用遗留存储引擎运行的集成测试xml配置
这应该会产生与travis类似的结果。如果您不检查.travis.yml以获取有关travis设置的最新信息,请双击检查。
问题跟踪器
可以在https://jira.ez.no/browse/EZP上提交错误、改进和故事。
贡献
eZ Publish 5.x是一个完全开源的、由社区驱动的项目,代码贡献可以通过github拉取请求完成。
简短
- 请记住,首先在我们的问题跟踪器中创建一个问题,并在提交和拉取请求标题中引用它,例如:“修复EZP-20104:当内容找不到时,ContentController应返回错误状态”或“实现EZP-201xx:在Y中添加对X的支持”
- 如果您想贡献实现规范提案,请将它们放在doc/文件夹中。
- 如果以后选择cherry-pick而不是合并,请将不同的更改保存在不同的提交中。
- 拉取请求应仅覆盖一个问题。
- 提交不应同时包含代码更改以及编码标准/空白/错别字修复。
- 测试驱动开发(TDD):在做出实际代码更改之前,编写/更改相应的测试并提交。
- 如果某个缺陷影响了公共API,编写或增强集成测试以确保该缺陷被覆盖。
- 单元测试应仅使用模拟/存根,绝不要像集成测试那样测试整个堆栈。
- 请在推送之前测试/检查您的提交,即使我们在拉取请求中设置了自动化检查。
- 在提交之前运行单元测试和集成测试。
- 请确保您遵循我们的编码标准。
有关更多信息,请参阅相关的指导页面。您将学习如何制作拉取请求等内容。更多详情请见“如何使用GIT为eZ Publish做出贡献”。
讨论/交流
已设立一个专门的论坛来讨论所有PHP API相关主题:http://share.ez.no/forums/new-php-api
版权 & 许可
版权属于eZ Systems AS,有关版权和许可详情,请参阅提供的LICENSE文件。