1 <!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2 <html xmlns=
"http://www.w3.org/1999/xhtml">
4 <meta http-equiv=
"Content-Type" content=
"text/xhtml;charset=UTF-8"/>
5 <meta http-equiv=
"X-UA-Compatible" content=
"IE=9"/>
6 <meta name=
"generator" content=
"Doxygen 1.8.10"/>
7 <title>Property proxy API: src/php_propro_api.h File Reference
</title>
8 <link href=
"tabs.css" rel=
"stylesheet" type=
"text/css"/>
9 <script type=
"text/javascript" src=
"jquery.js"></script>
10 <script type=
"text/javascript" src=
"dynsections.js"></script>
11 <link href=
"navtree.css" rel=
"stylesheet" type=
"text/css"/>
12 <script type=
"text/javascript" src=
"resize.js"></script>
13 <script type=
"text/javascript" src=
"navtreedata.js"></script>
14 <script type=
"text/javascript" src=
"navtree.js"></script>
15 <script type=
"text/javascript">
16 $(document).ready(initResizable);
17 $(window).load(resizeHeight);
19 <link href=
"search/search.css" rel=
"stylesheet" type=
"text/css"/>
20 <script type=
"text/javascript" src=
"search/searchdata.js"></script>
21 <script type=
"text/javascript" src=
"search/search.js"></script>
22 <script type=
"text/javascript">
23 $(document).ready(function() { init_search(); });
25 <link href=
"doxygen.css" rel=
"stylesheet" type=
"text/css" />
28 <div id=
"top"><!-- do not remove this div, it is closed by doxygen! -->
30 <table cellspacing=
"0" cellpadding=
"0">
32 <tr style=
"height: 56px;">
33 <td id=
"projectalign" style=
"padding-left: 0.5em;">
34 <div id=
"projectname">Property proxy API
36 <div id=
"projectbrief">A facility to manage extension object properties tied to C-struct members
</div>
42 <!-- end header part -->
43 <!-- Generated by Doxygen 1.8.10 -->
44 <script type=
"text/javascript">
45 var searchBox = new SearchBox(
"searchBox",
"search",false,'Search');
47 <div id=
"navrow1" class=
"tabs">
49 <li><a href=
"index.html"><span>Main
 Page
</span></a></li>
50 <li><a href=
"pages.html"><span>Related
 Pages
</span></a></li>
51 <li><a href=
"annotated.html"><span>Data
 Structures
</span></a></li>
52 <li class=
"current"><a href=
"files.html"><span>Files
</span></a></li>
54 <div id=
"MSearchBox" class=
"MSearchBoxInactive">
56 <img id=
"MSearchSelect" src=
"search/mag_sel.png"
57 onmouseover=
"return searchBox.OnSearchSelectShow()"
58 onmouseout=
"return searchBox.OnSearchSelectHide()"
60 <input type=
"text" id=
"MSearchField" value=
"Search" accesskey=
"S"
61 onfocus=
"searchBox.OnSearchFieldFocus(true)"
62 onblur=
"searchBox.OnSearchFieldFocus(false)"
63 onkeyup=
"searchBox.OnSearchFieldChange(event)"/>
64 </span><span class=
"right">
65 <a id=
"MSearchClose" href=
"javascript:searchBox.CloseResultsWindow()"><img id=
"MSearchCloseImg" border=
"0" src=
"search/close.png" alt=
""/></a>
71 <div id=
"navrow2" class=
"tabs2">
73 <li><a href=
"files.html"><span>File
 List
</span></a></li>
74 <li><a href=
"globals.html"><span>Globals
</span></a></li>
78 <div id=
"side-nav" class=
"ui-resizable side-nav-resizable">
80 <div id=
"nav-tree-contents">
81 <div id=
"nav-sync" class=
"sync"></div>
84 <div id=
"splitbar" style=
"-moz-user-select:none;"
85 class=
"ui-resizable-handle">
88 <script type=
"text/javascript">
89 $(document).ready(function(){initNavTree('php__propro__api_8h.html','');});
91 <div id=
"doc-content">
92 <!-- window showing the filter options -->
93 <div id=
"MSearchSelectWindow"
94 onmouseover=
"return searchBox.OnSearchSelectShow()"
95 onmouseout=
"return searchBox.OnSearchSelectHide()"
96 onkeydown=
"return searchBox.OnSearchSelectKey(event)">
99 <!-- iframe showing the search results (closed by default) -->
100 <div id=
"MSearchResultsWindow">
101 <iframe src=
"javascript:void(0)" frameborder=
"0"
102 name=
"MSearchResults" id=
"MSearchResults">
107 <div class=
"summary">
108 <a href=
"#nested-classes">Data Structures
</a> |
109 <a href=
"#typedef-members">Typedefs
</a> |
110 <a href=
"#func-members">Functions
</a> </div>
111 <div class=
"headertitle">
112 <div class=
"title">php_propro_api.h File Reference
</div> </div>
114 <div class=
"contents">
115 <div class=
"textblock"><code>#include
"<a class=
"el" href=
"php__propro_8h_source.html">php_propro.h
</a>"</code><br />
116 </div><div class=
"textblock"><div class=
"dynheader">
117 Include dependency graph for php_propro_api.h:
</div>
118 <div class=
"dyncontent">
119 <div class=
"center"><img src=
"php__propro__api_8h__incl.png" border=
"0" usemap=
"#src_2php__propro__api_8h" alt=
""/></div>
120 <map name=
"src_2php__propro__api_8h" id=
"src_2php__propro__api_8h">
121 <area shape=
"rect" id=
"node2" href=
"php__propro_8h.html" title=
"php_propro.h" alt=
"" coords=
"28,80,125,107"/>
124 </div><div class=
"textblock"><div class=
"dynheader">
125 This graph shows which files directly or indirectly include this file:
</div>
126 <div class=
"dyncontent">
127 <div class=
"center"><img src=
"php__propro__api_8h__dep__incl.png" border=
"0" usemap=
"#src_2php__propro__api_8hdep" alt=
""/></div>
128 <map name=
"src_2php__propro__api_8hdep" id=
"src_2php__propro__api_8hdep">
129 <area shape=
"rect" id=
"node2" href=
"php__propro_8h.html" title=
"php_propro.h" alt=
"" coords=
"28,80,125,107"/>
130 <area shape=
"rect" id=
"node3" href=
"php__propro__api_8c.html" title=
"src/php_propro_api.c" alt=
"" coords=
"149,80,292,107"/>
134 <p><a href=
"php__propro__api_8h_source.html">Go to the source code of this file.
</a></p>
135 <table class=
"memberdecls">
136 <tr class=
"heading"><td colspan=
"2"><h2 class=
"groupheader"><a name=
"nested-classes"></a>
137 Data Structures
</h2></td></tr>
138 <tr class=
"memitem:structphp__property__proxy"><td class=
"memItemLeft" align=
"right" valign=
"top">struct
 </td><td class=
"memItemRight" valign=
"bottom"><a class=
"el" href=
"php__propro__api_8h.html#structphp__property__proxy">php_property_proxy
</a></td></tr>
139 <tr class=
"memdesc:structphp__property__proxy"><td class=
"mdescLeft"> </td><td class=
"mdescRight">The internal property proxy.
<a href=
"php__propro__api_8h.html#structphp__property__proxy">More...
</a><br /></td></tr>
140 <tr class=
"separator:structphp__property__proxy"><td class=
"memSeparator" colspan=
"2"> </td></tr>
141 <tr class=
"memitem:structphp__property__proxy__object"><td class=
"memItemLeft" align=
"right" valign=
"top">struct
 </td><td class=
"memItemRight" valign=
"bottom"><a class=
"el" href=
"php__propro__api_8h.html#structphp__property__proxy__object">php_property_proxy_object
</a></td></tr>
142 <tr class=
"memdesc:structphp__property__proxy__object"><td class=
"mdescLeft"> </td><td class=
"mdescRight">The userland object.
<a href=
"php__propro__api_8h.html#structphp__property__proxy__object">More...
</a><br /></td></tr>
143 <tr class=
"separator:structphp__property__proxy__object"><td class=
"memSeparator" colspan=
"2"> </td></tr>
144 </table><table class=
"memberdecls">
145 <tr class=
"heading"><td colspan=
"2"><h2 class=
"groupheader"><a name=
"typedef-members"></a>
146 Typedefs
</h2></td></tr>
147 <tr class=
"memitem:ac27c374d9d0cf65b52b16ea407df9eac"><td class=
"memItemLeft" align=
"right" valign=
"top">typedef struct
<a class=
"el" href=
"php__propro__api_8h.html#structphp__property__proxy">php_property_proxy
</a> </td><td class=
"memItemRight" valign=
"bottom"><a class=
"el" href=
"php__propro__api_8h.html#ac27c374d9d0cf65b52b16ea407df9eac">php_property_proxy_t
</a></td></tr>
148 <tr class=
"separator:ac27c374d9d0cf65b52b16ea407df9eac"><td class=
"memSeparator" colspan=
"2"> </td></tr>
149 <tr class=
"memitem:aaf59f3ba6014a701909054115f812451"><td class=
"memItemLeft" align=
"right" valign=
"top">typedef struct
<a class=
"el" href=
"php__propro__api_8h.html#structphp__property__proxy__object">php_property_proxy_object
</a> </td><td class=
"memItemRight" valign=
"bottom"><a class=
"el" href=
"php__propro__api_8h.html#aaf59f3ba6014a701909054115f812451">php_property_proxy_object_t
</a></td></tr>
150 <tr class=
"separator:aaf59f3ba6014a701909054115f812451"><td class=
"memSeparator" colspan=
"2"> </td></tr>
151 </table><table class=
"memberdecls">
152 <tr class=
"heading"><td colspan=
"2"><h2 class=
"groupheader"><a name=
"func-members"></a>
153 Functions
</h2></td></tr>
154 <tr class=
"memitem:a83d5ddbca9a25a062eded906182f205c"><td class=
"memItemLeft" align=
"right" valign=
"top"><a class=
"el" href=
"php__propro__api_8h.html#ac27c374d9d0cf65b52b16ea407df9eac">php_property_proxy_t
</a> *
 </td><td class=
"memItemRight" valign=
"bottom"><a class=
"el" href=
"php__propro__api_8h.html#a83d5ddbca9a25a062eded906182f205c">php_property_proxy_init
</a> (zval *container, const char *member_str, size_t member_len)
</td></tr>
155 <tr class=
"memdesc:a83d5ddbca9a25a062eded906182f205c"><td class=
"mdescLeft"> </td><td class=
"mdescRight">Create a property proxy.
<a href=
"#a83d5ddbca9a25a062eded906182f205c">More...
</a><br /></td></tr>
156 <tr class=
"separator:a83d5ddbca9a25a062eded906182f205c"><td class=
"memSeparator" colspan=
"2"> </td></tr>
157 <tr class=
"memitem:ae185a0f79aac26679cf1dd0de2e46f57"><td class=
"memItemLeft" align=
"right" valign=
"top">void
 </td><td class=
"memItemRight" valign=
"bottom"><a class=
"el" href=
"php__propro__api_8h.html#ae185a0f79aac26679cf1dd0de2e46f57">php_property_proxy_free
</a> (
<a class=
"el" href=
"php__propro__api_8h.html#ac27c374d9d0cf65b52b16ea407df9eac">php_property_proxy_t
</a> **proxy)
</td></tr>
158 <tr class=
"memdesc:ae185a0f79aac26679cf1dd0de2e46f57"><td class=
"mdescLeft"> </td><td class=
"mdescRight">Destroy and free a property proxy.
<a href=
"#ae185a0f79aac26679cf1dd0de2e46f57">More...
</a><br /></td></tr>
159 <tr class=
"separator:ae185a0f79aac26679cf1dd0de2e46f57"><td class=
"memSeparator" colspan=
"2"> </td></tr>
160 <tr class=
"memitem:a15c4fce513dc952c575cd72332835aa4"><td class=
"memItemLeft" align=
"right" valign=
"top">zend_class_entry *
 </td><td class=
