Annotation of embedaddon/php/ext/com_dotnet/README, revision 1.1

1.1     ! misho       1: This is the new php5 COM module.
        !             2: 
        !             3: It is not 100% backwards compatible with PHP 4 ext/com, but you should not miss
        !             4: the "features" that have not been retained.
        !             5: 
        !             6: This module exposes 3 classes: variant, com and dotnet(*).
        !             7: com and dotnet classes are descendants of the variant class; the only
        !             8: difference between the three are their constructors.  Once instantiated, the
        !             9: module doesn't make a distinction between them.
        !            10: 
        !            11: COM errrors are mapped to exceptions; you should protect your COM code using
        !            12: the try..catch construct if you want to be able to handle error conditions.
        !            13: 
        !            14: Be warned that due to the way the ZE2 currently works, exceptions are only
        !            15: "armed" at the time they are detected, but do not "detonate" until the end of
        !            16: the statement.  So, code like this:
        !            17: 
        !            18:   $obj->foo[43]->bar();
        !            19: 
        !            20: Where the foo[43] access triggers an exception will continue to call the bar()
        !            21: method on a null object and cause a fatal php error.
        !            22: 
        !            23: Default properties and array access:
        !            24: 
        !            25: $obj = new COM("...");
        !            26: $obj[1]->foo();
        !            27: 
        !            28: The code above will use the type information for the object to determine its
        !            29: default property and then access it.  In PHP 4, it was hard-coded to use the
        !            30: "Items" member, which was wrong.
        !            31: 
        !            32: The default property will also be used by the casting support to determine the
        !            33: value for the object.
        !            34: 
        !            35: Variants:
        !            36: 
        !            37: This implementation of COM takes a simpler approach than the PHP 4 version;
        !            38: we only map a few native types to COM and vice-versa, leaving the more complex
        !            39: things as variants.  This allows greater consistency of data when passing
        !            40: parameters to and from COM objects (no data will be lost).  In addition, a
        !            41: large number of the variant API has been mapped to PHP space so that you can
        !            42: use it for working with the special variant decimal, currency and date time
        !            43: types.  This could be used as a replacement for the bcmath extension, for
        !            44: example.
        !            45: 
        !            46: You can use the new object casting hook to for a php-native representation of
        !            47: a variant object:
        !            48: 
        !            49: $a = new variant(4);
        !            50: $b = new variant(6);
        !            51: $c = variant_add($a, $b);
        !            52: echo $c; // outputs 10 as a string, instead of Object
        !            53: 
        !            54: Sample Script:
        !            55: 
        !            56: <?php
        !            57: $word = new COM("word.application");
        !            58: print "Loaded Word, version {$word->Version}\n"; 
        !            59: $word->Visible = 1; 
        !            60: $word->Documents->Add(); 
        !            61: $word->Selection->TypeText("This is a test..."); 
        !            62: $word->Documents[1]->SaveAs("Useless test.doc"); 
        !            63: $word->Quit(); 
        !            64: ?>
        !            65: 
        !            66: TODO:
        !            67: 
        !            68: - documentation
        !            69: 
        !            70: * dotnet support requires that you have the mscoree.h header from the .net sdk
        !            71:   when you build the module.

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>