PHP Classes
Icontem

Class: TypeSafeStruct


  Search   All class groups All class groups   Latest entries Latest entries   Top 10 charts Top 10 charts   Newsletter Newsletter   Blog Blog   Forums Forums   Help FAQ Help FAQ  
  Login   Register  
Recommend this page to a friend! ReTweet ReTweet Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Tom Schaefer  >  TypeSafeStruct  >  Download  >  Support forum Support forum  >  Blog Blog  >  RSS 1.0 feed RSS 2.0 feed Latest changes  
Name: TypeSafeStruct Support forum
Base name: struct
Description: Manipulate type safe objects
Related top rated classes: ,
Version: 0.1
Required PHP version: 5.0
License: GNU General Public License (GPL)
All time users: 169 users
All time rank: 4848
Week users: 1 user
Week rank: 3482
 
  Author   Group folder image Groups   Detailed description  
  Rate classes User ratings   Dependencies   Applications   Related links   Files Files  

Author

Picture of Tom Schaefer
Name: Tom Schaefer <e-mail contact>
Published packages: 24 Browse this author's classes Browse this author's classes
Country: Germany Germany - PHP jobs in Germany
Home page: http://www.query4u.de/tests/samples/
Age: ???
All time rank: 248
Week rank: 49

Innovation Award

PHP Programming Innovation award nominee
April 2009
Number 11
PHP 5 provides type hinting support that allows verifying the types of values passed to class function parameters, but it only supports checking parameters that expect object or array parameters.

This package provides an alternative solution for checking parameters of setter functions for many other types of values. It is based on the name of function that is called.

Manuel Lemos

Groups

Group folder image XML XML parsing and generation View top rated classes
Group folder image PHP 5 Classes using PHP 5 specific features View top rated classes
Group folder image Databases Database management, accessing and searching View top rated classes
Group folder image Data types Modeling and manipulating data types View top rated classes

Detailed description

A Case Study for getting PHP type safe.

This package can be used to manipulate type safe objects in a way that works with PHP caching extensions.

It provides base classes that can check whether the types of the values to assign variables of implementation subclasses are of the expected types.

The expected types are determined by the prefixes of private variables, so it works well even when using PHP compiled code cached extensions.

An additional class can serialize objects as XML documents or to insert them in database tables.


The goal of this class is not to replace ORM or other db classes. It shall replace
the stdClass when using mysql_fetch_object.

It returns a value type object for each column. There are a number of value types:
+ TString
+ TNumber
+ TBit
+ TEnum
+ TLob
+ TTimestamp
These value types have specific sets of methods. i.e. TTimestamp value types are working
internally with the php native DateTime class.
TString has a bunch of methods to manipulate the output string.

All value type method are fluently designed.





v0.2:
- introducing ValueType Objects:
+ TString (published)
+ TNumber (published)
+ TBit (published)
+ TEnum (published)
+ TLob (published)
+ TTimestamp (published)

C# like data objects.


SAMPLE:

class Model_City extends TypeSafeStruct {

private $int_ID;
private $char_Name;
private $char_CountryCode;
private $char_District;
private $int_Population;

public function __set($key,$value) {
$type = $this->getPropertyType($key);
if($type and $this->hasProperty($key)) {
$this->{$type."_".$key} = $value;
} else {
$this->{"set".$key}($value);
}
}

public function __get($key) {
return $this->{$key};
}

}


$link = mysql_connect('localhost', 'root', 'pwd');
if (!$link) die('no connection established: ' . mysql_error());

$db = mysql_select_db('dbase', $link);
if (!$db)die ('no able to use db: ' . mysql_error());

$result = mysql_query("SELECT * FROM City LIMIT 4;");
if(!$result) die("no result set: ". mysql_error());

while($row=mysql_fetch_object($result, "Model_City")){
echo $row->getName()->toUpper()->padRight(15);
echo $row->getCountryCode()->toUpper()->padRight(5);
echo $row->getDistrict()->toUpper()->padRight(15);
echo $row->getPopulation()->format(0,",",".");
echo "\n";
}

mysql_close($link);

User ratings

There are not enough user ratings to display for this class.

Packages needed by this class

Class Dependency Why it is needed
TString
Optional
since v0.2 TSS will support ValueType Objects. TString is the first kind of value type.
TNumber
Optional
Value Type Object
TBit
Optional
ValueTypeObject

Applications that use this class

No application links were specified for this class.
Add link image If you know an application of this package, send a message to the author to add a link here.

Related links

Link Description
POPO Php Objects by Jan Kneschke

Files

File Role Description
Accessible without login Plain text file TypedStruct.class.php Class Base class
Accessible without login Plain text file SerializeTypedStruct.class.php Class Sample Base class extension => serializes an object's properties
Accessible without login Plain text file TypeSafeStruct.class.php Class Base class extension
Accessible without login Plain text file sample.php Example as the name says
Accessible without login Plain text file baseobject_country.php Example persistent type safe model object operating with mysql sample world db
Files folder image ver0.2
  Plain text file sample.php Example sample console script running sql select
  Plain text file sampledate.php Example Working with timestamps
  Plain text file TBit.class.php Class ValueType Object
  Plain text file TEnum.class.php Class ValueType Object
  Plain text file TLob.class.php Class ValueType Object
  Plain text file TNumber.class.php Class ValueType Object
  Plain text file TString.class.php Class ValueType Object
  Plain text file TTimestamp.class.php Class ValueType Object
  Plain text file TypedStruct.class.php Class Typed Struct
  Plain text file TypeSafeStruct.class.php Class Type Safe Struct
Accessible without login Plain text file readme.txt Doc. readme
Download all files: struct.tar.gz struct.zip
NOTICE: if you are using a download manager program like 'GetRight', please Login before trying to download this archive.

 
  Advertise on this site Advertise on this site   Site map Site map   Statistics Statistics   Site tips Site tips   Privacy policy Privacy policy   Contact Contact  

For more information send a message to :
info at phpclasses dot org.
Copyright (c) Icontem 1999-2009 PHP Classes - PHP Class Scripts
  PHP Book Reviews - Reviews of books and other products