"memItemRight" valign=
"bottom"><a class=
"el" href=
"php__propro__api_8h.html#a15c4fce513dc952c575cd72332835aa4">php_property_proxy_get_class_entry
</a> (void)
</td></tr>
161 <tr class=
"memdesc:a15c4fce513dc952c575cd72332835aa4"><td class=
"mdescLeft"> </td><td class=
"mdescRight">Get the zend_class_entry of php\PropertyProxy.
<a href=
"#a15c4fce513dc952c575cd72332835aa4">More...
</a><br /></td></tr>
162 <tr class=
"separator:a15c4fce513dc952c575cd72332835aa4"><td class=
"memSeparator" colspan=
"2"> </td></tr>
163 <tr class=
"memitem:a35874bda7876fa60b796a9fd90623c1f"><td class=
"memItemLeft" align=
"right" valign=
"top">zend_object_value
 </td><td class=
"memItemRight" valign=
"bottom"><a class=
"el" href=
"php__propro__api_8h.html#a35874bda7876fa60b796a9fd90623c1f">php_property_proxy_object_new
</a> (zend_class_entry *ce)
</td></tr>
164 <tr class=
"memdesc:a35874bda7876fa60b796a9fd90623c1f"><td class=
"mdescLeft"> </td><td class=
"mdescRight">Instantiate a new php\PropertyProxy.
<a href=
"#a35874bda7876fa60b796a9fd90623c1f">More...
</a><br /></td></tr>
165 <tr class=
"separator:a35874bda7876fa60b796a9fd90623c1f"><td class=
"memSeparator" colspan=
"2"> </td></tr>
166 <tr class=
"memitem:a8972f05941efb141dd78c42bef70db2f"><td class=
"memItemLeft" align=
"right" valign=
"top">zend_object_value
 </td><td class=
