Message-ID: <458078797.3520.1485853483057.JavaMail.confluence@ip-10-127-227-164> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_3519_1421769836.1485853483057" ------=_Part_3519_1421769836.1485853483057 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html Implementing the Tweet\Value class

Implementing the Tweet\Value class

The Value class of a FieldTyp= e is by design very simple. It is meant to be stateless, and as lightweight= as possible. Therefore, this class must contain as little logic as possibl= e, as this is the Type class responsibility.

The Value will at least contain:

By default, the constructor from FieldType\Value will be used, and allows you to pass a hash of propert= y / value pairs. In our example, we can see that we can override it as well= if we want.

The Tweet FieldType is going to store= three things:

At this point, we don=E2=80=99t care = where those are stored. All we care about is what we want our FieldType to = expose as an API. We end up with the following properties:

eZ/FieldType/Tweet/Value.php
=20
/**
* Tweet URL on twitter.com (http://twitter.com/UserName/status/id).
* @var string
*/
public $url;

=20
/**
* Author's tweet URL (http://twitter.com/UserName)
* @var string
*/
public $authorUrl;

=20
/**
* The tweet's embed HTML
* @var string
*/
public $contents;
=20

The only thing left to honor the FieldType\Value interface is the __toString() method. Let=E2=80=99s say that ours will return the tweet=E2=80= =99s URL:

eZ/FieldType/Tweet/Value.php
=20
public function __toString()
{
   return $this->url;
}
=20
------=_Part_3519_1421769836.1485853483057--