Message-ID: <1319809449.3274.1485852579658.JavaMail.confluence@ip-10-127-227-164> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_3273_1678998046.1485852579657" ------=_Part_3273_1678998046.1485852579657 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html
The Value class of a Field Type is by design very simple. It is = meant to be stateless, and as lightweight as possible. Therefore, this clas= s must contain as little logic as possible, as this is the responsibility o= f the Type class .
The Value will at least contain:
public properties, used to store the actual data
an implementation of the __toString()
method (required =
by the Value interface we inherit from)
By default, the constructor from FieldType\Value
will be =
used, and allows you to pass a hash of property/value pairs. In our example=
, we can see that we can override it as well if we want.
The Tweet Field Type is going to store three things:
The tweet=E2=80=99s URL
The tweet=E2=80=99s author URL
The body, as an HTML string
At this point, we don=E2=80=99t care where those are stored. All we care= about is what we want our Field Type to expose as an API. We end up with t= he following properties:
/** * 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
interfac=
e is the __toString()
method. Let=E2=80=99s say that ours wi=
ll return the tweet=E2=80=99s URL:
public function __toString() { return $this->url; }=20