"memItemRight" valign=
"bottom"><a class=
"el" href=
"php__propro__api_8h.html#a8972f05941efb141dd78c42bef70db2f">php_property_proxy_object_new_ex
</a> (zend_class_entry *ce,
<a class=
"el" href=
"php__propro__api_8h.html#ac27c374d9d0cf65b52b16ea407df9eac">php_property_proxy_t
</a> *proxy,
<a class=
"el" href=
"php__propro__api_8h.html#aaf59f3ba6014a701909054115f812451">php_property_proxy_object_t
</a> **ptr)
</td></tr>
167 <tr class=
"memdesc:a8972f05941efb141dd78c42bef70db2f"><td class=
"mdescLeft"> </td><td class=
"mdescRight">Instantiate a new php\PropertyProxy with
<em>proxy
</em>.
<a href=
"#a8972f05941efb141dd78c42bef70db2f">More...
</a><br /></td></tr>
168 <tr class=
"separator:a8972f05941efb141dd78c42bef70db2f"><td class=
"memSeparator" colspan=
"2"> </td></tr>
170 <hr/><h2 class=
"groupheader">Data Structure Documentation
</h2>
171 <a name=
"structphp__property__proxy" id=
"structphp__property__proxy"></a>
172 <div class=
"memitem">
173 <div class=
"memproto">
174 <table class=
"memname">
176 <td class=
"memname">struct php_property_proxy
</td>
179 </div><div class=
"memdoc">
180 <div class=
"textblock"><p>The internal property proxy.
</p>
181 <p>Container for the object/array holding the proxied property.
</p>
182 </div><table class=
"fieldtable">
183 <tr><th colspan=
"3">Data Fields
</th></tr>
184 <tr><td class=
"fieldtype">
185 <a class=
"anchor" id=
"ac0fdbd3fa8f961d7732b89ad81d83f4f"></a>zval *
</td>
186 <td class=
"fieldname">
188 <td class=
"fielddoc">
189 The container holding the property.
</td></tr>
190 <tr><td class=
"fieldtype">
191 <a class=
"anchor" id=
"ab9d36c8980c76898ce3f4c08f5c8748e"></a>size_t
</td>
192 <td class=
"fieldname">
194 <td class=
"fielddoc">
195 The length of the name.
</td></tr>
196 <tr><td class=
"fieldtype">
197 <a class=
"anchor" id=
"ad6a7b61daa9561ff8bfc13e99dd68f51"></a>char *
</td>
198 <td class=
"fieldname">
200 <td class=
"fielddoc">
201 The name of the proxied property.
</td></tr>
206 <a name=
"structphp__property__proxy__object" id=
"structphp__property__proxy__object"></a>
207 <div class=
"memitem">
208 <div class=
"memproto">
209 <table class=
"memname">
211 <td class=
"memname">struct php_property_proxy_object
</td>
214 </div><div class=
"memdoc">
215 <div class=
"textblock"><p>The userland object.
</p>
216 <p>Return an object instance of php\PropertyProxy to make your C-struct member accessible by reference from PHP userland.
</p>
217 <p>Example:
</p><div class=
"fragment"><div class=
"line"><span class=
"keyword">static
</span> zval *my_read_prop(zval *
<span class=
"keywordtype">object
</span>, zval *member,
<span class=
"keywordtype">int
</span> type, zend_literal *key TSRMLS_DC)
</div>
218 <div class=
"line">{
</div>
219 <div class=
"line"> my_object_t *obj = zend_object_store_get_object(
<span class=
"keywordtype">object
</span> TSRMLS_CC);
</div>
220 <div class=
"line"> my_prophandler_t *handler;
</div>
221 <div class=
"line"> zval *return_value, *copy = my_cast(IS_STRING, member);
</div>
222 <div class=
"line"></div>
223 <div class=
"line"> <span class=
"keywordflow">if
</span> (
<a class=
"code" href=
"php__propro__api_8c.html#a7e00ad2b6e2b119af6feea77ddfcc7e1ac7f69f7c9e5aea9b8f54cf02870e2bf8">SUCCESS
</a> == my_get_prophandler(Z_STRVAL_P(copy), Z_STRLEN_P(copy),
&handler)) {
</div>
224 <div class=
"line"> ALLOC_ZVAL(return_value);
</div>
225 <div class=
"line"> Z_SET_REFCOUNT_P(return_value,
0);
</div>
226 <div class=
"line"> Z_UNSET_ISREF_P(return_value);
</div>
227 <div class=
"line"></div>
228 <div class=
"line"> <span class=
"keywordflow">if
</span> (type == BP_VAR_R) {
</div>
229 <div class=
"line"> handler-
>read(obj, return_value TSRMLS_CC);
</div>
230 <div class=
"line"> }
<span class=
"keywordflow">else
</span> {
</div>
231 <div class=
"line"> <span class=
"comment">//
</span></div>
232 <div class=
"line"> <span class=
"comment">// This is the interesting part
</span></div>
233 <div class=
"line"> <span class=
"comment">//
</span></div>
234 <div class=
"line"> <a class=
"code" href=
"php__propro__api_8h.html#structphp__property__proxy">php_property_proxy_t
</a> *
<a class=
"code" href=
"php__propro__api_8h.html#a87b08fb8c8dd5a44bccfac6fb81d2103">proxy
</a>;
</div>
235 <div class=
"line"> zend_object_value proxy_ov;
</div>
236 <div class=
"line"> zend_class_entry *proxy_ce;
</div>
237 <div class=
"line"></div>
238 <div class=
"line"> proxy =
<a class=
"code" href=
"php__propro__api_8c.html#a83d5ddbca9a25a062eded906182f205c">php_property_proxy_init
</a>(
<span class=
"keywordtype">object
</span>, Z_STRVAL_P(copy), Z_STRLEN_P(copy) TSRMLS_CC);
</div>
239 <div class=
"line"> proxy_ce =
<a class=
"code" href=
"php__propro__api_8c.html#a15c4fce513dc952c575cd72332835aa4">php_property_proxy_get_class_entry
</a>();
</div>
240 <div class=
"line"> proxy_ov =
<a class=
"code" href=
"php__propro__api_8c.html#a8972f05941efb141dd78c42bef70db2f">php_property_proxy_object_new_ex
</a>(proxy_ce, proxy, NULL TSRMLS_CC);
</div>
241 <div class=
"line"> RETVAL_OBJVAL(proxy_ov,
0);
</div>
242 <div class=
"line"> }
</div>
243 <div class=
"line"> }
<span class=
"keywordflow">else
</span> {
</div>
244 <div class=
"line"> zend_object_handlers *oh = zend_get_std_object_handlers();
</div>
245 <div class=
"line"> return_value = oh-
>read_property(
<span class=
"keywordtype">object
</span>, member, type, key TSRMLS_CC);
</div>
246 <div class=
"line"> }
</div>
247 <div class=
"line"></div>
248 <div class=
"line"> zval_ptr_dtor(
&copy);
</div>
249 <div class=
"line"></div>
250 <div class=
"line"> <span class=
"keywordflow">return
</span> return_value;
</div>
251 <div class=
"line">}
</div>
252 </div><!-- fragment --> </div><div class=
"dynheader">
253 Collaboration diagram for php_property_proxy_object:
</div>
254 <div class=
"dyncontent">
255 <div class=
"center"><img src=
"structphp__property__proxy__object__coll__graph.png" border=
"0" usemap=
"#php__property__proxy__object_coll__map" alt=
"Collaboration graph"/></div>
256 <map name=
"php__property__proxy__object_coll__map" id=
"php__property__proxy__object_coll__map">
257 <area shape=
"rect" id=
"node2" href=
"php__propro__api_8h.html#structphp__property__proxy" title=
"The internal property proxy. " alt=
"" coords=
"5,5,141,32"/>
259 <center><span class=
"legend">[
<a target=
"top" href=
"graph_legend.html">legend
</a>]
</span></center></div>
260 <table class=
"fieldtable">
261 <tr><th colspan=
"3">Data Fields
</th></tr>
262 <tr><td class=
"fieldtype">
263 <a class=
"anchor" id=
"acc1787566cbeff6448101dc27c274294"></a>struct
<a class=
"el" href=
"php__propro__api_8h.html#structphp__property__proxy__object">php_property_proxy_object
</a> *
</td>
264 <td class=
"fieldname">
266 <td class=
"fielddoc">
267 A reference to any parent property proxy object.
</td></tr>
268 <tr><td class=
"fieldtype">
269 <a class=
"anchor" id=
"a87b08fb8c8dd5a44bccfac6fb81d2103"></a><a class=
"el" href=
"php__propro__api_8h.html#ac27c374d9d0cf65b52b16ea407df9eac">php_property_proxy_t
</a> *
</td>
270 <td class=
"fieldname">
272 <td class=
"fielddoc">
273 The actual property proxy.
</td></tr>
274 <tr><td class=
"fieldtype">
275 <a class=
"anchor" id=
"a613d3470bf10261b3903e12d1b94f635"></a>zend_object
</td>
276 <td class=
"fieldname">
278 <td class=
"fielddoc">
279 The std zend_object.
</td></tr>
280 <tr><td class=
"fieldtype">
281 <a class=
"anchor" id=
"aefc91dcb332c026b37d3c222d338fe34"></a>zend_object_value
</td>
282 <td class=
"fieldname">
284 <td class=
"fielddoc">
285 The object value for easy zval creation.
</td></tr>
290 <h2 class=
"groupheader">Typedef Documentation
</h2>
291 <a class=
"anchor" id=
"aaf59f3ba6014a701909054115f812451"></a>
292 <div class=
"memitem">
293 <div class=
"memproto">
294 <table class=
"memname">
296 <td class=
"memname">typedef struct
<a class=
"el" href=
"php__propro__api_8h.html#structphp__property__proxy__object">php_property_proxy_object
</a> <a class=
"el" href=
"php__propro__api_8h.html#aaf59f3ba6014a701909054115f812451">php_property_proxy_object_t
</a></td>
299 </div><div class=
"memdoc">
303 <a class=
"anchor" id=
"ac27c374d9d0cf65b52b16ea407df9eac"></a>
304 <div class=
"memitem">
305 <div class=
"memproto">
306 <table class=
"memname">
308 <td class=
"memname">typedef struct
<a class=
"el" href=
"php__propro__api_8h.html#structphp__property__proxy">php_property_proxy
</a> <a class=
"el" href=
"php__propro__api_8h.html#ac27c374d9d0cf65b52b16ea407df9eac">php_property_proxy_t
</a></td>
311 </div><div class=
"memdoc">
315 <h2 class=
"groupheader">Function Documentation
</h2>
316 <a class=
"anchor" id=
"ae185a0f79aac26679cf1dd0de2e46f57"></a>
317 <div class=
"memitem">
318 <div class=
"memproto">
319 <table class=
"memname">
321 <td class=
"memname">void php_property_proxy_free
</td>
323 <td class=
"paramtype"><a class=
"el" href=
"php__propro__api_8h.html#ac27c374d9d0cf65b52b16ea407df9eac">php_property_proxy_t
</a> **
 </td>
