ECK 3.x: What's new with the Entity Construction Kit?

Speakers: 

A little background

The entity system was created in Drupal 7 for the purpose of adding fields to all things, but some of us saw the simplicity of the new generalizations as an opportunity to build upon it a Utopian content modeling system for Drupal.

But aren’t nodes with the power of fields good enough? I am sure that Drupal’s content modeling capabilities (for non-developers) have been a major factor in Drupal’s continuous growth, and in many ways Drupal is ahead of the curve compare to other CMSs, but that does not mean that we should stand still instead of honing our advantage.

There are redundancies, lack of flexibility, very little helpful structures and bloat in our current approach, and the “Entity Construction Kit (ECK)” has been a great playground to explore how to improve our data modeling capabilities.

Currently ECK in its most stable version 7.x-2.x exposes many of the capabilities of the entity system through a user interface allowing us to create entity types, and add properties, bundles and fields to them. It also allows users to define reusable pieces of logic (behaviors) that can be attached/detached to and from any property.

Behind all of the capabilities that the UI offers, we also make an attempt at developing a useful framework for developers to take advantage of the entity system with ease.

ECK 2.x has been great, but it was mostly a learning opportunity, and in 3.x we are trying to take all of the learned lessons to construct a more robust, and powerful system.

What will we cover?

In this session I would like to introduce ECK to all who have not had a chance to play with the system through a quick demo, but I am hoping to spend most of the time highlighting many of the interesting things that we are doing in 3.x:

Taking abstractions to the extreme

In 2.x we had lots of code, as ECK was dealing with many different types of things (entity types, bundles, properties, behaviors, entities, etc). In 3.x we looked to unify all things, and to architect a system that was flexible enough to allow all objects to be treated in the same way through the same code.

Also, in 3.x we wanted to bring properties to the forefront of the content modeling world by making them as, if not more, powerful than fields. So we needed widgets and formatters for properties on top of other abstraction like “property types” to encapsulate validation, etc. Well in the spirit of “extreme abstraction” we wanted these widgets, formatters, and everything else to be useful not only to entities, but to any other data-structure that could benefit from it. Do you want to validate some data in some random array? Tell us what your data looks like, and ECK will validate it, display, or produce a form for you, just as if it was an entity.

Finally, regarding abstraction, we completely abstracted out the concept of an interface, so that the core ECK system is completely independent on how a user will interact with it. ECK 3.x will have 2 fully functional interfaces the well known web interface and a drush interface.

Permissions

In 2.x, we wanted a very granular permissions system, but Drupals current approach is not practical. In 3.x we have created a permissions system that is independent of Drupals permissions using a hierarchical approach.

And much more...

We are just trying to build a platform, but ultimately ECK will become what people would like it to become, so come help us shape it.

Schedule info
Experience level: 
Intermediate
Drupal Version: 
Drupal 7.x