Sådan benyttes komponenten FieldFactory klassen
Først skal du inkludere den fil der beskriver komponenten, som en klasse fil
<? require_once(HTML_PACKAGE_PATH.'/FieldFactory.php'); ?>
Dernæst kan du enten benytte komponenten som et taglib (statiske metoder):
<? FieldFactory::display($param1, $param2, $param3, ...); ?>
eller du kan lave en instance af komponenten og benytte metoderne direkte:
<? $object = new FieldFactory($param1, $param2, $param3, ...); print $object->getHtml(); ?>
Sådan vises komponenten FieldFactory klassen
numFields=0
numrows=0
Den fulde PHP kildekode for FieldFactory klassen
<?php/** * @package dto * @see HTML_DTO_UTIL_PATH.'/FieldFactory.php' * @copyright (c) http://Finn-Rasmussen.com * @license http://Finn-Rasmussen.com/license/ myPHP License conditions * @author http://Finn-Rasmussen.com * @version 1.11 * @since 27-nov-2009 *//** * The required files */require_once(HTML_DTO_UTIL_PATH.'/Field.php');require_once(HTML_DTO_UTIL_PATH.'/FieldName.php');require_once(HTML_DTO_UTIL_PATH.'/FieldLen.php');require_once(HTML_DTO_UTIL_PATH.'/FieldType.php');require_once(HTML_DTO_UTIL_PATH.'/FieldFlags.php');require_once(HTML_DTO_UTIL_PATH.'/FieldTable.php');require_once(HTML_BASIC_UTIL_PATH.'/Message.php');if (defined('HTML_LOG_UTIL_PATH')) { require_once(HTML_LOG_UTIL_PATH.'/Log.php');}/** * The Field Factory is used to return a complete populated * Field object, from an array of rows and an array of header meta data information. * The purpose of this clas is to simulate the meta information from a database * <code> * Usage: * $rows = array( * array('firstname'=>'Finn', 'lastname'=>'Rasmussen'), * array('firstname'=>'Zita', 'lastname'=>'Christensen'), * ); * * $header = array( * 'firstname'=>array('fieldName'=>'firstname', 'fieldLen'=>100, 'fieldType'=>'', 'fieldFlags'=>'', 'fieldTable'=>''), * 'lastname'=>'array('fieldName'=>'lastname' , 'fieldLen'=>100, 'fieldType'=>'', 'fieldFlags'=>'', 'fieldTable'=>''), * ); * * $default = ""; * * $factory = new FieldFactory(); * $field = $factory->newField($rows, $header, $default); * print $field->getFieldName($rowname); // Use the object * Or * $field = FieldFactory::newField($rows, $header, $default); * print $field->getFieldName($rowname); // Use the object * </code> * @package dto */class FieldFactory { /** * Constructor */ function __construct() { } /** * Return a new Field object fully populated with meta data * @param array $rows The array of rows * @param array $header The array of header meta data * @param array $default The default meta data array * @return Fields The fields object */ public static function newField($rows, $header='', $default='') { $field = new Field(); if (defined('SELECT_FIELD_NAME')) { foreach($rows as $no=>$row) { if (is_array($row)) { foreach($row as $key=>$value) { $field->addFieldName ($key,FieldName::get ($key, $header, $default != '' && is_array($default) ? $default[DATA_READER_FIELD_NAME ] : SELECT_FIELD_NAME)); $field->addFieldLen ($key,FieldLen::get ($key, $header, $default != '' && is_array($default) ? $default[DATA_READER_FIELD_LEN ] : SELECT_FIELD_LEN)); $field->addFieldType ($key,FieldType::get ($key, $header, $default != '' && is_array($default) ? $default[DATA_READER_FIELD_TYPE ] : SELECT_FIELD_TYPE)); $field->addFieldFlags($key,FieldFlags::get($key, $header, $default != '' && is_array($default) ? $default[DATA_READER_FIELD_FLAGS] : SELECT_FIELD_FLAGS)); $field->addFieldTable($key,FieldTable::get($key, $header, $default != '' && is_array($default) ? $default[DATA_READER_FIELD_TABLE] : SELECT_FIELD_TABLE)); } } else { if ($row != '') { $msg = "FieldFactory::newField(rows,header,default), Not an array, found row=".$row; if (defined('HTML_LOG_UTIL_PATH')) { Log::debug($msg, __FILE__, __LINE__); } Message::add($msg, __FILE__, __LINE__); } } } } else {// $msg = "SELECT_FIELD_NAME is undefined";// if (defined('HTML_LOG_UTIL_PATH')) {// Log::debug($msg, __FILE__, __LINE__);// }// Message::add($msg, __FILE__, __LINE__);// if (DOMAIN_NAME == 'localhost') {// die($msg.__FILE__.', Line:'.__LINE__);// } } return $field; } /** * Get the html code * @return String The html code */ function getHtml() { $rows = array(); $datareader = FieldFactory::newField($rows); return $datareader->getHtml(); }}?>
Den fulde HTML kildekode for FieldFactory klassen
<? <p>numFields=0</p> <table border="1" cellpadding="0" cellspacing="2"> <tr> <th>Name</th> <th>Len</th> <th>Type</th> <th>Flags</th> <th>Table</th> </tr> </table> <p>numrows=0</p> ?>
Her er 'klasse metoderne' for FieldFactory klassen:
Her er 'objekt variable' for FieldFactory klassen: