• Stars
    star
    161
  • Rank 233,470 (Top 5 %)
  • Language
    PHP
  • License
    Other
  • Created over 13 years ago
  • Updated almost 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Kernel (Repository, MVC layer, REST) for eZ Platform

eZ Platform Kernel

Build Status Downloads Latest version License

SensioLabsInsight

Welcome to the eZ Platform Kernel. It is the heart of eZ Platform, a modern CMS built on top of the Symfony (Full Stack) Framework. It contains an advanced Content Model, allowing you to structure any kind of content or content-like data in a future-proof Content Repository. eZ Platform Kernel also aims to provide additional features for the MVC layer (Symfony) to increase your productivity.

This code repository contains several layers of (and implementations of) APIs. Kernel refers to this being the core, as opposed to the Full Stack which has bundles, user interfaces, and installers, all configured to make a complete application.

This repository is for core development; for fixes, features and documentation of the eZ Platform Kernel itself.

What is eZ Platform?

eZ Platform is modern, self-sufficient CMS/CMF, and it can be used to meet needs of developers and editorial teams. It has been in development since 2011. Current eZ Platform is the next generation of the product (previously named eZ Publish). It is built on top of the Symfony framework (Full Stack).

Getting a Full Installation (Full Stack)

Reflecting what is described above there are several options to get a full install of this Kernel:

  • eZ Platform: For a clean install of eZ Platform, a modern Symfony CMS.
  • eZ Platform demo: A demo website of eZ Platform, as an example for how to get started.
  • eZ Platform Enterprise Edition: A commercial distribution of eZ Platform that provides additional features and services aimed at editors, editorial teams, and larger organizations.

Overview of the Kernel

eZ Platform aims to be a set of reusable components, with a mix of decoupled and specific bundles putting it all together. From a high level point of view, it contains a Front End / UI Layer, Mid/MVC layer and a Backend (Repository). All layers contain further sub-layers consisting of smaller components.

This git repository contains the main parts of the MVC and Backend layers, with underlying components planned to be provided as separate (sub-tree split) packages for re-usability. As is the case with Solr Bundle.

Current Organization

In the doc folder, you'll find Specifications for most features, including the REST API.

MVC layer:

  • eZ/Bundle - the bundles that are important to expose the functionality of the Backend and MVC layer to Symfony.
  • eZ/Publish/Core/MVC - the parts that make up the different components extending Symfony.
  • eZ/Publish/Core/Pagination - a component extending PagerFanta for pagination of eZ Platform search queries.

Backend:

  • eZ/Publish/API - the definition of stable interfaces for the PHP Public API, mainly Content Repository API.
  • eZ/Publish/SPI/Persistence - a layer which is not frozen yet, meaning it might change in between releases. Those are persistence interfaces for Storage Engine.
  • eZ/Publish/SPI - (anything other than Persistence) is frozen and has a Backward Compatibility promise of Service Provider Interface, meaning no breaking changes both from consumption and implementation POV.
  • eZ/Publish/Core - implementations of both APIs and SPIs; the naming aims to map to name of the interface they implement. For example, Core\Persistence\Legacy being implementation of SPI\Persistence.
  • eZ/Publish/Core/REST is a component providing REST server and prototype of a REST Client.

Testing Locally

This kernel contains a comprehensive set of unit, functional, and integration tests. At the time of writing, 9k unit tests, 8k integration tests, and several functional tests.

Dependencies

  • PHP 7 Modules: php7_intl php7_xsl php7_gd php7_sqlite (aka pdo\_sqlite)
  • Database: sqlite3, optionally: mysql/postgres if so make sure to have relevant pdo modules installed

For Contributing to this Bundle, you should make sure to run both unit and integration tests.

  1. Set up this repository locally:

    # 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. Run unit tests:

    At this point you should be able to run unit tests:

    php -d memory_limit=-1 vendor/bin/phpunit
  3. Run integration tests:

    # 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

    To run integration tests against Solr, see Solr Search Engine Bundle for eZ Platform.