324 <td class=
"paramname"><em>proxy
</em></td><td>)
</td>
328 </div><div class=
"memdoc">
330 <p>Destroy and free a property proxy.
</p>
331 <p>The destruction of the property proxy object calls this.
</p>
332 <dl class=
"params"><dt>Parameters
</dt><dd>
333 <table class=
"params">
334 <tr><td class=
"paramname">proxy
</td><td>a pointer to the allocated property proxy
</td></tr>
341 <a class=
"anchor" id=
"a15c4fce513dc952c575cd72332835aa4"></a>
342 <div class=
"memitem">
343 <div class=
"memproto">
344 <table class=
"memname">
346 <td class=
"memname">zend_class_entry* php_property_proxy_get_class_entry
</td>
348 <td class=
"paramtype">void
 </td>
349 <td class=
"paramname"></td><td>)
</td>
353 </div><div class=
"memdoc">
355 <p>Get the zend_class_entry of php\PropertyProxy.
</p>
356 <dl class=
"section return"><dt>Returns
</dt><dd>the class entry pointer
</dd></dl>
360 <a class=
"anchor" id=
"a83d5ddbca9a25a062eded906182f205c"></a>
361 <div class=
"memitem">
362 <div class=
"memproto">
363 <table class=
"memname">
365 <td class=
"memname"><a class=
"el" href=
"php__propro__api_8h.html#ac27c374d9d0cf65b52b16ea407df9eac">php_property_proxy_t
</a>* php_property_proxy_init
</td>
367 <td class=
"paramtype">zval *
 </td>
