1 /*
2    +----------------------------------------------------------------------+
3    | Copyright (c) The PHP Group                                          |
4    +----------------------------------------------------------------------+
5    | This source file is subject to version 3.01 of the PHP license,      |
6    | that is bundled with this package in the file LICENSE, and is        |
7    | available through the world-wide-web at the following url:           |
8    | http://www.php.net/license/3_01.txt                                  |
9    | If you did not receive a copy of the PHP license and are unable to   |
10    | obtain it through the world-wide-web, please send a note to          |
11    | license@php.net so we can mail you a copy immediately.               |
12    +----------------------------------------------------------------------+
13    | Authors:                                                             |
14    |          Israel Ekpo <iekpo@php.net>                                 |
15    |          Omar Shaban <omars@php.net>                                 |
16    +----------------------------------------------------------------------+
17 */
18 
19 #include "php_solr.h"
20 
21 #ifdef HAVE_SOLR
22 
23 #if LIBCURL_VERSION_NUM < 0x070F00
24 #error libcurl 7.15.0 or later is required. Please upgrade your libcurl version.
25 #endif
26 
27 #if LIBXML_VERSION < 20616
28 #error libxml2 2.6.16 or later is required. Please upgrade your libxml2 version.
29 #endif
30 
31 /******************************************************************************/
32 /** GLOBAL VARIABLE FOR THE EXTENSION				                         **/
33 /******************************************************************************/
34 
35 /* {{{ ZEND_DECLARE_MODULE_GLOBALS(solr) */
36 ZEND_DECLARE_MODULE_GLOBALS(solr)
37 /* }}} */
38 
39 /******************************************************************************/
40 /** OBJECT HANDLERS AND DECLARATIONS FOR CLASS ENTRIES                       **/
41 /******************************************************************************/
42 
43 /* {{{ zend_class_entry declarations of the classes */
44 zend_class_entry *solr_ce_SolrObject;
45 zend_class_entry *solr_ce_SolrInputDocument;
46 zend_class_entry *solr_ce_SolrDocument;
47 zend_class_entry *solr_ce_SolrDocumentField;
48 zend_class_entry *solr_ce_SolrExtractRequest;
49 zend_class_entry *solr_ce_SolrClient;
50 zend_class_entry *solr_ce_SolrParams;
51 zend_class_entry *solr_ce_SolrModifiableParams;
52 zend_class_entry *solr_ce_SolrCollapseFunction;
53 zend_class_entry *solr_ce_SolrQuery;
54 zend_class_entry *solr_ce_SolrResponse;
55 zend_class_entry *solr_ce_SolrQueryResponse;
56 zend_class_entry *solr_ce_SolrUpdateResponse;
57 zend_class_entry *solr_ce_SolrPingResponse;
58 zend_class_entry *solr_ce_SolrGenericResponse;
59 zend_class_entry *solr_ce_SolrUtils;
60 zend_class_entry *solr_ce_SolrException;
61 zend_class_entry *solr_ce_SolrIllegalOperationException;
62 zend_class_entry *solr_ce_SolrIllegalArgumentException;
63 zend_class_entry *solr_ce_SolrClientException;
64 zend_class_entry *solr_ce_SolrServerException;
65 zend_class_entry *solr_ce_SolrMissingMandatoryParameterException;
66 /* }}} */
67 
68 /* {{{ zend_object_handlers */
69 zend_object_handlers solr_object_handlers;
70 zend_object_handlers solr_document_field_handlers;
71 zend_object_handlers solr_input_document_object_handlers;
72 zend_object_handlers solr_client_object_handlers;
73 zend_object_handlers solr_response_object_handlers;
74 zend_object_handlers solr_collapse_function_object_handlers;
75 zend_object_handlers solr_extract_request_object_handlers;
76 /* }}} */
77 
78 /* {{{ static void php_solr_globals_ctor(zend_solr_globals *solr_globals_arg)
79 	Global variable initializer. In ZTS mode, called once for each thread spawned. */
php_solr_globals_ctor(zend_solr_globals * solr_globals_arg)80 static void php_solr_globals_ctor(zend_solr_globals *solr_globals_arg)
81 {
82 	/* Initializing the counters to Zero */
83 	solr_globals_arg->request_count    = 0U;
84     solr_globals_arg->document_count   = 0U;
85     solr_globals_arg->client_count     = 0U;
86     solr_globals_arg->functions_count  = 0U;
87 
88     solr_globals_arg->documents   = NULL;
89     solr_globals_arg->clients     = NULL;
90     solr_globals_arg->params      = NULL;
91     solr_globals_arg->functions   = NULL;
92     solr_globals_arg->ustreams    = NULL;
93 }
94 /* }}} */
95 
96 /******************************************************************************/
97 /** DECLARING STRUCTURES FOR METHOD ARGUMENTS TYPE HINTING                   **/
98 /******************************************************************************/
99 
100 /* {{{ arg_info vectors for functions and methods */
101 
102 ZEND_BEGIN_ARG_INFO_EX(SolrObject__get_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
103 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, property_name)
104 ZEND_END_ARG_INFO()
105 
106 ZEND_BEGIN_ARG_INFO_EX(SolrObject__set_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 2)
107 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, property_name)
108 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, property_value)
109 ZEND_END_ARG_INFO()
110 
111 ZEND_BEGIN_ARG_INFO_EX(SolrObject_one_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
112 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, property_name)
113 ZEND_END_ARG_INFO()
114 
115 /* {{{ SolrDocument arguments */
116 ZEND_BEGIN_ARG_INFO_EX(SolrDocument__construct_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 0)
117 ZEND_END_ARG_INFO()
118 
119 ZEND_BEGIN_ARG_INFO_EX(SolrDocument_addField_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 2)
120 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, fieldName)
121 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, fieldValue)
122 ZEND_END_ARG_INFO()
123 
124 ZEND_BEGIN_ARG_INFO_EX(SolrDocument_getField_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
125 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, fieldName)
126 ZEND_END_ARG_INFO()
127 
128 ZEND_BEGIN_ARG_INFO_EX(SolrDocument_fieldExists_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
129 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, fieldName)
130 ZEND_END_ARG_INFO()
131 
132 ZEND_BEGIN_ARG_INFO_EX(SolrDocument_deleteField_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
133 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, fieldName)
134 ZEND_END_ARG_INFO()
135 
136 ZEND_BEGIN_ARG_INFO_EX(SolrDocument_sort_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
137 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, sortOrderBy)
138 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, sortDirection)
139 ZEND_END_ARG_INFO()
140 
141 ZEND_BEGIN_ARG_INFO_EX(SolrDocument_merge_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
142 ZEND_ARG_OBJ_INFO(SOLR_ARG_PASS_BY_REF_TRUE, sourceDoc, SolrDocument, SOLR_ARG_ALLOW_NULL_FALSE)
143 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, overwrite)
144 ZEND_END_ARG_INFO()
145 
146 ZEND_BEGIN_ARG_INFO_EX(SolrDocument_current_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 0)
147 ZEND_END_ARG_INFO()
148 
149 ZEND_BEGIN_ARG_INFO_EX(SolrDocument_getInputDocument_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 0)
150 ZEND_END_ARG_INFO()
151 
152 ZEND_BEGIN_ARG_INFO(SolrDocument_unserialize_args, 0)
153 ZEND_ARG_INFO(0, serialized)
154 ZEND_END_ARG_INFO()
155 /* }}} */
156 
157 /* {{{ SolrInputDocument arguments */
158 ZEND_BEGIN_ARG_INFO_EX(SolrInputDocument__construct_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 0)
159 ZEND_END_ARG_INFO()
160 
161 ZEND_BEGIN_ARG_INFO_EX(SolrInputDocument_setBoost_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
162 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, documentBoostValue)
163 ZEND_END_ARG_INFO()
164 
165 ZEND_BEGIN_ARG_INFO_EX(SolrInputDocument_addField_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 2)
166 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, fieldName)
167 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, fieldValue)
168 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, fieldBoostValue)
169 ZEND_END_ARG_INFO()
170 
171 ZEND_BEGIN_ARG_INFO_EX(SolrInputDocument_getFieldBoost_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
172 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, fieldName)
173 ZEND_END_ARG_INFO()
174 
175 ZEND_BEGIN_ARG_INFO_EX(SolrInputDocument_getField_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
176 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, fieldName)
177 ZEND_END_ARG_INFO()
178 
179 ZEND_BEGIN_ARG_INFO_EX(SolrInputDocument_setFieldBoost_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 2)
180 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, fieldName)
181 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, fieldBoostValue)
182 ZEND_END_ARG_INFO()
183 
184 ZEND_BEGIN_ARG_INFO_EX(SolrInputDocument_fieldExists_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
185 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, fieldName)
186 ZEND_END_ARG_INFO()
187 
188 ZEND_BEGIN_ARG_INFO_EX(SolrInputDocument_deleteField_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
189 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, fieldName)
190 ZEND_END_ARG_INFO()
191 
192 ZEND_BEGIN_ARG_INFO_EX(SolrInputDocument_sort_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
193 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, sortOrderBy)
194 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, sortDirection)
195 ZEND_END_ARG_INFO()
196 
197 ZEND_BEGIN_ARG_INFO_EX(SolrInputDocument_merge_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
198 ZEND_ARG_OBJ_INFO(SOLR_ARG_PASS_BY_REF_TRUE, sourceDoc, SolrInputDocument, SOLR_ARG_ALLOW_NULL_FALSE)
199 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, overwrite)
200 ZEND_END_ARG_INFO()
201 
202 ZEND_BEGIN_ARG_INFO_EX(SolrInputDocument_addChildDocument_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
203 ZEND_ARG_OBJ_INFO(SOLR_ARG_PASS_BY_REF_TRUE, child, SolrInputDocument, SOLR_ARG_ALLOW_NULL_FALSE)
204 ZEND_END_ARG_INFO()
205 
206 ZEND_BEGIN_ARG_INFO_EX(SolrInputDocument_addChildDocuments_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
207 ZEND_ARG_ARRAY_INFO(SOLR_ARG_PASS_BY_REF_TRUE, docs, SOLR_ARG_ALLOW_NULL_FALSE)
208 ZEND_END_ARG_INFO()
209 
210 ZEND_BEGIN_ARG_INFO_EX(SolrInputDocument_updateField_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 3)
211 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, fieldName)
212 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, modifier)
213 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, value)
214 ZEND_END_ARG_INFO()
215 
216 ZEND_BEGIN_ARG_INFO_EX(SolrInputDocument_setVersion_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
217 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, version)
218 ZEND_END_ARG_INFO()
219 /* }}} */
220 
221 /* {{{ SolrClient arguments */
222 ZEND_BEGIN_ARG_INFO_EX(SolrClient_constructor_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
223 ZEND_ARG_ARRAY_INFO(SOLR_ARG_PASS_BY_REF_FALSE, clientOptions, SOLR_ARG_ALLOW_NULL_FALSE)
224 ZEND_END_ARG_INFO()
225 
226 ZEND_BEGIN_ARG_INFO_EX(SolrClient_query_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
227 ZEND_ARG_OBJ_INFO(SOLR_ARG_PASS_BY_REF_TRUE, query, SolrParams, SOLR_ARG_ALLOW_NULL_FALSE)
228 ZEND_END_ARG_INFO()
229 
230 ZEND_BEGIN_ARG_INFO_EX(SolrClient_addDocument_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
231 ZEND_ARG_OBJ_INFO(SOLR_ARG_PASS_BY_REF_TRUE, doc, SolrInputDocument, SOLR_ARG_ALLOW_NULL_FALSE)
232 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, overwrite)
233 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, commitWithin)
234 ZEND_END_ARG_INFO()
235 
236 ZEND_BEGIN_ARG_INFO_EX(SolrClient_addDocuments_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
237 ZEND_ARG_ARRAY_INFO(SOLR_ARG_PASS_BY_REF_TRUE, docs, SOLR_ARG_ALLOW_NULL_FALSE)
238 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, overwrite)
239 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, commitWithin)
240 ZEND_END_ARG_INFO()
241 
242 ZEND_BEGIN_ARG_INFO_EX(SolrClient_sendUpdateStream_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
243 ZEND_ARG_OBJ_INFO(SOLR_ARG_PASS_BY_REF_TRUE, request, SolrExtractRequest, SOLR_ARG_ALLOW_NULL_FALSE)
244 ZEND_END_ARG_INFO()
245 
246 ZEND_BEGIN_ARG_INFO_EX(SolrClient_request_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
247 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, raw_request)
248 ZEND_END_ARG_INFO()
249 
250 ZEND_BEGIN_ARG_INFO_EX(SolrClient_setResponseWriter_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
251 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, responseWriter)
252 ZEND_END_ARG_INFO()
253 
254 ZEND_BEGIN_ARG_INFO_EX(SolrClient_commit_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 0)
255 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, softCommit)
256 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, waitSearcher)
257 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, expungeDeletes)
258 ZEND_END_ARG_INFO()
259 
260 ZEND_BEGIN_ARG_INFO_EX(SolrClient_optimize_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 0)
261 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, maxSegments)
262 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, softCommit)
263 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, waitSearcher)
264 ZEND_END_ARG_INFO()
265 
266 ZEND_BEGIN_ARG_INFO_EX(SolrClient_rollback_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 0)
267 ZEND_END_ARG_INFO()
268 
269 ZEND_BEGIN_ARG_INFO_EX(SolrClient_deleteById_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
270 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, id)
271 ZEND_END_ARG_INFO()
272 
273 ZEND_BEGIN_ARG_INFO_EX(SolrClient_deleteByIds_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
274 ZEND_ARG_ARRAY_INFO(SOLR_ARG_PASS_BY_REF_FALSE, ids, SOLR_ARG_ALLOW_NULL_FALSE)
275 ZEND_END_ARG_INFO()
276 
277 ZEND_BEGIN_ARG_INFO_EX(SolrClient_deleteByQuery_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
278 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, query)
279 ZEND_END_ARG_INFO()
280 
281 ZEND_BEGIN_ARG_INFO_EX(SolrClient_deleteByQueries_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
282 ZEND_ARG_ARRAY_INFO(SOLR_ARG_PASS_BY_REF_FALSE, queries, SOLR_ARG_ALLOW_NULL_FALSE)
283 ZEND_END_ARG_INFO()
284 
285 ZEND_BEGIN_ARG_INFO_EX(SolrClient_ping_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 0)
286 ZEND_END_ARG_INFO()
287 
288 ZEND_BEGIN_ARG_INFO_EX(SolrClient_threads_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 0)
289 ZEND_END_ARG_INFO()
290 
291 ZEND_BEGIN_ARG_INFO_EX(SolrClient_info_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 0)
292 ZEND_END_ARG_INFO()
293 
294 ZEND_BEGIN_ARG_INFO_EX(SolrClient_setServlet_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 2)
295 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, type)
296 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, value)
297 ZEND_END_ARG_INFO()
298 /* }}} */
299 
300 /* {{{ SolrParams arguments */
301 ZEND_BEGIN_ARG_INFO_EX(SolrParams_setParam_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 2)
302 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, name)
303 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, value)
304 ZEND_END_ARG_INFO()
305 
306 ZEND_BEGIN_ARG_INFO_EX(SolrParams_addParam_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 2)
307 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, name)
308 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, value)
309 ZEND_END_ARG_INFO()
310 
311 ZEND_BEGIN_ARG_INFO_EX(SolrParams_toString_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 0)
312 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, url_encode)
313 ZEND_END_ARG_INFO()
314 
315 ZEND_BEGIN_ARG_INFO_EX(SolrParams_getParam_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
316 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, param_name)
317 ZEND_END_ARG_INFO()
318 
319 ZEND_BEGIN_ARG_INFO(SolrParams_unserialize_args, 0)
320 ZEND_ARG_INFO(0, serialized)
321 ZEND_END_ARG_INFO()
322 /* }}} */
323 
324 /* {{{ SolrQuery arguments */
325 ZEND_BEGIN_ARG_INFO_EX(SolrQuery_constructor_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 0)
326 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, q)
327 ZEND_END_ARG_INFO()
328 
329 ZEND_BEGIN_ARG_INFO_EX(SolrQuery_setQuery_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
330 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, q)
331 ZEND_END_ARG_INFO()
332 
333 ZEND_BEGIN_ARG_INFO_EX(SolrQuery_setStart_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
334 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, start)
335 ZEND_END_ARG_INFO()
336 
337 ZEND_BEGIN_ARG_INFO_EX(SolrQuery_setRows_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
338 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, rows)
339 ZEND_END_ARG_INFO()
340 
341 ZEND_BEGIN_ARG_INFO_EX(SolrQuery_addField_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
342 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, field)
343 ZEND_END_ARG_INFO()
344 
345 ZEND_BEGIN_ARG_INFO_EX(SolrQuery_addSortField_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
346 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, field)
347 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, order)
348 ZEND_END_ARG_INFO()
349 
350 ZEND_BEGIN_ARG_INFO_EX(SolrQuery_addFilterQuery_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
351 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, fq)
352 ZEND_END_ARG_INFO()
353 
354 ZEND_BEGIN_ARG_INFO_EX(SolrQuery_setShowDebugInfo_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
355 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, flag)
356 ZEND_END_ARG_INFO()
357 
358 ZEND_BEGIN_ARG_INFO_EX(SolrQuery_setExplainOther_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
359 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, flag)
360 ZEND_END_ARG_INFO()
361 
362 ZEND_BEGIN_ARG_INFO_EX(SolrQuery_setTimeAllowed_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
363 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, timeAllowed)
364 ZEND_END_ARG_INFO()
365 
366 ZEND_BEGIN_ARG_INFO_EX(SolrQuery_setOmitHeader_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
367 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, flag)
368 ZEND_END_ARG_INFO()
369 
370 ZEND_BEGIN_ARG_INFO_EX(SolrQuery_setEchoHandler_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
371 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, flag)
372 ZEND_END_ARG_INFO()
373 
374 ZEND_BEGIN_ARG_INFO_EX(SolrQuery_setEchoParams_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
375 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, type)
376 ZEND_END_ARG_INFO()
377 
378 ZEND_BEGIN_ARG_INFO_EX(SolrQuery_facet_get_1_0_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 0)
379 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, field_override)
380 ZEND_END_ARG_INFO()
381 
382 ZEND_BEGIN_ARG_INFO_EX(SolrQuery_facet_1_1_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
383 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, value)
384 ZEND_END_ARG_INFO()
385 
386 ZEND_BEGIN_ARG_INFO_EX(SolrQuery_facet_2_1_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
387 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, value)
388 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, field_override)
389 ZEND_END_ARG_INFO()
390 
391 ZEND_BEGIN_ARG_INFO_EX(SolrQuery_group_1_1_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
392 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, value)
393 ZEND_END_ARG_INFO()
394 
395 ZEND_BEGIN_ARG_INFO_EX(SolrQuery_hl_get_1_0_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 0)
396 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, field_override)
397 ZEND_END_ARG_INFO()
398 
399 ZEND_BEGIN_ARG_INFO_EX(SolrQuery_hl_1_1_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
400 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, value)
401 ZEND_END_ARG_INFO()
402 
403 ZEND_BEGIN_ARG_INFO_EX(SolrQuery_hl_2_1_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
404 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, value)
405 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, field_override)
406 ZEND_END_ARG_INFO()
407 
408 ZEND_BEGIN_ARG_INFO_EX(SolrQuery_stats_1_1_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
409 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, value)
410 ZEND_END_ARG_INFO()
411 
412 ZEND_BEGIN_ARG_INFO_EX(SolrQuery_mlt_1_1_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
413 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, value)
414 ZEND_END_ARG_INFO()
415 
416 ZEND_BEGIN_ARG_INFO_EX(SolrQuery_mlt_2_2_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 2)
417 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, field)
418 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, boost)
419 ZEND_END_ARG_INFO()
420 
421 ZEND_BEGIN_ARG_INFO_EX(SolrQuery_terms_1_1_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
422 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, value)
423 ZEND_END_ARG_INFO()
424 
425 ZEND_BEGIN_ARG_INFO_EX(SolrQuery_setGroupCachePct_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
426 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, percent)
427 ZEND_END_ARG_INFO()
428 
429 ZEND_BEGIN_ARG_INFO_EX(SolrQuery_collapse_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
430 ZEND_ARG_OBJ_INFO(SOLR_ARG_PASS_BY_REF_TRUE, collapseFunction, SolrCollapseFunction, SOLR_ARG_ALLOW_NULL_FALSE)
431 ZEND_END_ARG_INFO()
432 
433 /* }}} */
434 
435 /* {{{ Solr Generic arguments */
436 ZEND_BEGIN_ARG_INFO_EX(Solr_no_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 0)
437 ZEND_END_ARG_INFO()
438 /* }}} */
439 
440 /* {{{ */
441 ZEND_BEGIN_ARG_INFO_EX(SolrResponse_setParseMode_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 0)
442 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, parser_mode)
443 ZEND_END_ARG_INFO()
444 /* }}} */
445 
446 /* {{{ SolrUtils */
447 ZEND_BEGIN_ARG_INFO_EX(SolrUtils_escapeQueryChars_arg, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
448 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, str)
449 ZEND_END_ARG_INFO()
450 
451 ZEND_BEGIN_ARG_INFO_EX(SolrUtils_digestXML_arg, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
452 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, xmlresponse)
453 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, parse_mode)
454 ZEND_END_ARG_INFO()
455 
456 ZEND_BEGIN_ARG_INFO_EX(SolrUtils_digestJson_arg, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
457 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, jsonResponse)
458 ZEND_END_ARG_INFO()
459 
460 /* }}} */
461 
462 ZEND_BEGIN_ARG_INFO_EX(SolrCollapseFunction_construct_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 0)
463 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, field)
464 ZEND_END_ARG_INFO()
465 
466 ZEND_BEGIN_ARG_INFO_EX(SolrCollapseFunction_set_size_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
467 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, size)
468 ZEND_END_ARG_INFO()
469 
470 ZEND_BEGIN_ARG_INFO_EX(SolrCollapseFunction_set_hint_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
471 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, hint)
472 ZEND_END_ARG_INFO()
473 
474 ZEND_BEGIN_ARG_INFO_EX(SolrCollapseFunction_set_max_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
475 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, max)
476 ZEND_END_ARG_INFO()
477 
478 ZEND_BEGIN_ARG_INFO_EX(SolrCollapseFunction_set_min_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
479 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, min)
480 ZEND_END_ARG_INFO()
481 
482 ZEND_BEGIN_ARG_INFO_EX(SolrCollapseFunction_set_field_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
483 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, fieldName)
484 ZEND_END_ARG_INFO()
485 
486 ZEND_BEGIN_ARG_INFO_EX(SolrCollapseFunction_set_null_policy_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
487 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, policy)
488 ZEND_END_ARG_INFO()
489 
490 ZEND_BEGIN_ARG_INFO_EX(SolrExtractRequest_createFromFile_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 2)
491 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, filename)
492 ZEND_ARG_OBJ_INFO(SOLR_ARG_PASS_BY_REF_TRUE, params, SolrModifiableParams, SOLR_ARG_ALLOW_NULL_FALSE)
493 ZEND_END_ARG_INFO()
494 
495 ZEND_BEGIN_ARG_INFO_EX(SolrExtractRequest_createFromStream_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 3)
496 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, content)
497 ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, mime_type)
498 ZEND_ARG_OBJ_INFO(SOLR_ARG_PASS_BY_REF_TRUE, params, SolrModifiableParams, SOLR_ARG_ALLOW_NULL_FALSE)
499 ZEND_END_ARG_INFO()
500 
501 
502 /* }}} */
503 
504 /* {{{ solr_functions[] */
505 static zend_function_entry solr_functions[] = {
506 	PHP_FE(solr_get_version, Solr_no_args)
507 
508 	PHP_FE_END
509 };
510 /* }}} */
511 
512 /* {{{ solr_object_methods */
513 static zend_function_entry solr_object_methods[] = {
514 	SOLR_CTOR(SolrObject, __construct, Solr_no_args)
515 	SOLR_DTOR(SolrObject, __destruct, Solr_no_args)
516 /**
517 	Temporarily disconnected for now.
518 	May be brought back in the future.
519 
520 	PHP_ME(SolrObject, __set, SolrObject__set_args, ZEND_ACC_PUBLIC)
521 	PHP_ME(SolrObject, __get, SolrObject__get_args, ZEND_ACC_PUBLIC)
522 	PHP_ME(SolrObject, __isset, SolrObject_one_args, ZEND_ACC_PUBLIC)
523 	PHP_ME(SolrObject, __unset, SolrObject_one_args, ZEND_ACC_PUBLIC)
524 */
525 	PHP_ME(SolrObject, offsetSet, SolrObject__set_args, ZEND_ACC_PUBLIC)
526 	PHP_ME(SolrObject, offsetGet, SolrObject__get_args, ZEND_ACC_PUBLIC)
527 	PHP_ME(SolrObject, offsetExists, SolrObject_one_args, ZEND_ACC_PUBLIC)
528 	PHP_ME(SolrObject, offsetUnset, SolrObject_one_args, ZEND_ACC_PUBLIC)
529 	PHP_ME(SolrObject, getPropertyNames, Solr_no_args, ZEND_ACC_PUBLIC)
530 
531 	PHP_FE_END
532 };
533 /* }}} */
534 
535 /* {{{ solr_document_methods */
536 static zend_function_entry solr_document_field_methods[] = {
537 	SOLR_CTOR(SolrDocumentField, __construct, Solr_no_args)
538 	SOLR_DTOR(SolrDocumentField, __destruct, Solr_no_args)
539 
540 	PHP_FE_END
541 };
542 /* }}} */
543 
544 /* {{{ solr_collapse_function_methods for the SolrCollapseFunction ce */
545 static zend_function_entry solr_collapse_function_methods[] = {
546     SOLR_CTOR(SolrCollapseFunction, __construct, SolrCollapseFunction_construct_args)
547     SOLR_DTOR(SolrCollapseFunction, __destruct, Solr_no_args)
548 
549     PHP_ME(SolrCollapseFunction, setField, SolrCollapseFunction_set_field_args, ZEND_ACC_PUBLIC)
550     PHP_ME(SolrCollapseFunction, getField, Solr_no_args, ZEND_ACC_PUBLIC)
551 
552     PHP_ME(SolrCollapseFunction, setMax, SolrCollapseFunction_set_max_args, ZEND_ACC_PUBLIC)
553     PHP_ME(SolrCollapseFunction, getMax, Solr_no_args, ZEND_ACC_PUBLIC)
554 
555     PHP_ME(SolrCollapseFunction, setMin, SolrCollapseFunction_set_min_args, ZEND_ACC_PUBLIC)
556     PHP_ME(SolrCollapseFunction, getMin, Solr_no_args, ZEND_ACC_PUBLIC)
557 
558     PHP_ME(SolrCollapseFunction, setSize, SolrCollapseFunction_set_size_args, ZEND_ACC_PUBLIC)
559     PHP_ME(SolrCollapseFunction, getSize, Solr_no_args, ZEND_ACC_PUBLIC)
560 
561     PHP_ME(SolrCollapseFunction, setHint, SolrCollapseFunction_set_hint_args, ZEND_ACC_PUBLIC)
562     PHP_ME(SolrCollapseFunction, getHint, Solr_no_args, ZEND_ACC_PUBLIC)
563 
564     PHP_ME(SolrCollapseFunction, setNullPolicy, SolrCollapseFunction_set_null_policy_args, ZEND_ACC_PUBLIC)
565     PHP_ME(SolrCollapseFunction, getNullPolicy, Solr_no_args, ZEND_ACC_PUBLIC)
566     PHP_ME(SolrCollapseFunction, __toString, Solr_no_args, ZEND_ACC_PUBLIC)
567     PHP_ME(SolrCollapseFunction, __sleep, Solr_no_args, ZEND_ACC_PUBLIC)
568     PHP_ME(SolrCollapseFunction, __wakeup, Solr_no_args, ZEND_ACC_PUBLIC)
569 
570     PHP_FE_END
571 };
572 /* }}} */
573 
574 /* {{{ solr_document_methods */
575 static zend_function_entry solr_document_methods[] = {
576 	SOLR_CTOR(SolrDocument, __construct, SolrDocument__construct_args)
577 	SOLR_DTOR(SolrDocument, __destruct, Solr_no_args)
578 
579 	PHP_ME(SolrDocument, __clone, Solr_no_args, ZEND_ACC_PUBLIC)
580 	PHP_ME(SolrDocument, __set, SolrDocument_addField_args, ZEND_ACC_PUBLIC)
581 	PHP_ME(SolrDocument, __get, SolrDocument_getField_args, ZEND_ACC_PUBLIC)
582 	PHP_ME(SolrDocument, __isset, SolrDocument_fieldExists_args, ZEND_ACC_PUBLIC)
583 	PHP_ME(SolrDocument, __unset, SolrDocument_deleteField_args, ZEND_ACC_PUBLIC)
584 
585 	PHP_ME(SolrDocument, offsetSet, SolrDocument_addField_args, ZEND_ACC_PUBLIC)
586 	PHP_ME(SolrDocument, offsetGet, SolrDocument_getField_args, ZEND_ACC_PUBLIC)
587 	PHP_ME(SolrDocument, offsetExists, SolrDocument_fieldExists_args, ZEND_ACC_PUBLIC)
588 	PHP_ME(SolrDocument, offsetUnset, SolrDocument_deleteField_args, ZEND_ACC_PUBLIC)
589 
590 	PHP_ME(SolrDocument, current, SolrDocument_current_args, ZEND_ACC_PUBLIC)
591 	PHP_ME(SolrDocument, key, Solr_no_args, ZEND_ACC_PUBLIC)
592 	PHP_ME(SolrDocument, next, Solr_no_args, ZEND_ACC_PUBLIC)
593 	PHP_ME(SolrDocument, rewind, Solr_no_args, ZEND_ACC_PUBLIC)
594 	PHP_ME(SolrDocument, valid, Solr_no_args, ZEND_ACC_PUBLIC)
595 
596 	PHP_ME(SolrDocument, serialize, Solr_no_args, ZEND_ACC_PUBLIC)
597 	PHP_ME(SolrDocument, unserialize, SolrDocument_unserialize_args, ZEND_ACC_PUBLIC)
598 
599 	PHP_ME(SolrDocument, clear, Solr_no_args, ZEND_ACC_PUBLIC)
600 	PHP_MALIAS(SolrDocument, reset, clear, Solr_no_args, ZEND_ACC_PUBLIC)
601 	PHP_ME(SolrDocument, addField, SolrDocument_addField_args, ZEND_ACC_PUBLIC)
602 	PHP_ME(SolrDocument, getFieldNames, Solr_no_args, ZEND_ACC_PUBLIC)
603 	PHP_ME(SolrDocument, getFieldCount, Solr_no_args, ZEND_ACC_PUBLIC)
604 	PHP_ME(SolrDocument, getField, SolrDocument_getField_args, ZEND_ACC_PUBLIC)
605 	PHP_ME(SolrDocument, toArray, Solr_no_args, ZEND_ACC_PUBLIC)
606 	PHP_ME(SolrDocument, fieldExists, SolrDocument_fieldExists_args, ZEND_ACC_PUBLIC)
607 	PHP_ME(SolrDocument, deleteField, SolrDocument_deleteField_args, ZEND_ACC_PUBLIC)
608 	PHP_ME(SolrDocument, sort, SolrDocument_sort_args, ZEND_ACC_PUBLIC)
609 	PHP_ME(SolrDocument, merge, SolrDocument_merge_args, ZEND_ACC_PUBLIC)
610 	PHP_ME(SolrDocument, getInputDocument, SolrDocument_getInputDocument_args, ZEND_ACC_PUBLIC)
611 	PHP_ME(SolrDocument, getChildDocumentsCount, Solr_no_args, ZEND_ACC_PUBLIC)
612 	PHP_ME(SolrDocument, hasChildDocuments, Solr_no_args, ZEND_ACC_PUBLIC)
613 	PHP_ME(SolrDocument, getChildDocuments, Solr_no_args, ZEND_ACC_PUBLIC)
614 	PHP_FE_END
615 };
616 /* }}} */
617 
618 /* {{{ solr_input_document_methods */
619 static zend_function_entry solr_input_document_methods[] = {
620 	SOLR_CTOR(SolrInputDocument, __construct, SolrInputDocument__construct_args)
621 	SOLR_DTOR(SolrInputDocument, __destruct, Solr_no_args)
622 	PHP_ME(SolrInputDocument, __clone, Solr_no_args, ZEND_ACC_PUBLIC)
623 	PHP_ME(SolrInputDocument, __sleep, Solr_no_args, ZEND_ACC_PUBLIC)
624 	PHP_ME(SolrInputDocument, __wakeup, Solr_no_args, ZEND_ACC_PUBLIC)
625 	PHP_ME(SolrInputDocument, setBoost, SolrInputDocument_setBoost_args, ZEND_ACC_PUBLIC)
626 	PHP_ME(SolrInputDocument, getBoost, Solr_no_args, ZEND_ACC_PUBLIC)
627 	PHP_ME(SolrInputDocument, clear, Solr_no_args, ZEND_ACC_PUBLIC)
628 	PHP_MALIAS(SolrInputDocument, reset, clear, Solr_no_args, ZEND_ACC_PUBLIC)
629 	PHP_ME(SolrInputDocument, addField, SolrInputDocument_addField_args, ZEND_ACC_PUBLIC)
630 	PHP_ME(SolrInputDocument, updateField, SolrInputDocument_updateField_args, ZEND_ACC_PUBLIC)
631 	PHP_ME(SolrInputDocument, getFieldBoost, SolrInputDocument_getFieldBoost_args, ZEND_ACC_PUBLIC)
632 	PHP_ME(SolrInputDocument, setFieldBoost, SolrInputDocument_setFieldBoost_args, ZEND_ACC_PUBLIC)
633 	PHP_ME(SolrInputDocument, getFieldNames, Solr_no_args, ZEND_ACC_PUBLIC)
634 	PHP_ME(SolrInputDocument, getFieldCount, Solr_no_args, ZEND_ACC_PUBLIC)
635 	PHP_ME(SolrInputDocument, getField, SolrInputDocument_getField_args, ZEND_ACC_PUBLIC)
636 	PHP_ME(SolrInputDocument, toArray, Solr_no_args, ZEND_ACC_PUBLIC)
637 	PHP_ME(SolrInputDocument, fieldExists, SolrInputDocument_fieldExists_args, ZEND_ACC_PUBLIC)
638 	PHP_ME(SolrInputDocument, deleteField, SolrInputDocument_deleteField_args, ZEND_ACC_PUBLIC)
639 	PHP_ME(SolrInputDocument, sort, SolrInputDocument_sort_args, ZEND_ACC_PUBLIC)
640 	PHP_ME(SolrInputDocument, merge, SolrInputDocument_merge_args, ZEND_ACC_PUBLIC)
641 	PHP_ME(SolrInputDocument, addChildDocument, SolrInputDocument_addChildDocument_args, ZEND_ACC_PUBLIC)
642 	PHP_ME(SolrInputDocument, getChildDocuments, Solr_no_args, ZEND_ACC_PUBLIC)
643 	PHP_ME(SolrInputDocument, hasChildDocuments, Solr_no_args, ZEND_ACC_PUBLIC)
644 	PHP_ME(SolrInputDocument, getChildDocumentsCount, Solr_no_args, ZEND_ACC_PUBLIC)
645 	PHP_ME(SolrInputDocument, addChildDocuments, SolrInputDocument_addChildDocuments_args, ZEND_ACC_PUBLIC)
646 	PHP_ME(SolrInputDocument, setVersion, SolrInputDocument_setVersion_args, ZEND_ACC_PUBLIC)
647 	PHP_ME(SolrInputDocument, getVersion, Solr_no_args, ZEND_ACC_PUBLIC)
648 	PHP_FE_END
649 };
650 /* }}} */
651 
652 /* {{{ solr_client_methods */
653 static zend_function_entry solr_client_methods[] = {
654 	SOLR_CTOR(SolrClient, __construct, SolrClient_constructor_args)
655 	SOLR_DTOR(SolrClient, __destruct, Solr_no_args)
656 	PHP_ME(SolrClient, __sleep, Solr_no_args, ZEND_ACC_PUBLIC)
657 	PHP_ME(SolrClient, __wakeup, Solr_no_args, ZEND_ACC_PUBLIC)
658 	PHP_ME(SolrClient, __clone, Solr_no_args, ZEND_ACC_PUBLIC)
659 	PHP_ME(SolrClient, getOptions, Solr_no_args, ZEND_ACC_PUBLIC)
660 	PHP_ME(SolrClient, getDebug, Solr_no_args, ZEND_ACC_PUBLIC)
661 	PHP_ME(SolrClient, setServlet, SolrClient_setServlet_args, ZEND_ACC_PUBLIC)
662 	PHP_ME(SolrClient, query, SolrClient_query_args, ZEND_ACC_PUBLIC)
663 	PHP_ME(SolrClient, addDocument, SolrClient_addDocument_args, ZEND_ACC_PUBLIC)
664 	PHP_ME(SolrClient, addDocuments, SolrClient_addDocuments_args, ZEND_ACC_PUBLIC)
665 	PHP_ME(SolrClient, sendUpdateStream, SolrClient_sendUpdateStream_args, ZEND_ACC_PUBLIC)
666 	PHP_ME(SolrClient, request, SolrClient_request_args, ZEND_ACC_PUBLIC)
667 	PHP_ME(SolrClient, setResponseWriter, SolrClient_setResponseWriter_args, ZEND_ACC_PUBLIC)
668 	PHP_ME(SolrClient, deleteById, SolrClient_deleteById_args, ZEND_ACC_PUBLIC)
669 	PHP_ME(SolrClient, deleteByIds, SolrClient_deleteByIds_args, ZEND_ACC_PUBLIC)
670 	PHP_ME(SolrClient, deleteByQuery, SolrClient_deleteByQuery_args, ZEND_ACC_PUBLIC)
671 	PHP_ME(SolrClient, deleteByQueries, SolrClient_deleteByQueries_args, ZEND_ACC_PUBLIC)
672 	PHP_ME(SolrClient, getById, SolrClient_deleteById_args, ZEND_ACC_PUBLIC)
673 	PHP_ME(SolrClient, getByIds, SolrClient_deleteByIds_args, ZEND_ACC_PUBLIC)
674 	PHP_ME(SolrClient, commit, SolrClient_commit_args, ZEND_ACC_PUBLIC)
675 	PHP_ME(SolrClient, optimize, SolrClient_optimize_args, ZEND_ACC_PUBLIC)
676 	PHP_ME(SolrClient, rollback, SolrClient_rollback_args, ZEND_ACC_PUBLIC)
677 	PHP_ME(SolrClient, ping, SolrClient_ping_args, ZEND_ACC_PUBLIC)
678 	PHP_ME(SolrClient, system, SolrClient_info_args, ZEND_ACC_PUBLIC)
679 	PHP_ME(SolrClient, threads, SolrClient_threads_args, ZEND_ACC_PUBLIC)
680 
681 	PHP_FE_END
682 };
683 /* }}} */
684 
685 /* {{{ solr_exception_methods. None. */
686 static zend_function_entry solr_exception_methods[] = {
687 	PHP_ME(SolrException, getInternalInfo, Solr_no_args, ZEND_ACC_PUBLIC)
688 
689 	PHP_FE_END
690 };
691 /* }}} */
692 
693 /* {{{ solr_exception_methods. None. */
694 static zend_function_entry solr_client_exception_methods[] = {
695 	PHP_ME(SolrClientException, getInternalInfo, Solr_no_args, ZEND_ACC_PUBLIC)
696 
697 	PHP_FE_END
698 };
699 /* }}} */
700 
701 /* {{{ solr_exception_methods. None. */
702 static zend_function_entry solr_server_exception_methods[] = {
703     PHP_ME(SolrServerException, getInternalInfo, Solr_no_args, ZEND_ACC_PUBLIC)
704 
705     PHP_FE_END
706 };
707 /* }}} */
708 
709 /* {{{ solr_exception_methods. None. */
710 static zend_function_entry solr_illegal_operation_exception_methods[] = {
711 	PHP_ME(SolrIllegalOperationException, getInternalInfo, Solr_no_args, ZEND_ACC_PUBLIC)
712 
713 	PHP_FE_END
714 };
715 /* }}} */
716 
717 /* {{{ solr_exception_methods. None. */
718 static zend_function_entry solr_illegal_argument_exception_methods[] = {
719 	PHP_ME(SolrIllegalArgumentException, getInternalInfo, Solr_no_args, ZEND_ACC_PUBLIC)
720 
721 	PHP_FE_END
722 };
723 /* }}} */
724 
725 /* PHP_MALIAS(SolrInputDocument, reset, clear, Solr_no_args, ZEND_ACC_PUBLIC) */
726 
727 /* {{{ solr_params_methods. */
728 static zend_function_entry solr_params_methods[] = {
729 	PHP_ME(SolrParams, setParam,  SolrParams_setParam_args, ZEND_ACC_PUBLIC)
730 	PHP_ME(SolrParams, addParam,  SolrParams_addParam_args, ZEND_ACC_PUBLIC)
731 	PHP_ME(SolrParams, __toString, Solr_no_args, ZEND_ACC_PUBLIC)
732 	PHP_ME(SolrParams, toString, SolrParams_toString_args, ZEND_ACC_PUBLIC)
733 	PHP_ME(SolrParams, getParams, Solr_no_args, ZEND_ACC_PUBLIC)
734 	PHP_ME(SolrParams, getParam, SolrParams_getParam_args, ZEND_ACC_PUBLIC)
735 	PHP_ME(SolrParams, getPreparedParams, Solr_no_args, ZEND_ACC_PUBLIC)
736 	PHP_ME(SolrParams, __clone, Solr_no_args, ZEND_ACC_PUBLIC)
737 	PHP_ME(SolrParams, serialize,   Solr_no_args, ZEND_ACC_PUBLIC)
738 	PHP_ME(SolrParams, unserialize,  SolrParams_unserialize_args, ZEND_ACC_PUBLIC)
739 	PHP_MALIAS(SolrParams, add, addParam, SolrParams_addParam_args, ZEND_ACC_PUBLIC)
740 	PHP_MALIAS(SolrParams, set, setParam, SolrParams_setParam_args, ZEND_ACC_PUBLIC)
741 	PHP_MALIAS(SolrParams, get, getParam, SolrParams_getParam_args, ZEND_ACC_PUBLIC)
742 
743 	PHP_FE_END
744 };
745 /* }}} */
746 
747 /* {{{ solr_modifiable_params_methods. */
748 static zend_function_entry solr_modifiable_params_methods[] = {
749 	SOLR_CTOR(SolrModifiableParams, __construct, Solr_no_args)
750 	SOLR_DTOR(SolrModifiableParams, __destruct, Solr_no_args)
751 
752 	PHP_FE_END
753 };
754 /* }}} */
755 
756 static zend_function_entry solr_extract_request_methods[] = {
757     PHP_ME(SolrExtractRequest, __construct, Solr_no_args, ZEND_ACC_PRIVATE | ZEND_ACC_CTOR)
758     PHP_ME(SolrExtractRequest, __destruct, Solr_no_args, ZEND_ACC_PUBLIC)
759     PHP_ME(SolrExtractRequest, createFromFile, SolrExtractRequest_createFromFile_args, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC)
760     PHP_ME(SolrExtractRequest, createFromStream, SolrExtractRequest_createFromStream_args, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC)
761     PHP_ME(SolrExtractRequest, __clone, Solr_no_args, ZEND_ACC_PUBLIC)
762     PHP_ME(SolrExtractRequest, __sleep, Solr_no_args, ZEND_ACC_PUBLIC)
763     PHP_ME(SolrExtractRequest, __wakeup, Solr_no_args, ZEND_ACC_PUBLIC)
764     PHP_FE_END
765 };
766 
767 /* {{{ solr_query_methods. */
768 static zend_function_entry solr_query_methods[] = {
769 	SOLR_CTOR(SolrQuery, __construct, SolrQuery_constructor_args)
770 	SOLR_DTOR(SolrQuery, __destruct, Solr_no_args)
771 
772 	/* CommonQueryParameters  */
773 	PHP_ME(SolrQuery, setQuery, SolrQuery_setQuery_args, ZEND_ACC_PUBLIC)
774 	PHP_ME(SolrQuery, getQuery, Solr_no_args, ZEND_ACC_PUBLIC)
775 	PHP_ME(SolrQuery, setStart, SolrQuery_setStart_args, ZEND_ACC_PUBLIC)
776 	PHP_ME(SolrQuery, getStart, Solr_no_args, ZEND_ACC_PUBLIC)
777 	PHP_ME(SolrQuery, setRows,  SolrQuery_setRows_args, ZEND_ACC_PUBLIC)
778 	PHP_ME(SolrQuery, getRows,  Solr_no_args, ZEND_ACC_PUBLIC)
779 	PHP_ME(SolrQuery, addField,  SolrQuery_addField_args, ZEND_ACC_PUBLIC)
780 	PHP_ME(SolrQuery, removeField,  SolrQuery_addField_args, ZEND_ACC_PUBLIC)
781 	PHP_ME(SolrQuery, getFields,  Solr_no_args, ZEND_ACC_PUBLIC)
782 	PHP_ME(SolrQuery, addSortField,  SolrQuery_addSortField_args, ZEND_ACC_PUBLIC)
783 	PHP_ME(SolrQuery, removeSortField,  SolrQuery_addField_args, ZEND_ACC_PUBLIC)
784 	PHP_ME(SolrQuery, getSortFields,  Solr_no_args, ZEND_ACC_PUBLIC)
785 	PHP_ME(SolrQuery, addFilterQuery,  SolrQuery_addFilterQuery_args, ZEND_ACC_PUBLIC)
786 	PHP_ME(SolrQuery, removeFilterQuery,  SolrQuery_addFilterQuery_args, ZEND_ACC_PUBLIC)
787 	PHP_ME(SolrQuery, getFilterQueries,  Solr_no_args, ZEND_ACC_PUBLIC)
788 	PHP_ME(SolrQuery, setShowDebugInfo,  SolrQuery_setShowDebugInfo_args, ZEND_ACC_PUBLIC)
789 	PHP_ME(SolrQuery, setExplainOther,  SolrQuery_setExplainOther_args, ZEND_ACC_PUBLIC)
790 	PHP_ME(SolrQuery, setTimeAllowed,  SolrQuery_setTimeAllowed_args, ZEND_ACC_PUBLIC)
791 	PHP_ME(SolrQuery, getTimeAllowed,  Solr_no_args, ZEND_ACC_PUBLIC)
792 	PHP_ME(SolrQuery, setOmitHeader,  SolrQuery_setOmitHeader_args, ZEND_ACC_PUBLIC)
793 
794 	/* CoreQueryParameters */
795 	PHP_ME(SolrQuery, setEchoHandler,  SolrQuery_setEchoHandler_args, ZEND_ACC_PUBLIC)
796 	PHP_ME(SolrQuery, setEchoParams,  SolrQuery_setEchoParams_args, ZEND_ACC_PUBLIC)
797 
798 	/* SimpleFacetParameters */
799 	PHP_ME(SolrQuery, setFacet,  SolrQuery_facet_1_1_args, ZEND_ACC_PUBLIC)
800 	PHP_ME(SolrQuery, getFacet,  Solr_no_args, ZEND_ACC_PUBLIC)
801 	PHP_ME(SolrQuery, addFacetField,  SolrQuery_facet_1_1_args, ZEND_ACC_PUBLIC)
802 	PHP_ME(SolrQuery, removeFacetField,  SolrQuery_facet_1_1_args, ZEND_ACC_PUBLIC)
803 	PHP_ME(SolrQuery, getFacetFields,  Solr_no_args, ZEND_ACC_PUBLIC)
804 	PHP_ME(SolrQuery, addFacetQuery,  SolrQuery_facet_1_1_args, ZEND_ACC_PUBLIC)
805 	PHP_ME(SolrQuery, removeFacetQuery,  SolrQuery_facet_1_1_args, ZEND_ACC_PUBLIC)
806 	PHP_ME(SolrQuery, getFacetQueries,  Solr_no_args, ZEND_ACC_PUBLIC)
807 	PHP_ME(SolrQuery, setFacetPrefix,  SolrQuery_facet_2_1_args, ZEND_ACC_PUBLIC)
808 	PHP_ME(SolrQuery, getFacetPrefix,  SolrQuery_facet_get_1_0_args, ZEND_ACC_PUBLIC)
809 	PHP_ME(SolrQuery, setFacetSort,  SolrQuery_facet_2_1_args, ZEND_ACC_PUBLIC)
810 	PHP_ME(SolrQuery, getFacetSort,  SolrQuery_facet_get_1_0_args, ZEND_ACC_PUBLIC)
811 	PHP_ME(SolrQuery, setFacetLimit,  SolrQuery_facet_2_1_args, ZEND_ACC_PUBLIC)
812 	PHP_ME(SolrQuery, getFacetLimit,  SolrQuery_facet_get_1_0_args, ZEND_ACC_PUBLIC)
813 	PHP_ME(SolrQuery, setFacetOffset,  SolrQuery_facet_2_1_args, ZEND_ACC_PUBLIC)
814 	PHP_ME(SolrQuery, getFacetOffset,  SolrQuery_facet_get_1_0_args, ZEND_ACC_PUBLIC)
815 	PHP_ME(SolrQuery, setFacetMinCount,  SolrQuery_facet_2_1_args, ZEND_ACC_PUBLIC)
816 	PHP_ME(SolrQuery, getFacetMinCount,  SolrQuery_facet_get_1_0_args, ZEND_ACC_PUBLIC)
817 	PHP_ME(SolrQuery, setFacetMissing,  SolrQuery_facet_2_1_args, ZEND_ACC_PUBLIC)
818 	PHP_ME(SolrQuery, getFacetMissing,  SolrQuery_facet_get_1_0_args, ZEND_ACC_PUBLIC)
819 	PHP_ME(SolrQuery, setFacetMethod,  SolrQuery_facet_2_1_args, ZEND_ACC_PUBLIC)
820 	PHP_ME(SolrQuery, getFacetMethod,  SolrQuery_facet_get_1_0_args, ZEND_ACC_PUBLIC)
821 	PHP_ME(SolrQuery, setFacetEnumCacheMinDefaultFrequency,  SolrQuery_facet_2_1_args, ZEND_ACC_PUBLIC)
822 
823 	/* Date Faceting Parameters */
824 	PHP_ME(SolrQuery, addFacetDateField,  SolrQuery_facet_1_1_args, ZEND_ACC_PUBLIC)
825 	PHP_ME(SolrQuery, removeFacetDateField,  SolrQuery_facet_1_1_args, ZEND_ACC_PUBLIC)
826 	PHP_ME(SolrQuery, getFacetDateFields,  Solr_no_args, ZEND_ACC_PUBLIC)
827 	PHP_ME(SolrQuery, setFacetDateStart,  SolrQuery_facet_2_1_args, ZEND_ACC_PUBLIC)
828 	PHP_ME(SolrQuery, getFacetDateStart,  SolrQuery_facet_get_1_0_args, ZEND_ACC_PUBLIC)
829 	PHP_ME(SolrQuery, setFacetDateEnd,  SolrQuery_facet_2_1_args, ZEND_ACC_PUBLIC)
830 	PHP_ME(SolrQuery, getFacetDateEnd,  SolrQuery_facet_get_1_0_args, ZEND_ACC_PUBLIC)
831 	PHP_ME(SolrQuery, setFacetDateGap,  SolrQuery_facet_2_1_args, ZEND_ACC_PUBLIC)
832 	PHP_ME(SolrQuery, getFacetDateGap,  SolrQuery_facet_get_1_0_args, ZEND_ACC_PUBLIC)
833 	PHP_ME(SolrQuery, setFacetDateHardEnd,  SolrQuery_facet_2_1_args, ZEND_ACC_PUBLIC)
834 	PHP_ME(SolrQuery, getFacetDateHardEnd,  SolrQuery_facet_get_1_0_args, ZEND_ACC_PUBLIC)
835 	PHP_ME(SolrQuery, addFacetDateOther,  SolrQuery_facet_2_1_args, ZEND_ACC_PUBLIC)
836 	PHP_ME(SolrQuery, removeFacetDateOther,  SolrQuery_facet_2_1_args, ZEND_ACC_PUBLIC)
837 	PHP_ME(SolrQuery, getFacetDateOther,  SolrQuery_facet_get_1_0_args, ZEND_ACC_PUBLIC)
838 
839 	/* SimpleGroupParameters */
840 	PHP_ME(SolrQuery, setGroup,  SolrQuery_group_1_1_args, ZEND_ACC_PUBLIC)
841 	PHP_ME(SolrQuery, getGroup, Solr_no_args, ZEND_ACC_PUBLIC)
842 	PHP_ME(SolrQuery, addGroupField,  SolrQuery_group_1_1_args, ZEND_ACC_PUBLIC)
843 	PHP_ME(SolrQuery, getGroupFields,  Solr_no_args, ZEND_ACC_PUBLIC)
844 	PHP_ME(SolrQuery, addGroupFunction,  SolrQuery_group_1_1_args, ZEND_ACC_PUBLIC)
845 	PHP_ME(SolrQuery, getGroupFunctions, Solr_no_args, ZEND_ACC_PUBLIC)
846 	PHP_ME(SolrQuery, addGroupQuery,  SolrQuery_group_1_1_args, ZEND_ACC_PUBLIC)
847 	PHP_ME(SolrQuery, getGroupQueries, Solr_no_args, ZEND_ACC_PUBLIC)
848 	PHP_ME(SolrQuery, setGroupLimit,  SolrQuery_group_1_1_args, ZEND_ACC_PUBLIC)
849 	PHP_ME(SolrQuery, getGroupLimit, Solr_no_args, ZEND_ACC_PUBLIC)
850 	PHP_ME(SolrQuery, setGroupOffset,  SolrQuery_group_1_1_args, ZEND_ACC_PUBLIC)
851 	PHP_ME(SolrQuery, getGroupOffset, Solr_no_args, ZEND_ACC_PUBLIC)
852 	PHP_ME(SolrQuery, addGroupSortField,  SolrQuery_addSortField_args, ZEND_ACC_PUBLIC)
853 	PHP_ME(SolrQuery, getGroupSortFields, Solr_no_args, ZEND_ACC_PUBLIC)
854 	PHP_ME(SolrQuery, setGroupFormat,  SolrQuery_group_1_1_args, ZEND_ACC_PUBLIC)
855 	PHP_ME(SolrQuery, getGroupFormat, Solr_no_args, ZEND_ACC_PUBLIC)
856 	PHP_ME(SolrQuery, setGroupMain,  SolrQuery_group_1_1_args, ZEND_ACC_PUBLIC)
857 	PHP_ME(SolrQuery, getGroupMain, Solr_no_args, ZEND_ACC_PUBLIC)
858 	PHP_ME(SolrQuery, setGroupNGroups,  SolrQuery_group_1_1_args, ZEND_ACC_PUBLIC)
859 	PHP_ME(SolrQuery, getGroupNGroups, Solr_no_args, ZEND_ACC_PUBLIC)
860 	PHP_ME(SolrQuery, setGroupTruncate,  SolrQuery_group_1_1_args, ZEND_ACC_PUBLIC)
861 	PHP_ME(SolrQuery, getGroupTruncate, Solr_no_args, ZEND_ACC_PUBLIC)
862 	PHP_ME(SolrQuery, setGroupFacet,  SolrQuery_group_1_1_args, ZEND_ACC_PUBLIC)
863 	PHP_ME(SolrQuery, getGroupFacet, Solr_no_args, ZEND_ACC_PUBLIC)
864 	PHP_ME(SolrQuery, setGroupCachePercent, SolrQuery_setGroupCachePct_args, ZEND_ACC_PUBLIC)
865 	PHP_ME(SolrQuery, getGroupCachePercent, Solr_no_args, ZEND_ACC_PUBLIC)
866 
867 	/* Collapse Function */
868 	PHP_ME(SolrQuery, collapse, SolrQuery_collapse_args, ZEND_ACC_PUBLIC)
869 
870 	/* Expand Componenet */
871 	PHP_ME(SolrQuery, setExpand, SolrQuery_group_1_1_args, ZEND_ACC_PUBLIC)
872 	PHP_ME(SolrQuery, getExpand, Solr_no_args, ZEND_ACC_PUBLIC)
873 
874 	PHP_ME(SolrQuery, addExpandSortField, SolrQuery_addSortField_args, ZEND_ACC_PUBLIC)
875 	PHP_ME(SolrQuery, removeExpandSortField, SolrQuery_addField_args, ZEND_ACC_PUBLIC)
876 	PHP_ME(SolrQuery, getExpandSortFields, Solr_no_args, ZEND_ACC_PUBLIC)
877 
878 	PHP_ME(SolrQuery, setExpandRows, SolrQuery_group_1_1_args, ZEND_ACC_PUBLIC)
879 	PHP_ME(SolrQuery, getExpandRows, Solr_no_args, ZEND_ACC_PUBLIC)
880 
881 	PHP_ME(SolrQuery, setExpandQuery, SolrQuery_setQuery_args, ZEND_ACC_PUBLIC)
882 	PHP_ME(SolrQuery, getExpandQuery, Solr_no_args, ZEND_ACC_PUBLIC)
883 
884 	PHP_ME(SolrQuery, addExpandFilterQuery, SolrQuery_addFilterQuery_args, ZEND_ACC_PUBLIC)
885 	PHP_ME(SolrQuery, removeExpandFilterQuery, SolrQuery_addFilterQuery_args, ZEND_ACC_PUBLIC)
886 	PHP_ME(SolrQuery, getExpandFilterQueries, Solr_no_args, ZEND_ACC_PUBLIC)
887 
888 	/* HighlightingParameters */
889 	PHP_ME(SolrQuery, setHighlight,  SolrQuery_hl_1_1_args, ZEND_ACC_PUBLIC)
890 	PHP_ME(SolrQuery, getHighlight,  Solr_no_args, ZEND_ACC_PUBLIC)
891 	PHP_ME(SolrQuery, addHighlightField,  SolrQuery_hl_1_1_args, ZEND_ACC_PUBLIC)
892 	PHP_ME(SolrQuery, removeHighlightField,  SolrQuery_hl_1_1_args, ZEND_ACC_PUBLIC)
893 	PHP_ME(SolrQuery, getHighlightFields,  Solr_no_args, ZEND_ACC_PUBLIC)
894 	PHP_ME(SolrQuery, setHighlightSnippets,  SolrQuery_hl_2_1_args, ZEND_ACC_PUBLIC)
895 	PHP_ME(SolrQuery, getHighlightSnippets,  SolrQuery_hl_get_1_0_args, ZEND_ACC_PUBLIC)
896 	PHP_ME(SolrQuery, setHighlightFragsize,  SolrQuery_hl_2_1_args, ZEND_ACC_PUBLIC)
897 	PHP_ME(SolrQuery, getHighlightFragsize,  SolrQuery_hl_get_1_0_args, ZEND_ACC_PUBLIC)
898 	PHP_ME(SolrQuery, setHighlightMergeContiguous,  SolrQuery_hl_2_1_args, ZEND_ACC_PUBLIC)
899 	PHP_ME(SolrQuery, getHighlightMergeContiguous,  SolrQuery_hl_get_1_0_args, ZEND_ACC_PUBLIC)
900 	PHP_ME(SolrQuery, setHighlightRequireFieldMatch,  SolrQuery_hl_1_1_args, ZEND_ACC_PUBLIC)
901 	PHP_ME(SolrQuery, getHighlightRequireFieldMatch,  Solr_no_args, ZEND_ACC_PUBLIC)
902 	PHP_ME(SolrQuery, setHighlightMaxAnalyzedChars,  SolrQuery_hl_1_1_args, ZEND_ACC_PUBLIC)
903 	PHP_ME(SolrQuery, getHighlightMaxAnalyzedChars,  Solr_no_args, ZEND_ACC_PUBLIC)
904 	PHP_ME(SolrQuery, setHighlightAlternateField,  SolrQuery_hl_2_1_args, ZEND_ACC_PUBLIC)
905 	PHP_ME(SolrQuery, getHighlightAlternateField,  SolrQuery_hl_get_1_0_args, ZEND_ACC_PUBLIC)
906 	PHP_ME(SolrQuery, setHighlightMaxAlternateFieldLength,  SolrQuery_hl_2_1_args, ZEND_ACC_PUBLIC)
907 	PHP_ME(SolrQuery, getHighlightMaxAlternateFieldLength,  SolrQuery_hl_get_1_0_args, ZEND_ACC_PUBLIC)
908 	PHP_ME(SolrQuery, setHighlightFormatter,  SolrQuery_hl_2_1_args, ZEND_ACC_PUBLIC)
909 	PHP_ME(SolrQuery, getHighlightFormatter,  SolrQuery_hl_get_1_0_args, ZEND_ACC_PUBLIC)
910 	PHP_ME(SolrQuery, setHighlightSimplePre,  SolrQuery_hl_2_1_args, ZEND_ACC_PUBLIC)
911 	PHP_ME(SolrQuery, getHighlightSimplePre,  SolrQuery_hl_get_1_0_args, ZEND_ACC_PUBLIC)
912 	PHP_ME(SolrQuery, setHighlightSimplePost,  SolrQuery_hl_2_1_args, ZEND_ACC_PUBLIC)
913 	PHP_ME(SolrQuery, getHighlightSimplePost,  SolrQuery_hl_get_1_0_args, ZEND_ACC_PUBLIC)
914 	PHP_ME(SolrQuery, setHighlightFragmenter,  SolrQuery_hl_2_1_args, ZEND_ACC_PUBLIC)
915 	PHP_ME(SolrQuery, getHighlightFragmenter,  SolrQuery_hl_get_1_0_args, ZEND_ACC_PUBLIC)
916 	PHP_ME(SolrQuery, setHighlightUsePhraseHighlighter,  SolrQuery_hl_1_1_args, ZEND_ACC_PUBLIC)
917 	PHP_ME(SolrQuery, getHighlightUsePhraseHighlighter,  Solr_no_args, ZEND_ACC_PUBLIC)
918 	PHP_ME(SolrQuery, setHighlightHighlightMultiTerm,  SolrQuery_hl_1_1_args, ZEND_ACC_PUBLIC)
919 	PHP_ME(SolrQuery, getHighlightHighlightMultiTerm,  Solr_no_args, ZEND_ACC_PUBLIC)
920 	PHP_ME(SolrQuery, setHighlightRegexSlop,  SolrQuery_hl_1_1_args, ZEND_ACC_PUBLIC)
921 	PHP_ME(SolrQuery, getHighlightRegexSlop,  Solr_no_args, ZEND_ACC_PUBLIC)
922 	PHP_ME(SolrQuery, setHighlightRegexPattern,  SolrQuery_hl_1_1_args, ZEND_ACC_PUBLIC)
923 	PHP_ME(SolrQuery, getHighlightRegexPattern,  Solr_no_args, ZEND_ACC_PUBLIC)
924 	PHP_ME(SolrQuery, setHighlightRegexMaxAnalyzedChars,  SolrQuery_hl_1_1_args, ZEND_ACC_PUBLIC)
925 	PHP_ME(SolrQuery, getHighlightRegexMaxAnalyzedChars,  Solr_no_args, ZEND_ACC_PUBLIC)
926 
927 	/* StatsComponent */
928 	PHP_ME(SolrQuery, setStats,  SolrQuery_stats_1_1_args, ZEND_ACC_PUBLIC)
929 	PHP_ME(SolrQuery, getStats,  Solr_no_args, ZEND_ACC_PUBLIC)
930 	PHP_ME(SolrQuery, addStatsField,  SolrQuery_stats_1_1_args, ZEND_ACC_PUBLIC)
931 	PHP_ME(SolrQuery, removeStatsField,  SolrQuery_stats_1_1_args, ZEND_ACC_PUBLIC)
932 	PHP_ME(SolrQuery, getStatsFields,  Solr_no_args, ZEND_ACC_PUBLIC)
933 	PHP_ME(SolrQuery, addStatsFacet,  SolrQuery_stats_1_1_args, ZEND_ACC_PUBLIC)
934 	PHP_ME(SolrQuery, removeStatsFacet,  SolrQuery_stats_1_1_args, ZEND_ACC_PUBLIC)
935 	PHP_ME(SolrQuery, getStatsFacets,  Solr_no_args, ZEND_ACC_PUBLIC)
936 
937 	/* MoreLikeThis */
938 	PHP_ME(SolrQuery, setMlt,  SolrQuery_mlt_1_1_args, ZEND_ACC_PUBLIC)
939 	PHP_ME(SolrQuery, getMlt,  Solr_no_args, ZEND_ACC_PUBLIC)
940 	PHP_ME(SolrQuery, setMltCount,  SolrQuery_mlt_1_1_args, ZEND_ACC_PUBLIC)
941 	PHP_ME(SolrQuery, getMltCount,  Solr_no_args, ZEND_ACC_PUBLIC)
942 	PHP_ME(SolrQuery, addMltField,  SolrQuery_mlt_1_1_args, ZEND_ACC_PUBLIC)
943 	PHP_ME(SolrQuery, removeMltField,  SolrQuery_mlt_1_1_args, ZEND_ACC_PUBLIC)
944 	PHP_ME(SolrQuery, getMltFields,  Solr_no_args, ZEND_ACC_PUBLIC)
945 	PHP_ME(SolrQuery, addMltQueryField,  SolrQuery_mlt_2_2_args, ZEND_ACC_PUBLIC)
946 	PHP_ME(SolrQuery, removeMltQueryField,  SolrQuery_mlt_1_1_args, ZEND_ACC_PUBLIC)
947 	PHP_ME(SolrQuery, getMltQueryFields,  Solr_no_args, ZEND_ACC_PUBLIC)
948 	PHP_ME(SolrQuery, setMltMinTermFrequency,  SolrQuery_mlt_1_1_args, ZEND_ACC_PUBLIC)
949 	PHP_ME(SolrQuery, getMltMinTermFrequency,  Solr_no_args, ZEND_ACC_PUBLIC)
950 	PHP_ME(SolrQuery, setMltMinDocFrequency,  SolrQuery_mlt_1_1_args, ZEND_ACC_PUBLIC)
951 	PHP_ME(SolrQuery, getMltMinDocFrequency,  Solr_no_args, ZEND_ACC_PUBLIC)
952 	PHP_ME(SolrQuery, setMltMinWordLength,  SolrQuery_mlt_1_1_args, ZEND_ACC_PUBLIC)
953 	PHP_ME(SolrQuery, getMltMinWordLength,  Solr_no_args, ZEND_ACC_PUBLIC)
954 	PHP_ME(SolrQuery, setMltMaxWordLength,  SolrQuery_mlt_1_1_args, ZEND_ACC_PUBLIC)
955 	PHP_ME(SolrQuery, getMltMaxWordLength,  Solr_no_args, ZEND_ACC_PUBLIC)
956 	PHP_ME(SolrQuery, setMltMaxNumTokens,  SolrQuery_mlt_1_1_args, ZEND_ACC_PUBLIC)
957 	PHP_ME(SolrQuery, getMltMaxNumTokens,  Solr_no_args, ZEND_ACC_PUBLIC)
958 	PHP_ME(SolrQuery, setMltMaxNumQueryTerms,  SolrQuery_mlt_1_1_args, ZEND_ACC_PUBLIC)
959 	PHP_ME(SolrQuery, getMltMaxNumQueryTerms,  Solr_no_args, ZEND_ACC_PUBLIC)
960 	PHP_ME(SolrQuery, setMltBoost,  SolrQuery_mlt_1_1_args, ZEND_ACC_PUBLIC)
961 	PHP_ME(SolrQuery, getMltBoost,  Solr_no_args, ZEND_ACC_PUBLIC)
962 
963 	/* TermsComponent */
964 	PHP_ME(SolrQuery, setTerms,  SolrQuery_terms_1_1_args, ZEND_ACC_PUBLIC)
965 	PHP_ME(SolrQuery, getTerms,  Solr_no_args, ZEND_ACC_PUBLIC)
966 	PHP_ME(SolrQuery, setTermsField,  SolrQuery_terms_1_1_args, ZEND_ACC_PUBLIC)
967 	PHP_ME(SolrQuery, getTermsField,  Solr_no_args, ZEND_ACC_PUBLIC)
968 	PHP_ME(SolrQuery, setTermsLowerBound,  SolrQuery_terms_1_1_args, ZEND_ACC_PUBLIC)
969 	PHP_ME(SolrQuery, getTermsLowerBound,  Solr_no_args, ZEND_ACC_PUBLIC)
970 	PHP_ME(SolrQuery, setTermsUpperBound,  SolrQuery_terms_1_1_args, ZEND_ACC_PUBLIC)
971 	PHP_ME(SolrQuery, getTermsUpperBound,  Solr_no_args, ZEND_ACC_PUBLIC)
972 	PHP_ME(SolrQuery, setTermsIncludeLowerBound,  SolrQuery_terms_1_1_args, ZEND_ACC_PUBLIC)
973 	PHP_ME(SolrQuery, getTermsIncludeLowerBound,  Solr_no_args, ZEND_ACC_PUBLIC)
974 	PHP_ME(SolrQuery, setTermsIncludeUpperBound,  SolrQuery_terms_1_1_args, ZEND_ACC_PUBLIC)
975 	PHP_ME(SolrQuery, getTermsIncludeUpperBound,  Solr_no_args, ZEND_ACC_PUBLIC)
976 	PHP_ME(SolrQuery, setTermsMinCount,  SolrQuery_terms_1_1_args, ZEND_ACC_PUBLIC)
977 	PHP_ME(SolrQuery, getTermsMinCount,  Solr_no_args, ZEND_ACC_PUBLIC)
978 	PHP_ME(SolrQuery, setTermsMaxCount,  SolrQuery_terms_1_1_args, ZEND_ACC_PUBLIC)
979 	PHP_ME(SolrQuery, getTermsMaxCount,  Solr_no_args, ZEND_ACC_PUBLIC)
980 	PHP_ME(SolrQuery, setTermsPrefix,  SolrQuery_terms_1_1_args, ZEND_ACC_PUBLIC)
981 	PHP_ME(SolrQuery, getTermsPrefix,  Solr_no_args, ZEND_ACC_PUBLIC)
982 	PHP_ME(SolrQuery, setTermsLimit,  SolrQuery_terms_1_1_args, ZEND_ACC_PUBLIC)
983 	PHP_ME(SolrQuery, getTermsLimit,  Solr_no_args, ZEND_ACC_PUBLIC)
984 	PHP_ME(SolrQuery, setTermsReturnRaw,  SolrQuery_terms_1_1_args, ZEND_ACC_PUBLIC)
985 	PHP_ME(SolrQuery, getTermsReturnRaw,  Solr_no_args, ZEND_ACC_PUBLIC)
986 	PHP_ME(SolrQuery, setTermsSort,  SolrQuery_terms_1_1_args, ZEND_ACC_PUBLIC)
987 	PHP_ME(SolrQuery, getTermsSort,  Solr_no_args, ZEND_ACC_PUBLIC)
988 
989 	/* TODO : TermVectorComponent */
990 
991 	PHP_FE_END
992 };
993 /* }}} */
994 
995 /* {{{ solr_response_methods. */
996 static zend_function_entry solr_response_methods[] = {
997 	PHP_ME(SolrResponse, getHttpStatus, Solr_no_args, ZEND_ACC_PUBLIC)
998 	PHP_ME(SolrResponse, getHttpStatusMessage, Solr_no_args, ZEND_ACC_PUBLIC)
999 	PHP_ME(SolrResponse, success, Solr_no_args, ZEND_ACC_PUBLIC)
1000 	PHP_ME(SolrResponse, getRequestUrl, Solr_no_args, ZEND_ACC_PUBLIC)
1001 	PHP_ME(SolrResponse, getRawRequestHeaders, Solr_no_args, ZEND_ACC_PUBLIC)
1002 	PHP_ME(SolrResponse, getRawRequest, Solr_no_args, ZEND_ACC_PUBLIC)
1003 	PHP_ME(SolrResponse, getRawResponseHeaders, Solr_no_args, ZEND_ACC_PUBLIC)
1004 	PHP_ME(SolrResponse, getRawResponse, Solr_no_args, ZEND_ACC_PUBLIC)
1005 	PHP_ME(SolrResponse, getDigestedResponse, Solr_no_args, ZEND_ACC_PUBLIC)
1006 	PHP_ME(SolrResponse, setParseMode, SolrResponse_setParseMode_args, ZEND_ACC_PUBLIC)
1007 	PHP_ME(SolrResponse, getResponse, Solr_no_args, ZEND_ACC_PUBLIC)
1008 	PHP_ME(SolrResponse, getArrayResponse, Solr_no_args, ZEND_ACC_PUBLIC)
1009 
1010 	PHP_FE_END
1011 };
1012 /* }}} */
1013 
1014 /* {{{ solr_query_response_methods. */
1015 static zend_function_entry solr_query_response_methods[] = {
1016 	SOLR_CTOR(SolrQueryResponse, __construct, Solr_no_args)
1017 	SOLR_DTOR(SolrQueryResponse, __destruct, Solr_no_args)
1018 
1019 	PHP_FE_END
1020 };
1021 /* }}} */
1022 
1023 /* {{{ solr_update_response_methods. */
1024 static zend_function_entry solr_update_response_methods[] = {
1025 	SOLR_CTOR(SolrUpdateResponse, __construct, Solr_no_args)
1026 	SOLR_DTOR(SolrUpdateResponse, __destruct, Solr_no_args)
1027 
1028 	PHP_FE_END
1029 };
1030 /* }}} */
1031 
1032 /* {{{ solr_ping_response_methods. */
1033 static zend_function_entry solr_ping_response_methods[] = {
1034 	SOLR_CTOR(SolrPingResponse, __construct, Solr_no_args)
1035 	SOLR_DTOR(SolrPingResponse, __destruct, Solr_no_args)
1036 	PHP_ME(SolrPingResponse, getResponse, Solr_no_args, ZEND_ACC_PUBLIC)
1037 
1038 	PHP_FE_END
1039 };
1040 /* }}} */
1041 
1042 /* {{{ solr_generic_response_methods. */
1043 static zend_function_entry solr_generic_response_methods[] = {
1044 	SOLR_CTOR(SolrGenericResponse, __construct, Solr_no_args)
1045 	SOLR_DTOR(SolrGenericResponse, __destruct, Solr_no_args)
1046 
1047 	PHP_FE_END
1048 };
1049 /* }}} */
1050 
1051 /* {{{ solr_utils_methods. */
1052 static zend_function_entry solr_utils_methods[] = {
1053 	PHP_ME(SolrUtils, escapeQueryChars, SolrUtils_escapeQueryChars_arg, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC)
1054 	PHP_ME(SolrUtils, queryPhrase, SolrUtils_escapeQueryChars_arg, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC)
1055 	PHP_ME(SolrUtils, digestXmlResponse, SolrUtils_digestXML_arg, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC)
1056 	PHP_ME(SolrUtils, digestJsonResponse, SolrUtils_digestJson_arg, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC)
1057 	PHP_ME(SolrUtils, getSolrVersion, Solr_no_args, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC)
1058 	PHP_ME(SolrUtils, getSolrStats, Solr_no_args, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC)
1059 
1060 	PHP_FE_END
1061 };
1062 /* }}} */
1063 
1064 /* {{{ solr_module_deps  */
1065 static zend_module_dep solr_module_deps[] = {
1066     ZEND_MOD_END
1067 };
1068 /* }}} */
1069 
1070 /* {{{ solr_module_entry */
1071 zend_module_entry solr_module_entry = {
1072 	STANDARD_MODULE_HEADER_EX, NULL,
1073 	solr_module_deps,
1074 	PHP_SOLR_EXTENSION_NAME,
1075 	solr_functions,
1076 	PHP_MINIT(solr),
1077 	PHP_MSHUTDOWN(solr),
1078 	PHP_RINIT(solr),
1079 	PHP_RSHUTDOWN(solr),
1080 	PHP_MINFO(solr),
1081 	PHP_SOLR_DOTTED_VERSION, /* The current extension version number. */
1082 	STANDARD_MODULE_PROPERTIES
1083 };
1084 /* }}} */
1085 
1086 #ifdef COMPILE_DL_SOLR
1087 ZEND_GET_MODULE(solr)
1088 #endif
1089 
1090 /* {{{ PHP_MINIT_FUNCTION */
PHP_MINIT_FUNCTION(solr)1091 PHP_MINIT_FUNCTION(solr)
1092 {
1093 
1094 #ifdef ZTS
1095 	/* As of ZE 2.2.0, this has to be NULL. */
1096 	/* It causes a segmentation fault, if it points to an actual function */
1097 	/* Probably a bug in the Zend Engine API */
1098 	ts_allocate_dtor php_solr_globals_dtor  = NULL;
1099 #endif
1100 
1101 	zend_class_entry ce;
1102 
1103 	memcpy(&solr_object_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers));
1104 	memcpy(&solr_document_field_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers));
1105 	memcpy(&solr_input_document_object_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers));
1106 	memcpy(&solr_client_object_handlers, &solr_input_document_object_handlers, sizeof(zend_object_handlers));
1107 	memcpy(&solr_collapse_function_object_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers));
1108 	memcpy(&solr_extract_request_object_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers));
1109 
1110 	solr_extract_request_object_handlers.offset = XtOffsetOf(solr_ustream_t, std);
1111 
1112 	solr_collapse_function_object_handlers.clone_obj = solr_collapse_function_object_handler_clone;
1113 	solr_input_document_object_handlers.clone_obj = solr_document_object_handler_clone;
1114 
1115 	/* solr_object_handlers.read_property   = solr_object_read_property;   */
1116 	solr_object_handlers.write_property  = solr_object_write_property;
1117 	solr_object_handlers.write_dimension = solr_object_write_dimension;
1118 	solr_object_handlers.unset_property  = solr_object_unset_property;
1119 	solr_object_handlers.unset_dimension = solr_object_unset_dimension;
1120 
1121 	solr_document_field_handlers.write_property = solr_document_field_write_property;
1122 	solr_document_field_handlers.unset_property = solr_document_field_unset_property;
1123 
1124 #ifdef ZTS
1125     ZEND_INIT_MODULE_GLOBALS(solr, php_solr_globals_ctor, php_solr_globals_dtor);
1126 #else
1127     php_solr_globals_ctor(&solr_globals);
1128 #endif
1129 
1130     /* Register extension constants */
1131     solr_extension_register_constants(type, module_number);
1132 
1133     /* Register the SolrObject class */
1134     INIT_CLASS_ENTRY(ce, PHP_SOLR_OBJECT_CLASSNAME, solr_object_methods);
1135     solr_ce_SolrObject = zend_register_internal_class(&ce);
1136     solr_ce_SolrObject->ce_flags |= ZEND_ACC_FINAL;
1137 
1138     /* SolrObject implements ArrayAccess */
1139     zend_class_implements(solr_ce_SolrObject, 1, solr_ce_ArrayAccess);
1140 
1141     /* Register the SolrDocument class */
1142     INIT_CLASS_ENTRY(ce, PHP_SOLR_DOCUMENT_CLASSNAME, solr_document_methods);
1143     solr_ce_SolrDocument = zend_register_internal_class(&ce);
1144     solr_ce_SolrDocument->ce_flags |= ZEND_ACC_FINAL;
1145 
1146     /* This internal property will be used to map to this SolrDocument instance */
1147     zend_declare_property_long(solr_ce_SolrDocument, SOLR_INDEX_PROPERTY_NAME, sizeof(SOLR_INDEX_PROPERTY_NAME) -1, 0L, ZEND_ACC_PRIVATE);
1148 
1149     /* Register SolrDocument class constants */
1150     solr_document_register_class_constants(solr_ce_SolrDocument);
1151 
1152     /* SolrDocument implements ArrayAccess, Iterator, Serializable */
1153     zend_class_implements(solr_ce_SolrDocument, 3, solr_ce_ArrayAccess, solr_ce_Iterator, solr_ce_Serializable);
1154 
1155     /* Register the SolrDocumentField class */
1156     INIT_CLASS_ENTRY(ce, PHP_SOLR_DOCUMENT_FIELD_CLASSNAME, solr_document_field_methods);
1157     solr_ce_SolrDocumentField = zend_register_internal_class(&ce);
1158     solr_ce_SolrDocumentField->ce_flags |= ZEND_ACC_FINAL;
1159 
1160     /* Register the name, boost and values properties */
1161     zend_declare_property_stringl(solr_ce_SolrDocumentField, SOLR_FIELD_NAME_PROPERTY_NAME, sizeof(SOLR_FIELD_NAME_PROPERTY_NAME)-1, SOLR_SPACE_STRING, sizeof(SOLR_SPACE_STRING)-1, ZEND_ACC_PUBLIC);
1162     zend_declare_property_double(solr_ce_SolrDocumentField, SOLR_FIELD_BOOST_PROPERTY_NAME, sizeof(SOLR_FIELD_BOOST_PROPERTY_NAME)-1, 0.0f, ZEND_ACC_PUBLIC);
1163     zend_declare_property_null(solr_ce_SolrDocumentField, SOLR_FIELD_VALUES_PROPERTY_NAME, sizeof(SOLR_FIELD_VALUES_PROPERTY_NAME)-1, ZEND_ACC_PUBLIC);
1164 
1165     /* Register the SolrInputDocument class */
1166     INIT_CLASS_ENTRY(ce, PHP_SOLR_INPUT_DOCUMENT_CLASSNAME, solr_input_document_methods);
1167     solr_ce_SolrInputDocument = zend_register_internal_class(&ce);
1168     solr_ce_SolrInputDocument->ce_flags |= ZEND_ACC_FINAL;
1169 
1170     /* This internal property will be used to map to this SolrDocument instance */
1171     zend_declare_property_long(solr_ce_SolrInputDocument, SOLR_INDEX_PROPERTY_NAME, sizeof(SOLR_INDEX_PROPERTY_NAME) -1, 0L, ZEND_ACC_PRIVATE);
1172 
1173     /* Register SolrInputDocument class constants */
1174     solr_input_document_register_class_constants(solr_ce_SolrInputDocument);
1175 
1176     /* Register SolrClient Class */
1177     INIT_CLASS_ENTRY(ce, PHP_SOLR_CLIENT_CLASSNAME, solr_client_methods);
1178     solr_ce_SolrClient = zend_register_internal_class(&ce);
1179     /* solr_ce_SolrClient->ce_flags |= ZEND_ACC_FINAL; */
1180 
1181     /* This internal property will be used to map to this SolrClient instance */
1182     zend_declare_property_long(solr_ce_SolrClient, SOLR_INDEX_PROPERTY_NAME, sizeof(SOLR_INDEX_PROPERTY_NAME) -1, 0L, ZEND_ACC_PRIVATE);
1183 
1184     /* Register SolrClient class constants */
1185     solr_client_register_class_constants(solr_ce_SolrClient);
1186 
1187 	/* Register the SolrParams class */
1188 	INIT_CLASS_ENTRY(ce, PHP_SOLR_PARAMS_CLASSNAME, solr_params_methods);
1189 	solr_ce_SolrParams = zend_register_internal_class(&ce);
1190 	solr_ce_SolrParams->ce_flags |= ZEND_ACC_EXPLICIT_ABSTRACT_CLASS;
1191 
1192 	zend_class_implements(solr_ce_SolrParams, 1, solr_ce_Serializable);
1193 
1194 	/* This internal property will be used to map to this SolrParams instance */
1195     zend_declare_property_long(solr_ce_SolrParams, SOLR_INDEX_PROPERTY_NAME, sizeof(SOLR_INDEX_PROPERTY_NAME) -1, 0L, ZEND_ACC_PROTECTED);
1196 
1197     /* Register the SolrModifiableParams class */
1198 	INIT_CLASS_ENTRY(ce, PHP_SOLR_MODIFIABLE_PARAMS_CLASSNAME, solr_modifiable_params_methods);
1199 	solr_ce_SolrModifiableParams = zend_register_internal_class_ex(&ce, solr_ce_SolrParams);
1200 
1201     /* Register the SolrQuery class */
1202 	INIT_CLASS_ENTRY(ce, PHP_SOLR_QUERY_CLASSNAME, solr_query_methods);
1203 	solr_ce_SolrQuery = zend_register_internal_class_ex(&ce, solr_ce_SolrModifiableParams);
1204 	init_solr_dismax_query();
1205 	solr_query_register_class_constants(solr_ce_SolrQuery);
1206 
1207 	/* Register SolrExtractRequest */
1208 	INIT_CLASS_ENTRY(ce, PHP_SOLR_EXTRACTREQUEST_CLASSNAME, solr_extract_request_methods);
1209 	solr_ce_SolrExtractRequest = zend_register_internal_class(&ce);
1210 	solr_ce_SolrExtractRequest->ce_flags |= ZEND_ACC_FINAL;
1211 	solr_ce_SolrExtractRequest->create_object = solr_extract_create_object_handler;
1212 
1213 	zend_declare_property_long(solr_ce_SolrExtractRequest, SOLR_INDEX_PROPERTY_NAME, sizeof(SOLR_INDEX_PROPERTY_NAME)-1, 0L, ZEND_ACC_PRIVATE);
1214 	solr_extract_register_class_constants(solr_ce_SolrExtractRequest);
1215 
1216     /* Register the SolrCollapseFunction class */
1217     INIT_CLASS_ENTRY(ce, PHP_SOLR_COLLAPSE_FUNCTION_CLASSNAME, solr_collapse_function_methods);
1218     solr_ce_SolrCollapseFunction = zend_register_internal_class_ex(&ce, solr_ce_SolrCollapseFunction);
1219 
1220     zend_declare_property_long(solr_ce_SolrCollapseFunction, SOLR_INDEX_PROPERTY_NAME, sizeof(SOLR_INDEX_PROPERTY_NAME)-1, 0l, ZEND_ACC_PROTECTED);
1221     solr_collapse_function_register_class_constants(solr_ce_SolrCollapseFunction);
1222 
1223 	/* Register the SolrResponse base class */
1224 	INIT_CLASS_ENTRY(ce, PHP_SOLR_RESPONSE_CLASSNAME, solr_response_methods);
1225 	solr_ce_SolrResponse = zend_register_internal_class(&ce);
1226 	solr_ce_SolrResponse->ce_flags |= ZEND_ACC_EXPLICIT_ABSTRACT_CLASS;
1227 
1228 	/* Register all the properties for the SolrResponse object */
1229 	solr_response_register_class_properties(solr_ce_SolrResponse);
1230 
1231 	/* Register all the constants for the SolrResponse object */
1232 	solr_response_register_class_constants(solr_ce_SolrResponse);
1233 
1234 	/* Register the SolrQueryResponse class */
1235 	INIT_CLASS_ENTRY(ce, PHP_SOLR_QUERY_RESPONSE_CLASSNAME, solr_query_response_methods);
1236 	solr_ce_SolrQueryResponse = zend_register_internal_class_ex(&ce, solr_ce_SolrResponse);
1237 	solr_ce_SolrQueryResponse->ce_flags |= ZEND_ACC_FINAL;
1238 
1239 	/* Register the SolrUpdateResponse class */
1240 	INIT_CLASS_ENTRY(ce, PHP_SOLR_UPDATE_RESPONSE_CLASSNAME, solr_update_response_methods);
1241 	solr_ce_SolrUpdateResponse = zend_register_internal_class_ex(&ce, solr_ce_SolrResponse);
1242 	solr_ce_SolrUpdateResponse->ce_flags |= ZEND_ACC_FINAL;
1243 
1244 	/* Register the SolrPingResponse class */
1245 	INIT_CLASS_ENTRY(ce, PHP_SOLR_PING_RESPONSE_CLASSNAME, solr_ping_response_methods);
1246 	solr_ce_SolrPingResponse = zend_register_internal_class_ex(&ce, solr_ce_SolrResponse);
1247 	solr_ce_SolrPingResponse->ce_flags |= ZEND_ACC_FINAL;
1248 
1249 	/* Register the SolrGenericResponse class */
1250 	INIT_CLASS_ENTRY(ce, PHP_SOLR_GENERIC_RESPONSE_CLASSNAME, solr_generic_response_methods);
1251 	solr_ce_SolrGenericResponse = zend_register_internal_class_ex(&ce, solr_ce_SolrResponse);
1252 	solr_ce_SolrGenericResponse->ce_flags |= ZEND_ACC_FINAL;
1253 
1254 	/* Register the SolrUtils class */
1255 	INIT_CLASS_ENTRY(ce, PHP_SOLR_UTILS_CLASSNAME, solr_utils_methods);
1256 	solr_ce_SolrUtils = zend_register_internal_class(&ce);
1257 	solr_ce_SolrUtils->ce_flags |= ZEND_ACC_EXPLICIT_ABSTRACT_CLASS;
1258 
1259 	/* Register the SolrException class */
1260 	INIT_CLASS_ENTRY(ce, PHP_SOLR_EXCEPTION_CLASSNAME, solr_exception_methods);
1261 	solr_ce_SolrException = zend_register_internal_class_ex(&ce, solr_ce_Exception);
1262 
1263 	solr_exception_register_class_properties(solr_ce_SolrException);
1264 
1265 	INIT_CLASS_ENTRY(ce, PHP_SOLR_ILLEGAL_OPERATION_EXCEPTION_CLASSNAME, solr_illegal_operation_exception_methods);
1266 	solr_ce_SolrIllegalOperationException = zend_register_internal_class_ex(&ce, solr_ce_SolrException);
1267 
1268 	INIT_CLASS_ENTRY(ce, PHP_SOLR_ILLEGAL_ARGUMENT_EXCEPTION_CLASSNAME, solr_illegal_argument_exception_methods);
1269 	solr_ce_SolrIllegalArgumentException = zend_register_internal_class_ex(&ce, solr_ce_SolrException);
1270 
1271 	INIT_CLASS_ENTRY(ce, PHP_SOLR_CLIENT_EXCEPTION_CLASSNAME, solr_client_exception_methods);
1272 	solr_ce_SolrClientException = zend_register_internal_class_ex(&ce, solr_ce_SolrException);
1273 
1274 	INIT_CLASS_ENTRY(ce, PHP_SOLR_SERVER_EXCEPTION_CLASSNAME, solr_server_exception_methods);
1275 	solr_ce_SolrServerException = zend_register_internal_class_ex(&ce, solr_ce_SolrException);
1276 
1277 	INIT_CLASS_ENTRY(ce, PHP_SOLR_MISSING_MANDATORY_PARAMETER_EXCEPTION_CLASSNAME, NULL);
1278 	solr_ce_SolrMissingMandatoryParameterException = zend_register_internal_class_ex(&ce, solr_ce_SolrException);
1279 
1280 	return SUCCESS;
1281 }
1282 /* }}} */
1283 
1284 /* {{{ PHP_RINIT_FUNCTION */
PHP_RINIT_FUNCTION(solr)1285 PHP_RINIT_FUNCTION(solr)
1286 {
1287 	zend_bool persistent   = SOLR_HASHTABLE_PERSISTENT;
1288 
1289 	/* Initial size of the HashTable */
1290 	uint32_t nSize             = SOLR_INITIAL_HASH_TABLE_SIZE;
1291 
1292 	ALLOC_HASHTABLE(SOLR_GLOBAL(documents));
1293 	ALLOC_HASHTABLE(SOLR_GLOBAL(clients));
1294 	ALLOC_HASHTABLE(SOLR_GLOBAL(params));
1295 	ALLOC_HASHTABLE(SOLR_GLOBAL(functions));
1296 	ALLOC_HASHTABLE(SOLR_GLOBAL(ustreams));
1297 
1298 	/* Initialize the HashTable for directory for SolrInputDocuments */
1299 	zend_hash_init(SOLR_GLOBAL(documents), nSize, NULL, solr_destroy_document, persistent);
1300 	zend_hash_init(SOLR_GLOBAL(clients), nSize, NULL, solr_destroy_client, persistent);
1301 	/* Initialize the HashTable for directory of SolrParams */
1302 	zend_hash_init(SOLR_GLOBAL(params), nSize, NULL, solr_destroy_params, persistent);
1303 
1304 	zend_hash_init(SOLR_GLOBAL(functions), nSize, NULL, solr_destroy_function, persistent);
1305 	zend_hash_init(SOLR_GLOBAL(ustreams), nSize, NULL, solr_destroy_ustream, persistent);
1306 
1307 	return SUCCESS;
1308 }
1309 /* }}} */
1310 
1311 /* {{{ PHP_RSHUTDOWN_FUNCTION */
PHP_RSHUTDOWN_FUNCTION(solr)1312 PHP_RSHUTDOWN_FUNCTION(solr)
1313 {
1314 	zend_hash_destroy(SOLR_GLOBAL(documents));
1315 	zend_hash_destroy(SOLR_GLOBAL(clients));
1316 	zend_hash_destroy(SOLR_GLOBAL(params));
1317 	zend_hash_destroy(SOLR_GLOBAL(functions));
1318 	zend_hash_destroy(SOLR_GLOBAL(ustreams));
1319 
1320 	FREE_HASHTABLE(SOLR_GLOBAL(documents));
1321 	FREE_HASHTABLE(SOLR_GLOBAL(clients));
1322 	FREE_HASHTABLE(SOLR_GLOBAL(params));
1323 	FREE_HASHTABLE(SOLR_GLOBAL(functions));
1324 	FREE_HASHTABLE(SOLR_GLOBAL(ustreams));
1325 
1326 	return SUCCESS;
1327 }
1328 /* }}} */
1329 
1330 /* {{{ PHP_MSHUTDOWN_FUNCTION */
PHP_MSHUTDOWN_FUNCTION(solr)1331 PHP_MSHUTDOWN_FUNCTION(solr)
1332 {
1333 	return SUCCESS;
1334 }
1335 /* }}} */
1336 
1337 /* {{{ PHP_MINFO_FUNCTION */
PHP_MINFO_FUNCTION(solr)1338 PHP_MINFO_FUNCTION(solr)
1339 {
1340 	php_info_print_table_start();
1341 	php_info_print_table_header(2, "Solr Support", "enabled");
1342 	php_info_print_table_row(2, "Version", PHP_SOLR_DOTTED_VERSION);
1343 	php_info_print_table_row(2, "Last Build Date", __DATE__);
1344 	php_info_print_table_row(2, "Last Build Time", __TIME__);
1345 
1346 	php_info_print_table_end();
1347 }
1348 /* }}} */
1349 
1350 #endif
1351 
1352 /*
1353  * Local variables:
1354  * tab-width: 4
1355  * c-basic-offset: 4
1356  * indent-tabs-mode: t
1357  * End:
1358  * vim600: fdm=marker
1359  * vim: noet sw=4 ts=4
1360  */
1361