This should produce a result similar to this: travis. If it doesn't, double-check .travis.yml for up-to-date information on how travis is set up.

Issue Tracker

Submitting bugs, improvements, and stories is possible in https://jira.ez.no/browse/EZP. If you discover a security issue, please see how to responsibly report such issues in "Reporting security issues in eZ Systems products".

Contributing

eZ Platform is an open source project, with code contributions made via GitHub pull requests by eZ Systems and the eZ Community.

Good manners:

  • Remember to first create an issue in our issue tracker and refer to it in commits and pull request headers. For example: "EZP-20104: Fixed ContentController to return error status when content is not found" or "EZP-20105: Added support for X in Y"
  • If you want to contribute implementation-specification proposals, place them in the doc/ folder.
  • Keep different changes in different commits in case cherry-pick is preferred instead of a merge later.
    • A pull request should only cover one issue.
    • A single commit should not contain code changes along with coding standards/whitespace/typo fixes.
  • TDD: Write/Change the test(s) for your fix and commit it before you do the actual code change.
    • If a bug affects the Public API, write or enhance an integration test to make sure the bug is covered.
    • Unit tests should only use mocks/stubs and never test the full stack like integration tests do.
  • Please test/check your commits before pushing even if we have automated checks in pull requests:
    • Run unit tests and integration tests before commits
    • Make sure you follow our coding standards by executing composer fix-cs before committing your changes to PHP files.

For further information, please have a look at the related guidance page. You will, among other things, learn how to make pull requests. More on this here: "Contributing through git".

Discussing/Exchanging

A dedicated forum has been set up to discuss all PHP API-related topics: eZ Community.

Copyright & License

Copyright (c) eZ Systems AS. For copyright and license details see provided LICENSE file.

More Repositories

1

ezplatform

Meta repository that pulls in all dependencies for clean distribution of Ibexa Platform.
Shell
328
star
2

ezpublish-legacy

eZ Publish (aka "legacy kernel" + 3 core "legacy extensions") NOTE: Succeeded by eZ Platform, no further feature releases planned.
JavaScript
253
star
3

ezpublish-community

[OBSOLETE] eZ Publish (5.x), has been obsoleted by eZ Platform, the 6th/7th generation of eZ Publish. Corresponding repo can be found on https://github.com/ezsystems/ezplatform
PHP
230
star
4

ezfind

PHP
58
star
5

ezplatform-admin-ui

Repository dedicated to the eZ Platform Admin UI Bundle, Admin UI for eZ Platform v2+
PHP
55
star
6

ezplatform-solr-search-engine

Solr powered search handler for eZ Platform (and branch 1.0 for eZ Publish 5.4)
PHP
46
star
7

ezplatform-http-cache

HTTP cache handling for eZ Platform, using multi tagging (incl Varnish xkey)
PHP
46
star
8

docker-php

Contains php docker image example for use with eZ Platform (and implicit eZ Platform EE & Symfony)
Roff
44
star
9

ez-support-tools

eZ Support Tools Bundle, provides functionality for system information and in the future tools for identifying issues.
PHP
43
star
10

BehatBundle

Bundle for common reusable sentance implementations & other common needs for Behat testing in eZ bundles/projects.
PHP
43
star
11

ezplatform-design-engine

PHP
43
star
12

ezplatform-admin-ui-assets

Shell
41
star
13

ezplatform-demo

Fork of "ezplatform" meta repository, contains code and dependencies for demo distribution of eZ Platform. Not recommended for a clean install for new projects, but great for observation and learning!
PHP
41
star
14

eztags

PHP
40
star
15

ezplatform-admin-ui-modules

Repository dedicated to re-useable React JS components for eZ Platform Admin UI
JavaScript
38
star
16

ezplatform-cron

PHP
34
star
17

repository-forms

PHP
34
star
18

ezjscore

JavaScript
33
star
19

ezflow

PHP
32
star
20

ezplatform-richtext

eZ Platform Rich Text Field Type Bundle
PHP
32
star
21

