2011-06-08 12 views
14

PHP के प्रतिबिंब पदानुक्रम में प्रत्येक ऑब्जेक्ट में एक स्थिर निर्यात विधि है। आप कक्षा का एक स्ट्रिंग प्रतिनिधित्व प्राप्त करने के लिए इसका उपयोग कर सकते हैं। इसPHP में निर्यातित प्रतिबिंब वर्ग का प्रारूप?

$c = new ReflectionClass('Mage_Core_Model_Abstract'); 
ReflectionClass::export($c) 

की तरह कोड कुछ वापस निम्नलिखित

Class [ <internal:Reflection> class ReflectionClass implements Reflector ] { 

    - Constants [3] { 
    Constant [ integer IS_IMPLICIT_ABSTRACT ] { 16 } 
    Constant [ integer IS_EXPLICIT_ABSTRACT ] { 32 } 
    Constant [ integer IS_FINAL ] { 64 } 
    } 

    - Static properties [0] { 
    } 

    - Static methods [1] { 
    Method [ <internal:Reflection> static public method export ] { 

     - Parameters [2] { 
     Parameter #0 [ <required> $argument ] 
     Parameter #1 [ <optional> $return ] 
     } 
    } 
    } 

    - Properties [1] { 
    Property [ <default> public $name ] 
    } 

    - Methods [43] { 
    Method [ <internal:Reflection> final private method __clone ] { 

     - Parameters [0] { 
     } 
    } 

    Method [ <internal:Reflection, ctor> public method __construct ] { 

     - Parameters [1] { 
     Parameter #0 [ <required> $argument ] 
     } 
    } 

    Method [ <internal:Reflection> public method __toString ] { 

     - Parameters [0] { 
     } 
    } 

    Method [ <internal:Reflection> public method getName ] { 

     - Parameters [0] { 
     } 
    } 

    Method [ <internal:Reflection> public method isInternal ] { 

     - Parameters [0] { 
     } 
    } 

    Method [ <internal:Reflection> public method isUserDefined ] { 

     - Parameters [0] { 
     } 
    } 

    Method [ <internal:Reflection> public method isInstantiable ] { 

     - Parameters [0] { 
     } 
    } 

    Method [ <internal:Reflection> public method getFileName ] { 

     - Parameters [0] { 
     } 
    } 

    Method [ <internal:Reflection> public method getStartLine ] { 

     - Parameters [0] { 
     } 
    } 

    Method [ <internal:Reflection> public method getEndLine ] { 

     - Parameters [0] { 
     } 
    } 

    Method [ <internal:Reflection> public method getDocComment ] { 

     - Parameters [0] { 
     } 
    } 

    Method [ <internal:Reflection> public method getConstructor ] { 

     - Parameters [0] { 
     } 
    } 

    Method [ <internal:Reflection> public method hasMethod ] { 

     - Parameters [1] { 
     Parameter #0 [ <required> $name ] 
     } 
    } 

    Method [ <internal:Reflection> public method getMethod ] { 

     - Parameters [1] { 
     Parameter #0 [ <required> $name ] 
     } 
    } 

    Method [ <internal:Reflection> public method getMethods ] { 

     - Parameters [1] { 
     Parameter #0 [ <optional> $filter ] 
     } 
    } 

    Method [ <internal:Reflection> public method hasProperty ] { 

     - Parameters [1] { 
     Parameter #0 [ <required> $name ] 
     } 
    } 

    Method [ <internal:Reflection> public method getProperty ] { 

     - Parameters [1] { 
     Parameter #0 [ <required> $name ] 
     } 
    } 

    Method [ <internal:Reflection> public method getProperties ] { 

     - Parameters [1] { 
     Parameter #0 [ <optional> $filter ] 
     } 
    } 

    Method [ <internal:Reflection> public method hasConstant ] { 

     - Parameters [1] { 
     Parameter #0 [ <required> $name ] 
     } 
    } 

    Method [ <internal:Reflection> public method getConstants ] { 

     - Parameters [0] { 
     } 
    } 

    Method [ <internal:Reflection> public method getConstant ] { 

     - Parameters [1] { 
     Parameter #0 [ <required> $name ] 
     } 
    } 

    Method [ <internal:Reflection> public method getInterfaces ] { 

     - Parameters [0] { 
     } 
    } 

    Method [ <internal:Reflection> public method getInterfaceNames ] { 

     - Parameters [0] { 
     } 
    } 

    Method [ <internal:Reflection> public method isInterface ] { 

     - Parameters [0] { 
     } 
    } 

    Method [ <internal:Reflection> public method isAbstract ] { 

     - Parameters [0] { 
     } 
    } 

    Method [ <internal:Reflection> public method isFinal ] { 

     - Parameters [0] { 
     } 
    } 

    Method [ <internal:Reflection> public method getModifiers ] { 

     - Parameters [0] { 
     } 
    } 

    Method [ <internal:Reflection> public method isInstance ] { 

     - Parameters [1] { 
     Parameter #0 [ <required> $object ] 
     } 
    } 

    Method [ <internal:Reflection> public method newInstance ] { 

     - Parameters [1] { 
     Parameter #0 [ <required> $args ] 
     } 
    } 

    Method [ <internal:Reflection> public method newInstanceArgs ] { 

     - Parameters [1] { 
     Parameter #0 [ <optional> array $args ] 
     } 
    } 

    Method [ <internal:Reflection> public method getParentClass ] { 

     - Parameters [0] { 
     } 
    } 

    Method [ <internal:Reflection> public method isSubclassOf ] { 

     - Parameters [1] { 
     Parameter #0 [ <required> $class ] 
     } 
    } 

    Method [ <internal:Reflection> public method getStaticProperties ] { 

     - Parameters [0] { 
     } 
    } 

    Method [ <internal:Reflection> public method getStaticPropertyValue ] { 

     - Parameters [2] { 
     Parameter #0 [ <required> $name ] 
     Parameter #1 [ <optional> $default ] 
     } 
    } 

    Method [ <internal:Reflection> public method setStaticPropertyValue ] { 

     - Parameters [2] { 
     Parameter #0 [ <required> $name ] 
     Parameter #1 [ <required> $value ] 
     } 
    } 

    Method [ <internal:Reflection> public method getDefaultProperties ] { 

     - Parameters [0] { 
     } 
    } 

    Method [ <internal:Reflection> public method isIterateable ] { 

     - Parameters [0] { 
     } 
    } 

    Method [ <internal:Reflection> public method implementsInterface ] { 

     - Parameters [1] { 
     Parameter #0 [ <required> $interface ] 
     } 
    } 

    Method [ <internal:Reflection> public method getExtension ] { 

     - Parameters [0] { 
     } 
    } 

    Method [ <internal:Reflection> public method getExtensionName ] { 

     - Parameters [0] { 
     } 
    } 

    Method [ <internal:Reflection> public method inNamespace ] { 

     - Parameters [0] { 
     } 
    } 

    Method [ <internal:Reflection> public method getNamespaceName ] { 

     - Parameters [0] { 
     } 
    } 

    Method [ <internal:Reflection> public method getShortName ] { 

     - Parameters [0] { 
     } 
    } 
    } 
} 

