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.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);
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); });
23 <link href=
"doxygen.css" rel=
"stylesheet" type=
"text/css" />
26 <div id=
"top"><!-- do not remove this div, it is closed by doxygen! -->
28 <table cellspacing=
"0" cellpadding=
"0">
30 <tr style=
"height: 56px;">
31 <td style=
"padding-left: 0.5em;">
32 <div id=
"projectname">Property proxy API
34 <div id=
"projectbrief">A facility to manage extension object properties tied to C-struct members
</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');
45 <div id=
"navrow1" class=
"tabs">
47 <li><a href=
"index.html"><span>Main
 Page
</span></a></li>
48 <li><a href=
"annotated.html"><span>Data
 Structures
</span></a></li>
49 <li class=
"current"><a href=
"files.html"><span>Files
</span></a></li>
51 <div id=
"MSearchBox" class=
"MSearchBoxInactive">
53 <img id=
"MSearchSelect" src=
"search/mag_sel.png"
54 onmouseover=
"return searchBox.OnSearchSelectShow()"
55 onmouseout=
"return searchBox.OnSearchSelectHide()"
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>
68 <div id=
"navrow2" class=
"tabs2">
70 <li><a href=
"files.html"><span>File
 List
</span></a></li>
71 <li><a href=
"globals.html"><span>Globals
</span></a></li>
75 <div id=
"side-nav" class=
"ui-resizable side-nav-resizable">
77 <div id=
"nav-tree-contents">
78 <div id=
"nav-sync" class=
"sync"></div>
81 <div id=
"splitbar" style=
"-moz-user-select:none;"
82 class=
"ui-resizable-handle">
85 <script type=
"text/javascript">
86 $(document).ready(function(){initNavTree('php__propro_8h.html','');});
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"> </span>All
</a><a class=
"SelectItem" href=
"javascript:void(0)" onclick=
"searchBox.OnSelectItem(1)"><span class=
"SelectionMark"> </span>Data Structures
</a><a class=
"SelectItem" href=
"javascript:void(0)" onclick=
"searchBox.OnSelectItem(2)"><span class=
"SelectionMark"> </span>Files
</a><a class=
"SelectItem" href=
"javascript:void(0)" onclick=
"searchBox.OnSelectItem(3)"><span class=
"SelectionMark"> </span>Functions
</a><a class=
"SelectItem" href=
"javascript:void(0)" onclick=
"searchBox.OnSelectItem(4)"><span class=
"SelectionMark"> </span>Variables
</a><a class=
"SelectItem" href=
"javascript:void(0)" onclick=
"searchBox.OnSelectItem(5)"><span class=
"SelectionMark"> </span>Typedefs
</a></div>
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">
104 <div class=
"summary">
105 <a href=
"#nested-classes">Data Structures
</a> |
106 <a href=
"#typedef-members">Typedefs
</a> |
107 <a href=
"#func-members">Functions
</a> </div>
108 <div class=
"headertitle">
109 <div class=
"title">php_propro.h File Reference
</div> </div>
111 <div class=
"contents">
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
 </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"> </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"> </td></tr>
120 <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_8h.html#structphp__property__proxy__object">php_property_proxy_object
</a></td></tr>
121 <tr class=
"memdesc:structphp__property__proxy__object"><td class=
"mdescLeft"> </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"> </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> </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"> </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> </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"> </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> *
 </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"> </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"> </td></tr>
137 <tr class=
"memitem:ae185a0f79aac26679cf1dd0de2e46f57"><td class=
"memItemLeft" align=
"right" valign=
"top">void
 </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"> </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"> </td></tr>
