Merge branch 'master' into gh-pages
[m6w6/ext-propro] / php__propro_8h.html
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">
3 <head>
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.5"/>
7 <title>Property proxy API: php_propro.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="navtree.js"></script>
14 <script type="text/javascript">
15 $(document).ready(initResizable);
16 $(window).load(resizeHeight);
17 </script>
18 <link href="search/search.css" rel="stylesheet" type="text/css"/>
19 <script type="text/javascript" src="search/search.js"></script>
20 <script type="text/javascript">
21 $(document).ready(function() { searchBox.OnSelectItem(0); });
22 </script>
23 <link href="doxygen.css" rel="stylesheet" type="text/css" />
24 </head>
25 <body>
26 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
27 <div id="titlearea">
28 <table cellspacing="0" cellpadding="0">
29 <tbody>
30 <tr style="height: 56px;">
31 <td style="padding-left: 0.5em;">
32 <div id="projectname">Property proxy API
33 </div>
34 <div id="projectbrief">A facility to manage extension object properties tied to C-struct members</div>
35 </td>
36 </tr>
37 </tbody>
38 </table>
39 </div>
40 <!-- end header part -->
41 <!-- Generated by Doxygen 1.8.5 -->
42 <script type="text/javascript">
43 var searchBox = new SearchBox("searchBox", "search",false,'Search');
44 </script>
45 <div id="navrow1" class="tabs">
46 <ul class="tablist">
47 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
48 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
49 <li class="current"><a href="files.html"><span>Files</span></a></li>
50 <li>
51 <div id="MSearchBox" class="MSearchBoxInactive">
52 <span class="left">
53 <img id="MSearchSelect" src="search/mag_sel.png"
54 onmouseover="return searchBox.OnSearchSelectShow()"
55 onmouseout="return searchBox.OnSearchSelectHide()"
56 alt=""/>
57 <input type="text" id="MSearchField" value="Search" accesskey="S"
58 onfocus="searchBox.OnSearchFieldFocus(true)"
59 onblur="searchBox.OnSearchFieldFocus(false)"
60 onkeyup="searchBox.OnSearchFieldChange(event)"/>
61 </span><span class="right">
62 <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
63 </span>
64 </div>
65 </li>
66 </ul>
67 </div>
68 <div id="navrow2" class="tabs2">
69 <ul class="tablist">
70 <li><a href="files.html"><span>File&#160;List</span></a></li>
71 <li><a href="globals.html"><span>Globals</span></a></li>
72 </ul>
73 </div>
74 </div><!-- top -->
75 <div id="side-nav" class="ui-resizable side-nav-resizable">
76 <div id="nav-tree">
77 <div id="nav-tree-contents">
78 <div id="nav-sync" class="sync"></div>
79 </div>
80 </div>
81 <div id="splitbar" style="-moz-user-select:none;"
82 class="ui-resizable-handle">
83 </div>
84 </div>
85 <script type="text/javascript">
86 $(document).ready(function(){initNavTree('php__propro_8h.html','');});
87 </script>
88 <div id="doc-content">
89 <!-- window showing the filter options -->
90 <div id="MSearchSelectWindow"
91 onmouseover="return searchBox.OnSearchSelectShow()"
92 onmouseout="return searchBox.OnSearchSelectHide()"
93 onkeydown="return searchBox.OnSearchSelectKey(event)">
94 <a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a></div>
95
96 <!-- iframe showing the search results (closed by default) -->
97 <div id="MSearchResultsWindow">
98 <iframe src="javascript:void(0)" frameborder="0"
99 name="MSearchResults" id="MSearchResults">
100 </iframe>
101 </div>
102
103 <div class="header">
104 <div class="summary">
105 <a href="#nested-classes">Data Structures</a> &#124;
106 <a href="#typedef-members">Typedefs</a> &#124;
107 <a href="#func-members">Functions</a> </div>
108 <div class="headertitle">
109 <div class="title">php_propro.h File Reference</div> </div>
110 </div><!--header-->
111 <div class="contents">
112
113 <p><a href="php__propro_8h_source.html">Go to the source code of this file.</a></p>
114 <table class="memberdecls">
115 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
116 Data Structures</h2></td></tr>
117 <tr class="memitem:structphp__property__proxy"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__propro_8h.html#structphp__property__proxy">php_property_proxy</a></td></tr>
118 <tr class="memdesc:structphp__property__proxy"><td class="mdescLeft">&#160;</td><td class="mdescRight">The internal property proxy. <a href="php__propro_8h.html#structphp__property__proxy">More...</a><br/></td></tr>
119 <tr class="separator:structphp__property__proxy"><td class="memSeparator" colspan="2">&#160;</td></tr>
120 <tr class="memitem:structphp__property__proxy__object"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__propro_8h.html#structphp__property__proxy__object">php_property_proxy_object</a></td></tr>
121 <tr class="memdesc:structphp__property__proxy__object"><td class="mdescLeft">&#160;</td><td class="mdescRight">The userland object. <a href="php__propro_8h.html#structphp__property__proxy__object">More...</a><br/></td></tr>
122 <tr class="separator:structphp__property__proxy__object"><td class="memSeparator" colspan="2">&#160;</td></tr>
123 </table><table class="memberdecls">
124 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
125 Typedefs</h2></td></tr>
126 <tr class="memitem:ac27c374d9d0cf65b52b16ea407df9eac"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="php__propro_8h.html#structphp__property__proxy">php_property_proxy</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__propro_8h.html#ac27c374d9d0cf65b52b16ea407df9eac">php_property_proxy_t</a></td></tr>
127 <tr class="separator:ac27c374d9d0cf65b52b16ea407df9eac"><td class="memSeparator" colspan="2">&#160;</td></tr>
128 <tr class="memitem:aaf59f3ba6014a701909054115f812451"><td class="memItemLeft" align="right" valign="top">typedef struct <br class="typebreak"/>
129 <a class="el" href="php__propro_8h.html#structphp__property__proxy__object">php_property_proxy_object</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__propro_8h.html#aaf59f3ba6014a701909054115f812451">php_property_proxy_object_t</a></td></tr>
130 <tr class="separator:aaf59f3ba6014a701909054115f812451"><td class="memSeparator" colspan="2">&#160;</td></tr>
131 </table><table class="memberdecls">
132 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
133 Functions</h2></td></tr>
134 <tr class="memitem:a83d5ddbca9a25a062eded906182f205c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="php__propro_8h.html#ac27c374d9d0cf65b52b16ea407df9eac">php_property_proxy_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__propro_8h.html#a83d5ddbca9a25a062eded906182f205c">php_property_proxy_init</a> (zval *container, const char *member_str, size_t member_len)</td></tr>
135 <tr class="memdesc:a83d5ddbca9a25a062eded906182f205c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a property proxy. <a href="#a83d5ddbca9a25a062eded906182f205c">More...</a><br/></td></tr>
136 <tr class="separator:a83d5ddbca9a25a062eded906182f205c"><td class="memSeparator" colspan="2">&#160;</td></tr>
137 <tr class="memitem:ae185a0f79aac26679cf1dd0de2e46f57"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__propro_8h.html#ae185a0f79aac26679cf1dd0de2e46f57">php_property_proxy_free</a> (<a class="el" href="php__propro_8h.html#ac27c374d9d0cf65b52b16ea407df9eac">php_property_proxy_t</a> **proxy)</td></tr>
138 <tr class="memdesc:ae185a0f79aac26679cf1dd0de2e46f57"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy and free a property proxy. <a href="#ae185a0f79aac26679cf1dd0de2e46f57">More...</a><br/></td></tr>
139 <tr class="separator:ae185a0f79aac26679cf1dd0de2e46f57"><td class="memSeparator" colspan="2">&#160;</td></tr>
140 <tr class="memitem:a15c4fce513dc952c575cd72332835aa4"><td class="memItemLeft" align="right" valign="top">zend_class_entry *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__propro_8h.html#a15c4fce513dc952c575cd72332835aa4">php_property_proxy_get_class_entry</a> (void)</td></tr>
141 <tr class="memdesc:a15c4fce513dc952c575cd72332835aa4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the zend_class_entry of php\PropertyProxy. <a href="#a15c4fce513dc952c575cd72332835aa4">More...</a><br/></td></tr>
142 <tr class="separator:a15c4fce513dc952c575cd72332835aa4"><td class="memSeparator" colspan="2">&#160;</td></tr>
143 <tr class="memitem:a35874bda7876fa60b796a9fd90623c1f"><td class="memItemLeft" align="right" valign="top">zend_object_value&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__propro_8h.html#a35874bda7876fa60b796a9fd90623c1f">php_property_proxy_object_new</a> (zend_class_entry *ce)</td></tr>
144 <tr class="memdesc:a35874bda7876fa60b796a9fd90623c1f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Instantiate a new php\PropertyProxy. <a href="#a35874bda7876fa60b796a9fd90623c1f">More...</a><br/></td></tr>
145 <tr class="separator:a35874bda7876fa60b796a9fd90623c1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
146 <tr class="memitem:a8972f05941efb141dd78c42bef70db2f"><td class="memItemLeft" align="right" valign="top">zend_object_value&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php__propro_8h.html#a8972f05941efb141dd78c42bef70db2f">php_property_proxy_object_new_ex</a> (zend_class_entry *ce, <a class="el" href="php__propro_8h.html#ac27c374d9d0cf65b52b16ea407df9eac">php_property_proxy_t</a> *proxy, <a class="el" href="php__propro_8h.html#aaf59f3ba6014a701909054115f812451">php_property_proxy_object_t</a> **ptr)</td></tr>
147 <tr class="memdesc:a8972f05941efb141dd78c42bef70db2f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Instantiate a new php\PropertyProxy with <em>proxy</em>. <a href="#a8972f05941efb141dd78c42bef70db2f">More...</a><br/></td></tr>
148 <tr class="separator:a8972f05941efb141dd78c42bef70db2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
149 </table>
150 <hr/><h2 class="groupheader">Data Structure Documentation</h2>
151 <a name="structphp__property__proxy" id="structphp__property__proxy"></a>
152 <div class="memitem">
153 <div class="memproto">
154 <table class="memname">
155 <tr>
156 <td class="memname">struct php_property_proxy</td>
157 </tr>
158 </table>
159 </div><div class="memdoc">
160 <div class="textblock"><p>The internal property proxy. </p>
161 <p>Container for the object/array holding the proxied property. </p>
162 </div><table class="fieldtable">
163 <tr><th colspan="3">Data Fields</th></tr>
164 <tr><td class="fieldtype">
165 <a class="anchor" id="ac0fdbd3fa8f961d7732b89ad81d83f4f"></a>zval *</td>
166 <td class="fieldname">
167 container</td>
168 <td class="fielddoc">
169 The container holding the property. </td></tr>
170 <tr><td class="fieldtype">
171 <a class="anchor" id="ab9d36c8980c76898ce3f4c08f5c8748e"></a>size_t</td>
172 <td class="fieldname">
173 member_len</td>
174 <td class="fielddoc">
175 The length of the name. </td></tr>
176 <tr><td class="fieldtype">
177 <a class="anchor" id="ad6a7b61daa9561ff8bfc13e99dd68f51"></a>char *</td>
178 <td class="fieldname">
179 member_str</td>
180 <td class="fielddoc">
181 The name of the proxied property. </td></tr>
182 </table>
183
184 </div>
185 </div>
186 <a name="structphp__property__proxy__object" id="structphp__property__proxy__object"></a>
187 <div class="memitem">
188 <div class="memproto">
189 <table class="memname">
190 <tr>
191 <td class="memname">struct php_property_proxy_object</td>
192 </tr>
193 </table>
194 </div><div class="memdoc">
195 <div class="textblock"><p>The userland object. </p>
196 <p>Return an object instance of php\PropertyProxy to make your C-struct member accessible by reference from PHP userland.</p>
197 <p>Example: </p>
198 <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>
199 <div class="line">{</div>
200 <div class="line"> my_object_t *obj = zend_object_store_get_object(<span class="keywordtype">object</span> TSRMLS_CC);</div>
201 <div class="line"> my_prophandler_t *handler;</div>
202 <div class="line"> zval *return_value, *copy = my_cast(IS_STRING, member);</div>
203 <div class="line"></div>
204 <div class="line"> <span class="keywordflow">if</span> (SUCCESS == my_get_prophandler(Z_STRVAL_P(copy), Z_STRLEN_P(copy), &amp;handler)) {</div>
205 <div class="line"> ALLOC_ZVAL(return_value);</div>
206 <div class="line"> Z_SET_REFCOUNT_P(return_value, 0);</div>
207 <div class="line"> Z_UNSET_ISREF_P(return_value);</div>
208 <div class="line"></div>
209 <div class="line"> <span class="keywordflow">if</span> (type == BP_VAR_R) {</div>
210 <div class="line"> handler-&gt;read(obj, return_value TSRMLS_CC);</div>
211 <div class="line"> } <span class="keywordflow">else</span> {</div>
212 <div class="line"> <span class="comment">//</span></div>
213 <div class="line"> <span class="comment">// This is the interesting part</span></div>
214 <div class="line"> <span class="comment">//</span></div>
215 <div class="line"> <a class="code" href="php__propro_8h.html#structphp__property__proxy">php_property_proxy_t</a> *<a class="code" href="php__propro_8h.html#a87b08fb8c8dd5a44bccfac6fb81d2103">proxy</a>;</div>
216 <div class="line"> zend_object_value proxy_ov;</div>
217 <div class="line"> zend_class_entry *proxy_ce;</div>
218 <div class="line"></div>
219 <div class="line"> proxy = <a class="code" href="php__propro_8h.html#a83d5ddbca9a25a062eded906182f205c">php_property_proxy_init</a>(<span class="keywordtype">object</span>, Z_STRVAL_P(copy), Z_STRLEN_P(copy) TSRMLS_CC);</div>
220 <div class="line"> proxy_ce = <a class="code" href="php__propro_8h.html#a15c4fce513dc952c575cd72332835aa4">php_property_proxy_get_class_entry</a>();</div>
221 <div class="line"> proxy_ov = <a class="code" href="php__propro_8h.html#a8972f05941efb141dd78c42bef70db2f">php_property_proxy_object_new_ex</a>(proxy_ce, proxy, NULL TSRMLS_CC);</div>
222 <div class="line"> RETVAL_OBJVAL(proxy_ov, 0);</div>
223 <div class="line"> }</div>
224 <div class="line"> } <span class="keywordflow">else</span> {</div>
225 <div class="line"> zend_object_handlers *oh = zend_get_std_object_handlers();</div>
226 <div class="line"> return_value = oh-&gt;read_property(<span class="keywordtype">object</span>, member, type, key TSRMLS_CC);</div>
227 <div class="line"> }</div>
228 <div class="line"></div>
229 <div class="line"> zval_ptr_dtor(&amp;copy);</div>
230 <div class="line"></div>
231 <div class="line"> <span class="keywordflow">return</span> return_value;</div>
232 <div class="line">}</div>
233 </div><!-- fragment --> </div><div class="dynheader">
234 Collaboration diagram for php_property_proxy_object:</div>
235 <div class="dyncontent">
236 <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>
237 <map name="php__property__proxy__object_coll__map" id="php__property__proxy__object_coll__map">
238 <area shape="rect" id="node2" href="php__propro_8h.html#structphp__property__proxy" title="The internal property proxy. " alt="" coords="4,5,139,32"/></map>
239 <center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
240 <table class="fieldtable">
241 <tr><th colspan="3">Data Fields</th></tr>
242 <tr><td class="fieldtype">
243 <a class="anchor" id="acc1787566cbeff6448101dc27c274294"></a>struct <a class="el" href="php__propro_8h.html#structphp__property__proxy__object">php_property_proxy_object</a> *</td>
244 <td class="fieldname">
245 parent</td>
246 <td class="fielddoc">
247 A reference to any parent property proxy object. </td></tr>
248 <tr><td class="fieldtype">
249 <a class="anchor" id="a87b08fb8c8dd5a44bccfac6fb81d2103"></a><a class="el" href="php__propro_8h.html#ac27c374d9d0cf65b52b16ea407df9eac">php_property_proxy_t</a> *</td>
250 <td class="fieldname">
251 proxy</td>
252 <td class="fielddoc">
253 The actual property proxy. </td></tr>
254 <tr><td class="fieldtype">
255 <a class="anchor" id="a613d3470bf10261b3903e12d1b94f635"></a>zend_object</td>
256 <td class="fieldname">
257 zo</td>
258 <td class="fielddoc">
259 The std zend_object. </td></tr>
260 <tr><td class="fieldtype">
261 <a class="anchor" id="aefc91dcb332c026b37d3c222d338fe34"></a>zend_object_value</td>
262 <td class="fieldname">
263 zv</td>
264 <td class="fielddoc">
265 The object value for easy zval creation. </td></tr>
266 </table>
267
268 </div>
269 </div>
270 <h2 class="groupheader">Typedef Documentation</h2>
271 <a class="anchor" id="aaf59f3ba6014a701909054115f812451"></a>
272 <div class="memitem">
273 <div class="memproto">
274 <table class="memname">
275 <tr>
276 <td class="memname">typedef struct <a class="el" href="php__propro_8h.html#structphp__property__proxy__object">php_property_proxy_object</a> <a class="el" href="php__propro_8h.html#aaf59f3ba6014a701909054115f812451">php_property_proxy_object_t</a></td>
277 </tr>
278 </table>
279 </div><div class="memdoc">
280
281 </div>
282 </div>
283 <a class="anchor" id="ac27c374d9d0cf65b52b16ea407df9eac"></a>
284 <div class="memitem">
285 <div class="memproto">
286 <table class="memname">
287 <tr>
288 <td class="memname">typedef struct <a class="el" href="php__propro_8h.html#structphp__property__proxy">php_property_proxy</a> <a class="el" href="php__propro_8h.html#ac27c374d9d0cf65b52b16ea407df9eac">php_property_proxy_t</a></td>
289 </tr>
290 </table>
291 </div><div class="memdoc">
292
293 </div>
294 </div>
295 <h2 class="groupheader">Function Documentation</h2>
296 <a class="anchor" id="ae185a0f79aac26679cf1dd0de2e46f57"></a>
297 <div class="memitem">
298 <div class="memproto">
299 <table class="memname">
300 <tr>
301 <td class="memname">void php_property_proxy_free </td>
302 <td>(</td>
303 <td class="paramtype"><a class="el" href="php__propro_8h.html#ac27c374d9d0cf65b52b16ea407df9eac">php_property_proxy_t</a> **&#160;</td>
304 <td class="paramname"><em>proxy</em></td><td>)</td>
305 <td></td>
306 </tr>
307 </table>
308 </div><div class="memdoc">
309
310 <p>Destroy and free a property proxy. </p>
311 <p>The destruction of the property proxy object calls this.</p>
312 <dl class="params"><dt>Parameters</dt><dd>
313 <table class="params">
314 <tr><td class="paramname">proxy</td><td>a pointer to the allocated property proxy </td></tr>
315 </table>
316 </dd>
317 </dl>
318
319 </div>
320 </div>
321 <a class="anchor" id="a15c4fce513dc952c575cd72332835aa4"></a>
322 <div class="memitem">
323 <div class="memproto">
324 <table class="memname">
325 <tr>
326 <td class="memname">zend_class_entry* php_property_proxy_get_class_entry </td>
327 <td>(</td>
328 <td class="paramtype">void&#160;</td>
329 <td class="paramname"></td><td>)</td>
330 <td></td>
331 </tr>
332 </table>
333 </div><div class="memdoc">
334
335 <p>Get the zend_class_entry of php\PropertyProxy. </p>
336 <dl class="section return"><dt>Returns</dt><dd>the class entry pointer </dd></dl>
337
338 </div>
339 </div>
340 <a class="anchor" id="a83d5ddbca9a25a062eded906182f205c"></a>
341 <div class="memitem">
342 <div class="memproto">
343 <table class="memname">
344 <tr>
345 <td class="memname"><a class="el" href="php__propro_8h.html#ac27c374d9d0cf65b52b16ea407df9eac">php_property_proxy_t</a>* php_property_proxy_init </td>
346 <td>(</td>
347 <td class="paramtype">zval *&#160;</td>
348 <td class="paramname"><em>container</em>, </td>
349 </tr>
350 <tr>
351 <td class="paramkey"></td>
352 <td></td>
353 <td class="paramtype">const char *&#160;</td>
354 <td class="paramname"><em>member_str</em>, </td>
355 </tr>
356 <tr>
357 <td class="paramkey"></td>
358 <td></td>
359 <td class="paramtype">size_t&#160;</td>
360 <td class="paramname"><em>member_len</em>&#160;</td>
361 </tr>
362 <tr>
363 <td></td>
364 <td>)</td>
365 <td></td><td></td>
366 </tr>
367 </table>
368 </div><div class="memdoc">
369
370 <p>Create a property proxy. </p>
371 <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>
372 <dl class="params"><dt>Parameters</dt><dd>
373 <table class="params">
374 <tr><td class="paramname">container</td><td>the container holding the property </td></tr>
375 <tr><td class="paramname">member_str</td><td>the name of the proxied property </td></tr>
376 <tr><td class="paramname">member_len</td><td>the length of the name </td></tr>
377 </table>
378 </dd>
379 </dl>
380 <dl class="section return"><dt>Returns</dt><dd>a new property proxy </dd></dl>
381
382 </div>
383 </div>
384 <a class="anchor" id="a35874bda7876fa60b796a9fd90623c1f"></a>
385 <div class="memitem">
386 <div class="memproto">
387 <table class="memname">
388 <tr>
389 <td class="memname">zend_object_value php_property_proxy_object_new </td>
390 <td>(</td>
391 <td class="paramtype">zend_class_entry *&#160;</td>
392 <td class="paramname"><em>ce</em></td><td>)</td>
393 <td></td>
394 </tr>
395 </table>
396 </div><div class="memdoc">
397
398 <p>Instantiate a new php\PropertyProxy. </p>
399 <dl class="params"><dt>Parameters</dt><dd>
400 <table class="params">
401 <tr><td class="paramname">ce</td><td>the property proxy or derived class entry </td></tr>
402 </table>
403 </dd>
404 </dl>
405 <dl class="section return"><dt>Returns</dt><dd>the zval object value </dd></dl>
406
407 </div>
408 </div>
409 <a class="anchor" id="a8972f05941efb141dd78c42bef70db2f"></a>
410 <div class="memitem">
411 <div class="memproto">
412 <table class="memname">
413 <tr>
414 <td class="memname">zend_object_value php_property_proxy_object_new_ex </td>
415 <td>(</td>
416 <td class="paramtype">zend_class_entry *&#160;</td>
417 <td class="paramname"><em>ce</em>, </td>
418 </tr>
419 <tr>
420 <td class="paramkey"></td>
421 <td></td>
422 <td class="paramtype"><a class="el" href="php__propro_8h.html#ac27c374d9d0cf65b52b16ea407df9eac">php_property_proxy_t</a> *&#160;</td>
423 <td class="paramname"><em>proxy</em>, </td>
424 </tr>
425 <tr>
426 <td class="paramkey"></td>
427 <td></td>
428 <td class="paramtype"><a class="el" href="php__propro_8h.html#aaf59f3ba6014a701909054115f812451">php_property_proxy_object_t</a> **&#160;</td>
429 <td class="paramname"><em>ptr</em>&#160;</td>
430 </tr>
431 <tr>
432 <td></td>
433 <td>)</td>
434 <td></td><td></td>
435 </tr>
436 </table>
437 </div><div class="memdoc">
438
439 <p>Instantiate a new php\PropertyProxy with <em>proxy</em>. </p>
440 <dl class="params"><dt>Parameters</dt><dd>
441 <table class="params">
442 <tr><td class="paramname">ce</td><td>the property proxy or derived class entry </td></tr>
443 <tr><td class="paramname">proxy</td><td>the internal property proxy </td></tr>
444 <tr><td class="paramname">ptr</td><td>a pointer to store the resulting property proxy object </td></tr>
445 </table>
446 </dd>
447 </dl>
448 <dl class="section return"><dt>Returns</dt><dd>the zval object value </dd></dl>
449
450 </div>
451 </div>
452 </div><!-- contents -->
453 </div><!-- doc-content -->
454 <!-- start footer part -->
455 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
456 <ul>
457 <li class="navelem"><a class="el" href="php__propro_8h.html">php_propro.h</a></li>
458 <li class="footer">Generated by
459 <a href="http://www.doxygen.org/index.html">
460 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.5 </li>
461 </ul>
462 </div>
463 </body>
464 </html>