इस स्वरूप क्या है गूंज होगा? यदि आंतरिक PHP टीम द्वारा मनमाने ढंग से कुछ विकसित किया गया है, या यह एक ज्ञात प्रारूप है जिसे अन्य प्रसिद्ध प्रोग्रामिंग टूल द्वारा पार्स किया जा सकता है?

स्पष्टीकरण के लिए, मुझे पता है कि प्रतिबिंब क्या है और इसका उपयोग कैसे करें। मैं इस बारे में उत्सुक हूं कि यह "निर्यात" प्रारूप है, जो जानबूझकर डिज़ाइन किया गया है लेकिन वैध PHP नहीं है। क्या यह किसी प्रकार का मानक सीएस/प्रोग्रामिंग प्रारूप है, या सिर्फ PHP के लिए कुछ बंद है?

+2

मुझे कोई जानकारी नहीं है, लेकिन मेरी शर्त यह एक आंतरिक आउटपुट प्रारूप होगा। कम से कम मैं मानकीकृत प्रारूप में आउटपुट की अपेक्षा नहीं करता, क्योंकि 'निर्यात'' प्रतिबिंब 'इंटरफ़ेस के लिए' सार 'विधि है। लेकिन शायद यह सिर्फ मुझे है ^^ –

+1

मैं जुर्गन से सहमत हूं, यह कुछ मानकीकृत प्रारूप की तरह दिखता नहीं है। यह सिर्फ PHP कोर टीम उपयोगकर्ता-अनुकूल पठनीय प्रारूप की कल्पना कैसे करता है। –

उत्तर

2

यह प्रारूप इस बात का एक प्रतिनिधित्व है कि ज़ेंड इंजन के पास कक्षा को संग्रहीत करने के बाद संग्रहीत किया जाता है, आप सही हैं कि यह वैध PHP नहीं है।

संबंधित मुद्दे