368 <td class=
"paramname"><em>container
</em>,
</td>
371 <td class=
"paramkey"></td>
373 <td class=
"paramtype">const char *
 </td>
374 <td class=
"paramname"><em>member_str
</em>,
</td>
377 <td class=
"paramkey"></td>
379 <td class=
"paramtype">size_t
 </td>
380 <td class=
"paramname"><em>member_len
</em> </td>
388 </div><div class=
"memdoc">
390 <p>Create a property proxy.
</p>
391 <p>The property proxy will forward reads and writes to itself to the proxied property with name
<em>member_str
</em> of
<em>container
</em>.
</p>
392 <dl class=
"params"><dt>Parameters
</dt><dd>
393 <table class=
"params">
394 <tr><td class=
"paramname">container
</td><td>the container holding the property
</td></tr>
395 <tr><td class=
"paramname">member_str
</td><td>the name of the proxied property
</td></tr>
396 <tr><td class=
"paramname">member_len
</td><td>the length of the name
</td></tr>
400 <dl class=
"section return"><dt>Returns
</dt><dd>a new property proxy
</dd></dl>
404 <a class=
"anchor" id=
"a35874bda7876fa60b796a9fd90623c1f"></a>
405 <div class=
"memitem">
406 <div class=
"memproto">
407 <table class=
"memname">
409 <td class=
"memname">zend_object_value php_property_proxy_object_new
</td>
411 <td class=
"paramtype">zend_class_entry *
 </td>
