Shrike,
I like your sugggestions and I thought about adding a 'from array' constructor, like your __construct(). In fact, its a superior solution. As for public, private, etc, I didn't care :eek: .
Typically the class that is calling bless() is rather intimately related to the object anyway. For example, data-access layer class that talks to DB or whatever datasource is and has to instantiate objects in the domain layer:
$user_gateway = new UserGateway( $db_connection, $user_table );
$user = $user_gateway -> find( $id );
Typically the gateway does a query on a db, gets a row then has to instantiate the object---thats where I figured I could use bless($row, 'User').
construct() is better especially since it doesn't depend on how PHP serializes objects, which I suspect could change in the future. Also I suspect construct() would work fine for composite objects.
Thanks!