<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_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.Zend Framework: Zend_Font Component Proposal
Proposed Component Name
Zend_Font
Developer Notes
http://framework.zend.com/wiki/display/ZFDEV/Zend_Font
Proposers
Karol Babioch <karol@babioch.de>
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
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
]]></ac:plain-text-body></ac:macro>]]></ac:plain-text-body></ac:macro>
5 Comments
comments.show.hideMay 14, 2008
Wil Sinclair
<p>Karol, all placeholder proposals are going to the 'archived' section. Please feel free to resurrect this after adding more content.</p>
<p>,Wil</p>
Nov 05, 2008
Karol Babioch
<p>Hi,</p>
<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>
Nov 22, 2008
Karol Babioch
<p>Hey,</p>
<p>I'm still open to any criticism, else I will proceed with the lifecycle.</p>
<p>Best regards<br />
Karol Babioch</p>
Jan 27, 2009
Muhammad Hussein Fattahizadeh
<p>did you add any feature for text placement direction.<br />
Right to left and Left to right.
<a class="external-link" href="http://www.i18nguy.com/markup/right-to-left.html">http://www.i18nguy.com/markup/right-to-left.html</a></p>
<p>good luck.</p>
Nov 01, 2009
Dolf Schimmel (Freeaqingme)
<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>