@@ -8,12 +8,16 @@ description: "Read transform and write files in any format"
8
8
weight : 3
9
9
---
10
10
11
- - [ What is it ?] ( #what-is-it- )
11
+ - [ What is it ?] ( #definition )
12
12
- [ Installation] ( #installation )
13
13
- [ Usage] ( #usage )
14
14
- [ Building an extractor] ( #building-an-extractor )
15
15
- [ Building a transformer] ( #building-a-transformer )
16
16
- [ Building a loader] ( #building-a-loader )
17
+ - [ Usage examples] ( #usage-examples )
18
+ - [ Example of an extractor] ( #example-of-an-extractor )
19
+ - [ Example of a transformer] ( #example-of-a-transformer )
20
+ - [ Example of a loader] ( #example-of-a-loader )
17
21
---
18
22
19
23
## Definition
@@ -68,3 +72,130 @@ custom:
68
72
calls :
69
73
- withUsername : [ 'admin' ]
70
74
` ` `
75
+
76
+ ## Usage examples
77
+
78
+ Some examples of pipeline with Magento to extract, FastMap to transform and ZohoCRM to load data
79
+
80
+ ### Example of an extractor
81
+
82
+ ` ` ` yaml
83
+ custom :
84
+ extractor :
85
+ use : ' App\Component\Flow\Magento2\CustomerExtractor'
86
+ services :
87
+ App\Component\Flow\Magento2\CustomerExtractor :
88
+ arguments :
89
+ - ' @Monolog\Logger'
90
+ - ['@firstname_filter_group_1', '@firstname_filter_group_2']
91
+ public : true
92
+ firstname_filter_group_1 :
93
+ class : App\Component\Flow\Magento2\FilterGroup
94
+ calls :
95
+ - withFilter : [ '@firstname_filter_1' ]
96
+ firstname_filter_1 :
97
+ class : App\Component\Flow\Magento2\Filter
98
+ arguments :
99
+ - ' firstname'
100
+ - ' nlike'
101
+ - ' %bm01.cc'
102
+ firstname_filter_group_2 :
103
+ class : App\Component\Flow\Magento2\FilterGroup
104
+ calls :
105
+ - withFilter : [ '@firstname_filter_2' ]
106
+ firstname_filter_2 :
107
+ class : App\Component\Flow\Magento2\Filter
108
+ arguments :
109
+ $field : ' firstname'
110
+ $conditionType : ' nlike'
111
+ $value : ' %.xyz'
112
+ Monolog\Logger :
113
+ arguments :
114
+ - ' app'
115
+ - [ '@Monolog\Handler\StreamHandler' ]
116
+ Monolog\Handler\StreamHandler :
117
+ arguments :
118
+ - ' var/dev.log'
119
+ - 300
120
+ ` ` `
121
+
122
+ You can write the arguments of your service in 2 different ways.
123
+ You can list them with a '-' but you need to respect the order of the arguments in the constructor,
124
+ or you can simply name the arguments by their variable name in the constructor.
125
+
126
+ #### Filter class constructor :
127
+ ` ` ` php
128
+ class Filter
129
+ {
130
+ public function __construct(
131
+ public string $field,
132
+ public string $conditionType,
133
+ public string $value,
134
+ ) {
135
+ }
136
+ }
137
+ ```
138
+
139
+ ### Example of a transformer
140
+ ``` yaml
141
+ custom :
142
+ transformer :
143
+ use : ' App\CachedAttributeLookup'
144
+ services :
145
+ PDO :
146
+ arguments :
147
+ - ' mysql:host=127.0.0.1;port=3306;dbname=lacelier'
148
+ - ' user'
149
+ - ' password'
150
+ App\CachedAttributeLookup :
151
+ arguments :
152
+ - ' @PDO'
153
+ - ' SELECT * FROM color WHERE region=:region AND code=:code'
154
+ - ' @Cache\Adapter\Apcu\ApcuCachePool'
155
+ - ' color'
156
+ - ' @App\ColorLookupMapper'
157
+ public : true
158
+ App\ColorLookupMapper : ~
159
+ Cache\Adapter\Apcu\ApcuCachePool : ~
160
+ Symfony\Component\Cache\Adapter\ApcuAdapter : ~
161
+ ` ` `
162
+
163
+ ### Example of a loader
164
+ ` ` ` yaml
165
+ custom :
166
+ loader :
167
+ use : ' App\Component\Flow\ZohoCRM\ContactLoader'
168
+ services :
169
+ App\Component\Flow\ZohoCRM\ContactLoader :
170
+ arguments :
171
+ - ' @App\Component\Flow\ZohoCRM\Client\Client'
172
+ - ' @Monolog\Logger'
173
+ public : true
174
+ GuzzleHttp\Client : ~
175
+ GuzzleHttp\Psr7\HttpFactory : ~
176
+ App\Component\Flow\ZohoCRM\Client\AuthenticationMiddleware :
177
+ arguments :
178
+ - ' @GuzzleHttp\Client'
179
+ - ' @GuzzleHttp\Psr7\HttpFactory'
180
+ - ' @GuzzleHttp\Psr7\HttpFactory'
181
+ - ' %env(ZOHO_OAUTH_HOST)%'
182
+ - ' %env(ZOHO_CLIENT_ID)%'
183
+ - ' %env(ZOHO_CLIENT_SECRET)%'
184
+ - ' %env(ZOHO_ACCESS_TOKEN)%'
185
+ - ' %env(ZOHO_REFRESH_TOKEN)%'
186
+ App\Component\Flow\ZohoCRM\Client\Client :
187
+ arguments :
188
+ - ' %env(ZOHO_BASE_HOST)%'
189
+ - ' @App\Component\Flow\ZohoCRM\Client\AuthenticationMiddleware'
190
+ - ' @GuzzleHttp\Psr7\HttpFactory'
191
+ - ' @GuzzleHttp\Psr7\HttpFactory'
192
+ - ' @GuzzleHttp\Psr7\HttpFactory'
193
+ Monolog\Logger :
194
+ arguments :
195
+ - ' app'
196
+ - [ '@Monolog\Handler\StreamHandler' ]
197
+ Monolog\Handler\StreamHandler :
198
+ arguments :
199
+ - ' var/dev.log'
200
+ - 300
201
+ ` ` `
0 commit comments