Similar Posts
Retrying and Logging Requests with Guzzle
When consuming 3d party API, you may want to do two things: In this article we will look at how to implement the above features using Guzzle, a popular PHP library for making API calls. Let us scaffold our app composer init composer require guzzlehttp/guzzle:~6.0 composer require monolog/monolog composer require –dev phpunit/phpunit:^8 We will be…
Stream Files From S3
When using S3 as our external storage, sometimes we have to let users download files from S3. If file is too large, it may not fit in the memory. The solution is to stream file into user’s browser straight from S3. Let’s take a look how to do it with Laravel’s Filesystem. There are 2…
Testing API Clients
Since an API client is a boundary between your code and the outside world you should write as little code as possible to implement it. The client should strictly do its job by sending a request and returning a response. That is why we don’t really test the clients themselves but rather the code that processes the response from the client.
Exporting Records with Timezone Adjustments
As a rule, dates in a database are stored in UTC. So, when you export records from database constrained by dates, it is a good idea to use appropriate timezone in export query. You can do it in one of two ways. One way is create incoming dates in user’s timezone, then covert time to…
Testing with Service Container
The backbone of Laravel is service container. Service container is used for resolving classes and dependency injection. Container comes as a standalone package, so you don’t have to have Laravel installed to use it. Service container can be very handy when testing. Let’s look at how we can use it . Our basic set up…