[Mono-list] Mapping PHP and Mono

Paolo Molaro lupus@ximian.com
Mon, 3 Feb 2003 11:30:11 +0100


On 02/01/03 Sterling Hughes wrote:
> 1) Property accesses are handled as overloaded methods.  If you prefix a
> method with "get", a property access is assumed.  So
> 
> $obj = new mono("mystupidtest.test1");
> $obj->getTestVariable(); // <- This will perform a property access on
> TestVariable
> 
> The same applies to setting properties:
> 
> $obj->setTestVariable("Some Value");
> 
> 2) Field accesses are equivalent to property accesses.  Meaning you can
> do:
> 
> $obj = new mono("mystupidtest.test1");
> $obj->testField = 10;
> 
> And it will be automagically set/getted.
> 
> Does this design seem like a good thing?

It depends on the language. In C# property access looks like a fields
access even if under the hood it's a method call. So, what the
syntax looks like in php depends on how naturally the property access maps
to field access or to a method call for php programmers.

> Second, Are there anythings to consider when mapping objects to base
> types?  Ie, mapping a mono integer (which is an object) to a PHP

In the CLR there are many different integer types, int, byte, sbyte,
uint, long. They are not objects, though they can be boxed into objects.

> integer.  Does anyone have opinions as to whether these should be
> directly mapped (faster) or if everything, including base types should
> be objects, and then set's and get's would be overloaded (maps to the ms
> way, but is slow as all hell).  Are there anythings to consider so the
> performance degradation would be worthwhile?

Consider that if the accessor is a simple field load and it's not virtual, 
the jit will inline the method.
Using the bare integers of having a PHPInt object that encapsulates the
value depends a lot on what 'method' calls are possible on a php integer
variable or if the same variable can hold an integer and/or a string
like in perl and how much work you want to do in the mapping:-)

lupus

-- 
-----------------------------------------------------------------
lupus@debian.org                                     debian/rules
lupus@ximian.com                             Monkeys do it better