ezplatform-graphql

GraphQL server for eZ Platform, the open source Symfony CMS.
PHP
30
star
22

ezplatform-standard-design

PHP
29
star
23

doctrine-dbal-schema

PHP
29
star
24

ezoe

JavaScript
29
star
25

ezplatform-core

Repository dedicated to the eZ Platform Core Bundles & Components.
PHP
28
star
26

behat-screenshot-image-driver-cloudinary

PHP
28
star
27

PlatformUIBundle

Main Bundle to provide YUI based editorial/admin UI for eZ Platform v1 on top of REST API (In v2 replaced by ezplatform-admin-ui, a pure symfony based admin ui)
JavaScript
28
star
28

ezie

JavaScript
27
star
29

ezplatform-matrix-fieldtype

Repository dedicated to Matrix Field Type for eZ Platform, it replaces previous version found on ezcommunity/EzMatrixFieldTypeBundle
PHP
24
star
30

ezgmaplocation

PHP
24
star
31

ezsurvey

PHP
24
star
32

ezxmlexport

PHP
23
star
33

ezplatform-user

Repository dedicated to eZ Platform User management.
PHP
23
star
34

ezautosave

Content editing autosave extension for eZ Publish
JavaScript
22
star
35

ezplatform-ee

Fork of the "ezplatform" meta repository, contains changes to composer.json that pull in all dependencies from updates.ez.no for Ibexa Experience (a commercial distribution of Ibexa Platform with additional features).
Shell
22
star
36

launchpad

CLI tool to bootstrap an eZ Platform project Docker stack | #justcode
PHP
22
star
37

ezxmlinstaller

PHP
22
star
38

ezmultiupload

PHP
22
star
39

ezcomments

PHP
21
star
40

ezodf

PHP
21
star
41

symfony-tools

Collection of polyfill (backport) and incubator features for Symfony 3
PHP
19
star
42

ezwebin

Shell
19
star
43

ezteamroom

PHP
19
star
44

ezpublish-docker

[DEPRECATED] eZ Platform with CoreOS host and Debian 8 based containers (a kibao/symfony2-docker fork)
Shell
18
star
45

ezcs

PHP
18
star
46

ezwt

Smarty
17
star
47

LegacyBridge

[Community co-maintained] Formerly LegacyBundle, this was moved out and can be used as a optional bridge between eZ Platform and eZ Publish Legacy to simplify migration to eZ Platform
PHP
17
star
48

ezstarrating

PHP
16
star
49

ezplatform-xmltext-fieldtype

[Community co-maintained] XmlText field type for eZ Platform
PHP
16
star
50

ezmbpaex

PHP
16
star
51

cookbook-bundle

eZ Publish 5.x / eZ Platform Cookbook examples
PHP
15
star
52

ezplatform-kernel

Ibexa Kernel (Repository, MVC layer, Symfony integration).
PHP
14
star
53

ezlightbox

PHP
14
star
54

ezprestapiprovider

PHP
13
star
55

ezscriptmonitor

eZ Publish extension that aims to avoid timeout problems and database corruption by moving long running processes from the GUI to the background.
PHP
13
star
56

ezevent

PHP
12
star
57

ezdemo

eZ Publish demo design, released with eZ Publish Etna (4.7), for 5.x see also corresponding DemoBundle
Smarty
11
star
58

ezplatform-ee-installer

PHP
11
star
59

ezstyleeditor

JavaScript
10
star
60

ezpublish-legacy-installer

A custom composer installer for eZ Publish legacy extensions
PHP
10
star
61

ezdemo-ls-extension

[READ-ONLY] Subtree split from ezsystems/ezdemo, for use via composer
Smarty
9
star
62

DemoBundle

DemoBundle represent a front end web site on eZ Publish 5, for newer examples for eZ Platform see ezplatform-demo.
SQLPL
9
star
63

ezflow-ls-extension

[READ-ONLY] Subtree split from ezsystems/ezflow, for use via composer
PHP
9
star
64

ezgmaplocation-ls-extension