412 <td class=
"paramname"><em>ce
</em></td><td>)
</td>
416 </div><div class=
"memdoc">
418 <p>Instantiate a new php\PropertyProxy.
</p>
419 <dl class=
"params"><dt>Parameters
</dt><dd>
420 <table class=
"params">
421 <tr><td class=
"paramname">ce
</td><td>the property proxy or derived class entry
</td></tr>
425 <dl class=
"section return"><dt>Returns
</dt><dd>the zval object value
</dd></dl>
427 <p><div class=
"dynheader">
428 Here is the call graph for this function:
</div>
429 <div class=
"dyncontent">
430 <div class=
"center"><img src=
"php__propro__api_8h_a35874bda7876fa60b796a9fd90623c1f_cgraph.png" border=
"0" usemap=
"#php__propro__api_8h_a35874bda7876fa60b796a9fd90623c1f_cgraph" alt=
""/></div>
431 <map name=
"php__propro__api_8h_a35874bda7876fa60b796a9fd90623c1f_cgraph" id=
"php__propro__api_8h_a35874bda7876fa60b796a9fd90623c1f_cgraph">
432 <area shape=
"rect" id=
"node2" href=
"php__propro__api_8c.html#a8972f05941efb141dd78c42bef70db2f" title=
"Instantiate a new php\PropertyProxy with proxy. " alt=
"" coords=
"189,5,325,47"/>
439 <a class=
"anchor" id=
"a8972f05941efb141dd78c42bef70db2f"></a>
440 <div class=
"memitem">
441 <div class=
"memproto">
442 <table class=
"memname">
444 <td class=
"memname">zend_object_value php_property_proxy_object_new_ex
</td>
446 <td class=
"paramtype">zend_class_entry *
 </td>
447 <td class=
"paramname"><em>ce
</em>,
</td>
450 <td class=
"paramkey"></td>
452 <td class=
"paramtype"><a class=
"el" href=
"php__propro__api_8h.html#ac27c374d9d0cf65b52b16ea407df9eac">php_property_proxy_t
</a> *
 </td>
453 <td class=
"paramname"><em>proxy
</em>,
</td>
456 <td class=
"paramkey"></td>
458 <td class=
"paramtype"><a class=
"el" href=
"php__propro__api_8h.html#aaf59f3ba6014a701909054115f812451">php_property_proxy_object_t
</a> **
 </td>
459 <td class=
"paramname"><em>ptr
</em> </td>
467 </div><div class=
"memdoc">
469 <p>Instantiate a new php\PropertyProxy with
<em>proxy
</em>.
</p>
470 <dl class=
"params"><dt>Parameters
</dt><dd>
471 <table class=
"params">
472 <tr><td class=
"paramname">ce
</td><td>the property proxy or derived class entry
</td></tr>
473 <tr><td class=
"paramname">proxy
</td><td>the internal property proxy
</td></tr>
474 <tr><td class=
"paramname">ptr
</td><td>a pointer to store the resulting property proxy object
</td></tr>
478 <dl class=
"section return"><dt>Returns
</dt><dd>the zval object value
</dd></dl>
480 <p>Referenced by
<a class=
"el" href=
"php__propro__api_8h.html#a35874bda7876fa60b796a9fd90623c1f">php_property_proxy_object_new()
</a>.
</p>
482 <p><div class=
"dynheader">
483 Here is the caller graph for this function:
</div>
484 <div class=
"dyncontent">
485 <div class=
"center"><img src=
"php__propro__api_8h_a8972f05941efb141dd78c42bef70db2f_icgraph.png" border=
"0" usemap=
"#php__propro__api_8h_a8972f05941efb141dd78c42bef70db2f_icgraph" alt=
""/></div>
486 <map name=
"php__propro__api_8h_a8972f05941efb141dd78c42bef70db2f_icgraph" id=
"php__propro__api_8h_a8972f05941efb141dd78c42bef70db2f_icgraph">
487 <area shape=
"rect" id=
"node2" href=
"php__propro__api_8h.html#a35874bda7876fa60b796a9fd90623c1f" title=
"Instantiate a new php\PropertyProxy. " alt=
"" coords=
"189,5,325,47"/>
494 </div><!-- contents -->
495 </div><!-- doc-content -->
496 <!-- start footer part -->
497 <div id=
"nav-path" class=
"navpath"><!-- id is needed for treeview function! -->
499 <li class=
"navelem"><a class=
"el" href=
"dir_68267d1309a1af8e8297ef4c3efbcdba.html">src
</a></li><li class=
"navelem"><a class=
"el" href=
"php__propro__api_8h.html">php_propro_api.h
</a></li>
500 <li class=
"footer">Generated by
501 <a href=
"http://www.doxygen.org/index.html">
502 <img class=
"footer" src=
"doxygen.png" alt=
"doxygen"/></a> 1.8.10 </li>