 |
|
Innovation award
 Nominee: 9x
Winner: 1x |
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);
|
|
| Name: |
TypeSafeStruct |
| Base name: |
struct |
| Description: |
Manipulate type safe objects |
| Version: |
0.1 |
| PHP version: |
5.0 |
| License: |
GNU General Public License (GPL) |
| All time users: |
219 users |
| All time rank: |
6623 |
| Week users: |
0 users |
| Week rank: |
2018  |
| |
|
 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 |
| 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.

If you know an application of this package, send a message to the
author to add a link here.
| Link |
Description |
| POPO |
Php Objects by Jan Kneschke |
| |
Files |
|
|