[READ-ONLY] Subtree split from ezsystems/ezgmaplocation, for use via composer
PHP
9
star
65

ezsi

PHP
9
star
66

ezplatform-rest

Repository containing eZ Platform REST API.
PHP
9
star
67

ezplatform-query-fieldtype

eZ Platform field type that lists content items based by querying the repository
PHP
8
star
68

ezformtoken

PHP
8
star
69

ezplatform-content-forms

PHP
7
star
70

ezplatform-com

eZPlatform.com - The eZ Systems Developer Hub for the Open Source PHP CMS eZ Platform
PHP
7
star
71

ezoracle

PHP
7
star
72

ezplatform-automated-translation

PHP
6
star
73

ez-js-rest-client

Javascript REST client for eZ Platform RESTv2 API, mimics PHP API found in eZ Platform.
JavaScript
6
star
74

ezstarrating-ls-extension

[READ-ONLY] Subtree split from ezsystems/ezstarrating, for use via composer
PHP
6
star
75

ezwt-ls-extension

[READ-ONLY] Subtree split from ezsystems/ezwt, for use via composer
Smarty
6
star
76

ezcommerce

Fork of the "ezplatform-ee" meta repository, contains changes to composer.json, AppKernel.php, src and config necessary to enable eZ Commerce features
Shell
6
star
77

CommentsBundle

Comment bundle for eZ Platform integrating with Disqus & Facebook and allowing custom integrations
PHP
5
star
78

QueryBuilderBundle

Proof of concept Query builder bundle, fluent API use of eZ Platform
PHP
5
star
79

EzSystemsShareButtonsBundle

This bundle adds social share buttons into Symfony applications
PHP
5
star
80

content-on-the-fly-prototype-bundle

Platform UI Content on the Fly feature
JavaScript
5
star
81

ezplatform-search

PHP
4
star
82

TweetFieldTypeBundle

Tweet FieldType for the eZ Platform FieldType tutorial
PHP
4
star
83

ezplatform-drawio-fieldtype

PHP
4
star
84

ezsystems.github.io

Contains UI/Style guideline and generated api documentation for eZ Platform frontend components.
HTML
4
star
85

EzSystemsRecommendationBundle

Integration of YooChoose, a content recommendation solution, into eZ Platform
PHP
4
star
86

specs

CLOSED, moved to another repo. Please visit:
4
star
87

ezplatform-ee-beginner-tutorial

Resources for the eZ Studio Beginner Tutorial
HTML
3
star
88

ezphttprequest

PHP
3
star
89

ezpublish-api

[READ ONLY] Subtree split of the eZ Publish 5 (ezsystems/ezpublish-kernel) API interfaces and domain objects
PHP
3
star
90

ezplatform-rawhtml-richtext-tag

[UNSUPPORTED] Implementation of a rawhtml custom tag, a replacement for eZ Publish Legacy's literal type=html block.
PHP
2
star
91

ezsc2015-beginner-tutorial

HTML
2
star
92

EzSystemsPrivacyCookieBundle

This bundle adds privacy cookie banner into Symfony applications
PHP
2
star
93

ezplatform-multi-file-upload

JavaScript
2
star
94

ezplatform-ee-assets

Shell
2
star
95

ExtendingPlatformUIConferenceBundle

JavaScript
2
star
96

ezpostgresqlcluster

eZ Publish PostgreSQL cluster implementation
PHP
2
star
97

ezpersonalization-documentation

Source for the eZ Services documentation for eZ Platform, an open source CMS based on the Symfony Full Stack Framework in PHP.
HTML
2
star
98

PlatformUIAssetsBundle

Repo for containing assets for PlatformUIBundle, branches will only contain meta files and config, tags will contain the assets.
Shell
2
star
99

ezplatform-ee-demo

Fork of the "ezplatform-ee" meta repository, contains changes to composer.json, AppKernel.php and config necessary to enable eZ Platform Enterprise Edition Demo.
PHP
2
star
100

hybrid-platform-ui

PHP
1
star