Skip to content

Commit bfe25b9

Browse files
committed
Update readme
1 parent e6ca1a1 commit bfe25b9

File tree

1 file changed

+33
-14
lines changed

1 file changed

+33
-14
lines changed

README.md

Lines changed: 33 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,25 @@
2323

2424
---
2525

26+
> [!TIP]
27+
> **Hire Tang Rufus!**
28+
>
29+
> I am looking for my next role, freelance or full-time.
30+
> If you find this package useful, I can build you more API clients like this.
31+
> Let's talk if you are hiring PHP / Ruby / Go developers.
32+
>
33+
> Contact me at https://typist.tech/contact/
34+
35+
---
36+
2637
## Usage
2738

2839
```php
2940
use \TypistTech\WordfenceAPI\{Client, Feed, Record};
3041

3142
$client = new Client;
3243

33-
// Alternatively, use `Feed::Scanner`` for the scanner feed.
44+
// Alternatively, use `Feed::Scanner` for the scanner feed.
3445
$records = $client->fetch(Feed::Production);
3546

3647
foreach($records as $record) {
@@ -39,42 +50,50 @@ foreach($records as $record) {
3950
}
4051
```
4152

42-
## Installation
43-
44-
```bash
45-
composer require typisttech/wordfence-api
46-
```
47-
4853
## Known Issues
4954

50-
5155
### `Allowed memory size of 999999 bytes exhausted (tried to allocate 99 bytes)`
5256

5357
> [!TIP]
5458
> Set `memory_limit` on the fly as a temporary fix:
5559
>
56-
> ```bash
60+
> ```sh
5761
> php -d memory_limit=512MB your-script.php
5862
> ```
5963
6064
As of October 2025, the [production Wordfence vulnerability data feed](https://www.wordfence.com/api/intelligence/v2/vulnerabilities/production) is over 117 MB.
61-
[`Client`](src/Client.php) downloads the feed into memory and `json_decode()` the entire feed all in one go.
65+
[`Client::fetch()`](./src/Client.php) downloads the feed into memory and `json_decode()` the entire feed all in one go.
6266
It causes PHP to run out of memory.
6367
6468
A possible solution is to use a streaming JSON parser like [`json.Decoder`](https://pkg.go.dev/encoding/json#example-Decoder.Decode-Stream) in Go.
6569
If you know how to do that in PHP, please send pull requests. :bow:
6670
71+
> [!TIP]
72+
> **Hire Tang Rufus!**
73+
>
74+
> There is no need to understand any of these quirks.
75+
> Let me handle them for you.
76+
> I am seeking my next job, freelance or full-time.
77+
>
78+
> If you are hiring PHP / Ruby / Go developers,
79+
> contact me at https://typist.tech/contact/
80+
81+
## Installation
82+
83+
```sh
84+
composer require typisttech/wordfence-api
85+
```
86+
6787
## Credits
6888

69-
[`Wordfence API`](https://github.com/typisttech/wordfence-api) is a [Typist Tech](https://typist.tech) project and
70-
maintained by [Tang Rufus](https://x.com/TangRufus), freelance developer [for hire](https://typist.tech/contact/).
89+
[`Wordfence API`](https://github.com/typisttech/wordfence-api) is a [Typist Tech](https://typist.tech) project and maintained by [Tang Rufus](https://x.com/TangRufus), freelance developer [for hire](https://typist.tech/contact/).
7190

7291
Full list of contributors can be found [on GitHub](https://github.com/typisttech/wordfence-api/graphs/contributors).
7392

7493
## Copyright and License
7594

76-
This project is a [free software](https://www.gnu.org/philosophy/free-sw.en.html) distributed under the terms of
77-
the MIT license. For the full license, see [LICENSE](./LICENSE).
95+
This project is a [free software](https://www.gnu.org/philosophy/free-sw.en.html) distributed under the terms of the MIT license.
96+
For the full license, see [LICENSE](./LICENSE).
7897

7998
### Wordfence Intelligence Terms and Conditions
8099

0 commit comments

Comments
 (0)