140 <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_8h.html#a15c4fce513dc952c575cd72332835aa4">php_property_proxy_get_class_entry
</a> (void)
</td></tr>
141 <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>
142 <tr class=
"separator:a15c4fce513dc952c575cd72332835aa4"><td class=
"memSeparator" colspan=
"2"> </td></tr>
143 <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_8h.html#a35874bda7876fa60b796a9fd90623c1f">php_property_proxy_object_new
</a> (zend_class_entry *ce)
</td></tr>
144 <tr class=
"memdesc:a35874bda7876fa60b796a9fd90623c1f"><td class=
"mdescLeft"> </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"> </td></tr>
146 <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_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"> </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"> </td></tr>
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">
156 <td class=
"memname">struct php_property_proxy
</td>
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">
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">
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">
180 <td class=
"fielddoc">
181 The name of the proxied property.
</td></tr>
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">
191 <td class=
"memname">struct php_property_proxy_object
</td>
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>
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),
&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-
>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-
>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(
&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">
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">
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">
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">
264 <td class=
"fielddoc">
265 The object value for easy zval creation.
</td></tr>
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">
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>
279 </div><div class=
"memdoc">
283 <a class=
"anchor" id=
"ac27c374d9d0cf65b52b16ea407df9eac"></a>
284 <div class=
"memitem">
285 <div class=
"memproto">
286 <table class=
"memname">
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>
291 </div><div class=
"memdoc">
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">
301 <td class=
"memname">void php_property_proxy_free
</td>
303 <td class=
"paramtype"><a class=
"el" href=
"php__propro_8h.html#ac27c374d9d0cf65b52b16ea407df9eac">php_property_proxy_t
</a> **
 </td>
304 <td class=
"paramname"><em>proxy
</em></td><td>)
</td>
308 </div><div class=
"memdoc">
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>
321 <a class=
"anchor" id=
"a15c4fce513dc952c575cd72332835aa4"></a>
322 <div class=
"memitem">
323 <div class=
"memproto">
324 <table class=
"memname">
326 <td class=
"memname">zend_class_entry* php_property_proxy_get_class_entry
</td>
328 <td class=
"paramtype">void
 </td>
329 <td class=
"paramname"></td><td>)
</td>
333 </div><div class=
"memdoc">
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>
340 <a class=
"anchor" id=
"a83d5ddbca9a25a062eded906182f205c"></a>
341 <div class=
"memitem">
342 <div class=
"memproto">
343 <table class=
"memname">
345 <td class=
"memname"><a class=
"el" href=
"php__propro_8h.html#ac27c374d9d0cf65b52b16ea407df9eac">php_property_proxy_t
</a>* php_property_proxy_init
</td>
347 <td class=
"paramtype">zval *
 </td>
348 <td class=
"paramname"><em>container
</em>,
</td>
351 <td class=
"paramkey"></td>
353 <td class=
"paramtype">const char *
 </td>
354 <td class=
"paramname"><em>member_str
</em>,
</td>
357 <td class=
"paramkey"></td>
359 <td class=
"paramtype">size_t
 </td>
360 <td class=
"paramname"><em>member_len
</em> </td>
368 </div><div class=
"memdoc">
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>
380 <dl class=
"section return"><dt>Returns
</dt><dd>a new property proxy
</dd></dl>
384 <a class=
"anchor" id=
"a35874bda7876fa60b796a9fd90623c1f"></a>
385 <div class=
"memitem">
386 <div class=
"memproto">
387 <table class=
"memname">
389 <td class=
"memname">zend_object_value php_property_proxy_object_new
</td>
391 <td class=
"paramtype">zend_class_entry *
 </td>
392 <td class=
"paramname"><em>ce
</em></td><td>)
</td>
396 </div><div class=
"memdoc">
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>
405 <dl class=
"section return"><dt>Returns
</dt><dd>the zval object value
</dd></dl>
409 <a class=
"anchor" id=
"a8972f05941efb141dd78c42bef70db2f"></a>
410 <div class=
"memitem">
411 <div class=
"memproto">
412 <table class=
"memname">
414 <td class=
"memname">zend_object_value php_property_proxy_object_new_ex
</td>
416 <td class=
"paramtype">zend_class_entry *
 </td>
417 <td class=
"paramname"><em>ce
</em>,
</td>
420 <td class=
"paramkey"></td>
422 <td class=
"paramtype"><a class=
"el" href=
"php__propro_8h.html#ac27c374d9d0cf65b52b16ea407df9eac">php_property_proxy_t
</a> *
 </td>
423 <td class=
"paramname"><em>proxy
</em>,
</td>
426 <td class=
"paramkey"></td>
428 <td class=
"paramtype"><a class=
"el" href=
"php__propro_8h.html#aaf59f3ba6014a701909054115f812451">php_property_proxy_object_t
</a> **
 </td>
429 <td class=
"paramname"><em>ptr
</em> </td>
437 </div><div class=
"memdoc">
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>
448 <dl class=
"section return"><dt>Returns
</dt><dd>the zval object value
</dd></dl>
452 </div><!-- contents -->
453 </div><!-- doc-content -->
454 <!-- start footer part -->
455 <div id=
"nav-path" class=
"navpath"><!-- id is needed for treeview function! -->
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>