Skip to content

Commit 1e02d55

Browse files
authored
docs: Add php code samples (#502)
1 parent 794d32a commit 1e02d55

File tree

3 files changed

+137
-11
lines changed

3 files changed

+137
-11
lines changed

website/docs/api-clients/guides/filtering-your-search.mdx

Lines changed: 69 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ Initially, filter attributes must be defined as facets, using the `attributesFor
1717
groupId="language"
1818
defaultValue="js"
1919
values={[
20-
{ label: 'JavaScript', value: 'js', }
20+
{ label: 'JavaScript', value: 'js', },
21+
{ label: 'PHP', value: 'php', }
2122
]
2223
}>
2324
<TabItem value="js">
@@ -35,6 +36,15 @@ await client.setSettings({
3536
});
3637
```
3738

39+
</TabItem>
40+
<TabItem value="php">
41+
42+
```php
43+
$client->setSettings(
44+
'<YOUR_INDEX_NAME>',
45+
['attributesForFaceting' => ['actor', 'filterOnly(category)', 'searchable(publisher)']]
46+
);
47+
```
3848
</TabItem>
3949
</Tabs>
4050

@@ -48,7 +58,8 @@ The actual filtering of records is performed at query time, not at indexing time
4858
groupId="language"
4959
defaultValue="js"
5060
values={[
51-
{ label: 'JavaScript', value: 'js', }
61+
{ label: 'JavaScript', value: 'js', },
62+
{ label: 'PHP', value: 'php', }
5263
]
5364
}>
5465
<TabItem value="js">
@@ -82,6 +93,38 @@ await client.search({
8293
});
8394
```
8495

96+
</TabItem>
97+
<TabItem value="php">
98+
99+
```php
100+
// Only "Scarlett Johansson" actor
101+
$client->search(
102+
'<YOUR_INDEX_NAME>',
103+
[
104+
'query' => '<YOUR_QUERY>',
105+
'filters' => 'actor:Scarlett Johansson',
106+
]
107+
);
108+
109+
// Only "Tom Cruise" or "Scarlett Johansson" actor
110+
$client->search(
111+
'<YOUR_INDEX_NAME>',
112+
[
113+
'query' => '<YOUR_QUERY>',
114+
'filters' => 'actor:Tom Cruise OR actor:Scarlett Johansson',
115+
]
116+
);
117+
118+
// Everything but "Nicolas Cage" actor
119+
$client->search(
120+
'<YOUR_INDEX_NAME>',
121+
[
122+
'query' => '<YOUR_QUERY>',
123+
'filters' => 'NOT actor:Nicolas Cage',
124+
]
125+
);
126+
127+
```
85128
</TabItem>
86129
</Tabs>
87130

@@ -91,7 +134,8 @@ await client.search({
91134
groupId="language"
92135
defaultValue="js"
93136
values={[
94-
{ label: 'JavaScript', value: 'js', }
137+
{ label: 'JavaScript', value: 'js', },
138+
{ label: 'PHP', value: 'php', }
95139
]
96140
}>
97141
<TabItem value="js">
@@ -116,5 +160,27 @@ await client.search({
116160
});
117161
```
118162

163+
</TabItem>
164+
<TabItem value="php">
165+
166+
```php
167+
// Only "Scarlett Johansson" actor
168+
$client->search(
169+
'<YOUR_INDEX_NAME>',
170+
[
171+
'query' => '<YOUR_QUERY>',
172+
'facetFilters' => ['actor:Scarlett Johansson'],
173+
]
174+
);
175+
176+
// Only "Tom Cruise" or "Scarlett Johansson" actor
177+
$client->search(
178+
'<YOUR_INDEX_NAME>',
179+
[
180+
'query' => '<YOUR_QUERY>',
181+
'facetFilters' => ['actor:Tom Cruise', 'actor:Scarlett Johansson'],
182+
]
183+
);
184+
```
119185
</TabItem>
120186
</Tabs>

website/docs/api-clients/guides/retrieving-facets.mdx

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ For example, you can retrieve your books' facets with the `search` method, and t
1515
groupId="language"
1616
defaultValue="js"
1717
values={[
18-
{ label: 'JavaScript', value: 'js', }
18+
{ label: 'JavaScript', value: 'js', },
19+
{ label: 'PHP', value: 'php', }
1920
]
2021
}>
2122
<TabItem value="js">
@@ -42,5 +43,31 @@ await client.search({
4243
});
4344
```
4445

46+
</TabItem>
47+
48+
<TabItem value="php">
49+
50+
```php
51+
$client->search(
52+
'<YOUR_INDEX_NAME>',
53+
[
54+
'query' => '<YOUR_QUERY>',
55+
'facets' => ['author', 'genre'],
56+
]
57+
);
58+
```
59+
60+
To extract all facet information, you can use a wildcard (`*`).
61+
62+
```php
63+
$client->search(
64+
'<YOUR_INDEX_NAME>',
65+
[
66+
'query' => '<YOUR_QUERY>',
67+
'facets' => ['*'],
68+
]
69+
);
70+
```
71+
4572
</TabItem>
4673
</Tabs>

website/docs/api-clients/guides/send-data-to-algolia.mdx

Lines changed: 40 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ To push data to Algolia, you need an Application ID and a valid API key with the
2121
groupId="language"
2222
defaultValue="js"
2323
values={[
24-
{ label: 'JavaScript', value: 'js', }
24+
{ label: 'JavaScript', value: 'js', },
25+
{ label: 'PHP', value: 'php', }
2526
]
2627
}>
2728
<TabItem value="js">
@@ -36,6 +37,16 @@ import { algoliasearch } from '@experimental-api-clients-automation/algoliasearc
3637
const client = algoliasearch('<YOUR_APP_ID>', '<YOUR_API_KEY>');
3738
```
3839

40+
</TabItem>
41+
<TabItem value="php">
42+
43+
```php
44+
<?php
45+
$client = Algolia\AlgoliaSearch\Api\SearchClient::create(
46+
'<YOUR_APP_ID>',
47+
'<YOUR_API_KEY>'
48+
);
49+
```
3950
</TabItem>
4051
</Tabs>
4152

@@ -47,19 +58,41 @@ Before sending anything to Algolia, you need to retrieve your data. You can do t
4758
groupId="language"
4859
defaultValue="js"
4960
values={[
50-
{ label: 'JavaScript', value: 'js', }
61+
{ label: 'JavaScript', value: 'js', },
62+
{ label: 'PHP', value: 'php', }
5163
]
5264
}>
5365
<TabItem value="js">
5466

5567
```js
5668
const records = [{ name: 'Tom Cruise' }, { name: 'Scarlett Johansson' }];
5769

58-
client.saveObject({
59-
indexName: '<YOUR_INDEX_NAME>',
60-
// Accepts a free form `Record<string, any>` object.
61-
body: records,
62-
});
70+
for (const record of records) {
71+
client.saveObject({
72+
indexName: '<YOUR_INDEX_NAME>',
73+
// Accepts a free form `Record<string, any>` object.
74+
body: record,
75+
});
76+
}
77+
78+
```
79+
80+
</TabItem>
81+
<TabItem value="php">
82+
83+
```php
84+
$records = [
85+
['name' => 'Tom Cruise'],
86+
['name' => 'Scarlett Johansson']
87+
];
88+
89+
foreach ($records as $record) {
90+
$client->saveObject(
91+
'<YOUR_INDEX_NAME>',
92+
$record
93+
);
94+
}
95+
6396
```
6497

6598
</TabItem>

0 commit comments

Comments
 (0)