Skip to end of metadata
Go to start of metadata

<ac:macro ac:name="unmigrated-inline-wiki-markup"><ac:plain-text-body><![CDATA[

<ac:macro ac:name="unmigrated-inline-wiki-markup"><ac:plain-text-body><![CDATA[

Zend Framework: Zend_Font Component Proposal

Proposed Component Name Zend_Font
Developer Notes
Proposers Karol Babioch <>
Revision 1.0 - 05/03/2008 - First proposal submitted
1.1 - 05/11/2008 - Updated proposal & Ready-For-Review (wiki revision: 22)

Table of Contents

1. Overview

Zend_Font should make it possible to offer a general interface to work with fonts. On the one hand there should be the possibility to set up various things concerning the font, on the other hand these settings should be accessible for the actual component.

Basically it is a component, which stores some common attributes of fonts and returns them to another component, which has to work with this font.

This proposal should avoid that each component using fonts makes its own implementation for fonts, e.g. Zend_Pdf has an implementation already, but a more generic access should be offered to all Zend Framework components.

Zend_Font tries to offer this generic access.

2. References

3. Component Requirements, Constraints, and Acceptance Criteria

  • Zend_Font will offer a general interface to work with fonts.
  • Zend_Font will offer the possibility to set all attributes concerning fonts.
  • Zend_Font will store all attributes, which were set before.
  • Zend_Font will offer the possibility to return all attributes concerning fonts.
  • Zend_Font will avoid own implementation of each component which works with fonts.
  • Zend_Font will offer a fluent interface for easy-to-use api.
  • Zend_Font will not draw/write/render any text, the rendering proccess will still be the task of the actual component.

4. Dependencies on Other Framework Components

  • Zend_Exception

5. Theory of Operation

Creating a Zend_Font object is quite simple, just like creating a "normal" object. After a Zend_Font object is created, you can set up all attributes by calling the accordant set* method.

Then it is the task of the actual component to take these Zend_Font object, get the attributes through the appropriate get* methods and to draw/write/render the text.

The component which wants to use Zend_Font could provide a method "addFont" which will take a Zend_Font object.

It will be part of the actual component what attributes it can/will support and what it does with the not supported ones, e.g. to throw an exception if there are attributes the component itself does not (want to) support.

6. Milestones / Tasks

  • Milestone 1: Proposal finished
  • Milestone 2: Component approval
  • Milestone 3: Working prototype
  • Milestone 4: Prototype checked into the incubator
  • Milestone 5: Unit tests
  • Milestone 6: Documentation

7. Class Index

  • Zend_Font
  • Zend_Font_Exception

8. Use Cases

9. Class Skeletons



font font Delete
zend_font zend_font Delete
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.
  1. May 14, 2008

    <p>Karol, all placeholder proposals are going to the 'archived' section. Please feel free to resurrect this after adding more content.</p>


  2. Nov 05, 2008


    <p>I just updated this proposal and moved it into the "Ready-for-Review" section.</p>

    <p>So now I'm glad about every comment, wish and idea you give me <ac:emoticon ac:name="wink" />.</p>

    <p>Best regards<br />
    Karol Babioch</p>

  3. Nov 22, 2008


    <p>I'm still open to any criticism, else I will proceed with the lifecycle.</p>

    <p>Best regards<br />
    Karol Babioch</p>

  4. Jan 27, 2009

    <p>did you add any feature for text placement direction.<br />
    Right to left and Left to right.
    <a class="external-link" href=""></a></p>

    <p>good luck.</p>

  5. Nov 01, 2009

    <p>If I understand correctly this is nothing more than just a container to store some settings relevant to fonts. If this is the case I would like to advise against implementation of this proposal.</p>