PHPackages                             masev/ezpublish-kernel - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. masev/ezpublish-kernel

ActiveLibrary[Framework](/categories/framework)

masev/ezpublish-kernel
======================

eZ Publish API and kernel. This is the heart of eZ Publish 5.

v2014.07.3(11y ago)09GPL-2.0PHP &gt;=5.3.3

Since Aug 17Pushed 11y ago1 watchersCompare

[ Source](https://github.com/masev/ezpublish-kernel)[ Packagist](https://packagist.org/packages/masev/ezpublish-kernel)[ Docs](http://share.ez.no)[ RSS](/packages/masev-ezpublish-kernel/feed)WikiDiscussions master Synced yesterday

READMEChangelogDependencies (18)Versions (74)Used By (0)

eZ Publish 5.x Kernel
=====================

[](#ez-publish-5x-kernel)

[![Build Status](https://camo.githubusercontent.com/62fe0c03e624b0b9907d59287470dd62d896c09704cd6582e550098ac2137f0a/68747470733a2f2f7472617669732d63692e6f72672f657a73797374656d732f657a7075626c6973682d6b65726e656c2e706e673f6272616e63683d6d6173746572)](https://travis-ci.org/ezsystems/ezpublish-kernel)

[![SensioLabsInsight](https://camo.githubusercontent.com/8e4e26d92185fac2dde4ab8c3c69d6a3eb4bfc27e92e3f29c9ea9050a5fb01b3/68747470733a2f2f696e73696768742e73656e73696f6c6162732e636f6d2f70726f6a656374732f30383835633063652d346239662d346238392d616139632d6538663966376133313565302f6269672e706e67)](https://insight.sensiolabs.com/projects/0885c0ce-4b9f-4b89-aa9c-e8f9f7a315e0)

Welcome to the new eZ Publish 5.x Kernel, this code repository contains several layers of API's and implementation of them. However it does not contain all parts that make up the eZ Publish 5 install, for the full eZ Publish 5 package including bundles, Legacy Stack, install doc and more; please see our [ezpublish-community](https://github.com/ezsystems/ezpublish-community) repository.

Legacy Stack (LS)
-----------------

[](#legacy-stack-ls)

Legacy Stack: Legacy kernel (4.x) + extensions

eZ Publish 5.x is a bottom up rewrite of eZ Publish, so a conservative approach where taken on backwards compatibility by bundling both Legacy Stack (4.x) and 5.x Stack together in one integrated package (ref ezpublish-community repository above).

In addition to the BC reason, the second reason is that eZ Publish 5.x does not yet provide own UI's, editor and admin gui is for the time being still provided by Legacy Stack.

The legacy integrations are done in many parts of the systems, making it possible to use both kernels in the same request, hence being able to do a smooth transition from existing 4.x installation to 5.x installation going forward.

However for performance reasons we recommend trying to use either legacy with "legacy\_mode" turned on or pure 5.x Stack on a siteaccess case by case basis. This will still make sure cache and other integrations work together (something that is not the case if you point Apache directly to eZ Publish Legacy), but will avoid duplicate lookups ("fallbacks").

5.x Stack
---------

[](#5x-stack)

5.x Stack: 5.x kernel + Bundles (former extensions)

### Bundles

[](#bundles)

The highest level in the eZ Publish 5 architecture are bundles that builds on top of everything bellow, this is where most eZ Publish 5 Bundles will be written. They will exist in separate git repositories, and optionally defined as dependencies in your project composer.json file (see ezpublish-community repository).

### 5.x Kernel

[](#5x-kernel)

#### Kernel Bundles: REST, Core &amp; Legacy

[](#kernel-bundles-rest-core--legacy)

These bundles are important parts of the eZ Publish 5.x kernel.

- Core Bundle: Provide additional features to a standard Symfony2 distribution like multilingual UrlAlias routing, siteaccess matching, permissions and helpers for Public API use.
- Legacy Bundle: Integrations with Legacy kernel, like fallbacks and code reuse across 5.x/Legacy Stack.
- REST Bundle: Integration of REST API to 5.x (Symfony) Stack

You can find these in [eZ/Bundle](eZ/Bundle/) and their lower level parts in:

- [eZ/Publish/Core/REST](eZ/Publish/Core/REST/) *The REST API implementation*
- [eZ/Publish/Core/MVC](eZ/Publish/Core/MVC/) *MVC implementation that integrate with Symfony and Legacy*

#### Public API

[](#public-api)

Public API currently provides access to the Content Repository of eZ Publish, exposing Content, Locations (former Nodes), Sections, Content Types (former Content Classes), User Groups, Users and Roles. It also provides a new clear interface for plugging in custom field types (former Datatypes).

Public API is built on top of a set of SPI's abstracting storage/file/\* functionality. By using Public API your code will be forward compatible to future releases based on enhanced, more scalable and more performant storage engines. It is also fully backwards compatible by using the included "Legacy" storage engine, which stores data in the way legacy kernel is used to finding it.

Important parts of this layer is:

- [eZ/Publish/API](eZ/Publish/API/) *Public API Interfaces*
- [eZ/Publish/Core/Repository](eZ/Publish/Core/Repository/) *Public API Repository implementation*

#### (Private) SPI(Service Provider Interface)

[](#private-spiservice-provider-interface)

Service Provider Interfaces are interfaces that can contain one or several implementations, in some cases Public API will only be able to use one at a time; Persistence (database), IO (file system). In other cases it expects several implementations; FieldTypes (former DataTypes), Limitations (permissions system).

SPI layer is currently considered "private" as it will still undergo changes, it will be made "final" by the time we have a fully working NoSQL implementation of Persistence and scalable IO storage implementation like S3. Meaning you can make your own implementation if you want, but we don't guarantee that it will work across versions.

Currently SPI consists of:

- [eZ/Publish/SPI](eZ/Publish/SPI/) *Service provider interfaces*
- [eZ/Publish/Core/Persistence/Legacy](eZ/Publish/Core/Persistence/Legacy/) *Legacy Storage-Engine (Persistence-handler)*
- [eZ/Publish/Core/IO](eZ/Publish/Core/IO/) *IO (file) Handlers; Legacy, Dispatcher and FileSystem (for integration tests)*

How to run tests
----------------

[](#how-to-run-tests)

### Dependencies

[](#dependencies)

- **PHP 5 Modules**: php5\_intl php5\_xsl php5\_gd php5\_sqlite
- **Database**: sqlite3

You can also run tests (slower) on mysql or postgres, see [.travis.yml](.travis.yml) for how.

### Installation

[](#installation)

- Clone this repo `git clone https://github.com/ezsystems/ezpublish-kernel.git`
- Enter directory `cd ezpublish-kernel`
- Get [Composer](http://getcomposer.org/download/) using curl `curl -s http://getcomposer.org/installer | php`
- Install dev dependencies: `php composer.phar install --prefer-dist --dev`
- Copy config.php-DEVELOPMENT `cp config.php-DEVELOPMENT config.php`
- Execute `phpunit -vc phpunit*.xml` with one of:
    - phpunit.xml *unit test xml configuration*
    - phpunit-integration-legacy.xml *integration test xml configuration for running integration tests with Legacy Storage engine*

This should produce similar result as [travis](https://travis-ci.org/ezsystems/ezpublish-kernel). If you don't double check [.travis.yml](.travis.yml) for up-to-date info on how travis is setup.

Issue tracker
-------------

[](#issue-tracker)

Submitting bugs, improvements and stories is possible on

Contributing
------------

[](#contributing)

eZ Publish 5.x is a fully open source, community-driven project, and code contributions are simply done via github pull requests.

Short:

- Remember to first create a issue in our issue tracker and refer to it in commits and pull requests headers, example: "Fix EZP-20104: ContentController should return error status when content is not found" or "Implement EZP-201xx: Add support for X in Y"
- If you want to contribute implementation specification proposals, place them in [doc/](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 commit should not contain code changes at the same time as doing coding standards/whitespace/typo fixes.
- TDD: Write/Change the test(s) for the change you do and commit it before you do the actual code change.
    - If a bug affects Public API, write or enhance a integration test to make sure the bug is covered.
    - Unit tests should only use mocks/stubs and never test the full stack like integrations tests does.
- Please test/check your commits before pushing even if we have automated checks in place on pull requests:
    - Run unit tests and integration test before commits
    - Make sure you follow our [coding standards](https://github.com/ezsystems/ezcs)

For further information please have a look at the [related guidance page](http://share.ez.no/get-involved/develop). You will, amongst other, learn how to make pull-requests. More on this here : ["How to contribute to eZ Publish using GIT"](http://share.ez.no/learn/ez-publish/how-to-contribute-to-ez-publish-using-git).

Discussing/Exchanging
---------------------

[](#discussingexchanging)

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

Copyright &amp; license
-----------------------

[](#copyright--license)

Copyright eZ Systems AS, for copyright and license details see provided LICENSE file.

###  Health Score

31

—

LowBetter than 68% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity4

Limited adoption so far

Community20

Small or concentrated contributor base

Maturity73

Established project with proven stability

 Bus Factor3

3 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~15 days

Recently: every ~3 days

Total

36

Last Release

4230d ago

Major Versions

5.1.0-beta2 → v2013.04.02013-04-30

5.1.0-stable → v2013.05.02013-06-07

v5.2.0-beta1 → v2013.09.02013-10-01

5.2.0 → v2013.11.02013-11-26

v2013.11.1 → v2014.01.12014-01-28

PHP version history (2 changes)5.0.0PHP &gt;=5.3.3

v2014.07.0PHP &gt;=5.4.4

### Community

Maintainers

![](https://www.gravatar.com/avatar/3c4c3672a33bd9fcf44cdb239d9ae5ba2d71d103c7a55ffd222c9dd41599d3e4?d=identicon)[masev](/maintainers/masev)

---

Top Contributors

[![pspanja](https://avatars.githubusercontent.com/u/1135425?v=4)](https://github.com/pspanja "pspanja (1884 commits)")[![lolautruche](https://avatars.githubusercontent.com/u/313528?v=4)](https://github.com/lolautruche "lolautruche (1363 commits)")[![tobyS](https://avatars.githubusercontent.com/u/187140?v=4)](https://github.com/tobyS "tobyS (1231 commits)")[![kore](https://avatars.githubusercontent.com/u/154398?v=4)](https://github.com/kore "kore (870 commits)")[![patrickallaert](https://avatars.githubusercontent.com/u/195277?v=4)](https://github.com/patrickallaert "patrickallaert (856 commits)")[![emodric](https://avatars.githubusercontent.com/u/362286?v=4)](https://github.com/emodric "emodric (733 commits)")[![manuelpichler](https://avatars.githubusercontent.com/u/58714?v=4)](https://github.com/manuelpichler "manuelpichler (403 commits)")[![andrerom](https://avatars.githubusercontent.com/u/289757?v=4)](https://github.com/andrerom "andrerom (302 commits)")[![dpobel](https://avatars.githubusercontent.com/u/305563?v=4)](https://github.com/dpobel "dpobel (218 commits)")[![oms](https://avatars.githubusercontent.com/u/93066?v=4)](https://github.com/oms "oms (136 commits)")[![mloureiro](https://avatars.githubusercontent.com/u/3427665?v=4)](https://github.com/mloureiro "mloureiro (72 commits)")[![beberlei](https://avatars.githubusercontent.com/u/26936?v=4)](https://github.com/beberlei "beberlei (44 commits)")[![bdunogier](https://avatars.githubusercontent.com/u/235928?v=4)](https://github.com/bdunogier "bdunogier (42 commits)")[![yannickroger](https://avatars.githubusercontent.com/u/4035241?v=4)](https://github.com/yannickroger "yannickroger (32 commits)")[![crevillo](https://avatars.githubusercontent.com/u/306215?v=4)](https://github.com/crevillo "crevillo (26 commits)")[![StephaneDiot](https://avatars.githubusercontent.com/u/5558766?v=4)](https://github.com/StephaneDiot "StephaneDiot (12 commits)")[![pborreli](https://avatars.githubusercontent.com/u/77759?v=4)](https://github.com/pborreli "pborreli (11 commits)")[![bchoquet-heliopsis](https://avatars.githubusercontent.com/u/465757?v=4)](https://github.com/bchoquet-heliopsis "bchoquet-heliopsis (9 commits)")[![fdob](https://avatars.githubusercontent.com/u/1169938?v=4)](https://github.com/fdob "fdob (6 commits)")[![joekepley](https://avatars.githubusercontent.com/u/29961?v=4)](https://github.com/joekepley "joekepley (6 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/masev-ezpublish-kernel/health.svg)

```
[![Health](https://phpackages.com/badges/masev-ezpublish-kernel/health.svg)](https://phpackages.com/packages/masev-ezpublish-kernel)
```

###  Alternatives

[ezsystems/ezpublish-kernel

Kernel used by ezsystems/ezplatform and derivatives. Provides the Content Repository, its APIs, and the application's Symfony framework integration.

163579.5k141](/packages/ezsystems-ezpublish-kernel)[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.3M152](/packages/sulu-sulu)[contao/core-bundle

Contao Open Source CMS

1231.6M2.4k](/packages/contao-core-bundle)[contao/manager-bundle

Provides the Contao Managed Edition

181.3M61](/packages/contao-manager-bundle)[ezsystems/ezplatform-kernel

Kernel used by ezsystems/ezplatform and derivatives. Provides the Content Repository, its APIs, and the application's Symfony framework integration.

14238.6k78](/packages/ezsystems-ezplatform-kernel)[open-dxp/opendxp

Content &amp; Product Management Framework (CMS/PIM)

7310.3k29](/packages/open-dxp-opendxp)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
