Skip to content

Commit 34addbf

Browse files
authored
Merge pull request #554 from sboldyreva/claude/elsdoc-279-VM0dY
Added new php (els for libraries) pages
2 parents 8ab6769 + 7e27abb commit 34addbf

7 files changed

Lines changed: 492 additions & 0 deletions

File tree

docs/.vuepress/components/ELSTechnology.vue

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1598,6 +1598,11 @@ const techData = [
15981598
versions: "6.11.1",
15991599
link: "./firebase-php-jwt/",
16001600
},
1601+
{
1602+
name: "Guzzle",
1603+
versions: "6.3.3",
1604+
link: "./guzzle/",
1605+
},
16011606
{
16021607
name: "Httpful",
16031608
versions: "0.3.2",
@@ -1623,6 +1628,11 @@ const techData = [
16231628
versions: "3.x",
16241629
link: "./livewire/",
16251630
},
1631+
{
1632+
name: "phpseclib",
1633+
versions: "0.3.10",
1634+
link: "./phpseclib/",
1635+
},
16261636
{
16271637
name: "PHPMailer",
16281638
versions: "5.2.28",
@@ -1663,6 +1673,11 @@ const techData = [
16631673
versions: "1.12.10",
16641674
link: "./zendframework-zf1/",
16651675
},
1676+
{
1677+
name: "Zend HTTP",
1678+
versions: "2.5.6",
1679+
link: "./zendframework-zend-http/",
1680+
},
16661681
],
16671682
},
16681683
{

docs/.vuepress/config-client/sidebar.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,10 @@ export default {
284284
path: '/els-for-libraries/firebase-php-jwt/',
285285
icon: '/images/firebase.webp',
286286
},
287+
{
288+
path: '/els-for-libraries/guzzle/',
289+
icon: '/images/guzzle.webp',
290+
},
287291
{
288292
path: '/els-for-libraries/httpful/',
289293
icon: '/images/php-logo.webp',
@@ -304,6 +308,10 @@ export default {
304308
path: '/els-for-libraries/livewire/',
305309
icon: '/images/livewire-logo.webp',
306310
},
311+
{
312+
path: '/els-for-libraries/phpseclib/',
313+
icon: '/images/phpseclib.webp',
314+
},
307315
{
308316
path: '/els-for-libraries/phpmailer/',
309317
icon: '/images/phpmailer.webp',
@@ -332,6 +340,10 @@ export default {
332340
path: '/els-for-libraries/zendframework-zf1/',
333341
icon: '/images/zf1.webp',
334342
},
343+
{
344+
path: '/els-for-libraries/zendframework-zend-http/',
345+
icon: '/images/zf1.webp',
346+
},
335347
{
336348
title: 'JavaScript',
337349
type: 'section-header',
1.05 KB
Loading
476 Bytes
Loading
Lines changed: 155 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,155 @@
1+
# Guzzle
2+
3+
Endless Lifecycle Support (ELS) for Guzzle from TuxCare provides security fixes for Guzzle HTTP client library versions that have reached their end-of-life. This allows you to continue running your applications without vulnerability concerns, even after official support has ended.
4+
5+
## Supported Versions
6+
7+
* **Guzzle** 6.3.3
8+
9+
Other versions upon request.
10+
11+
## Installation
12+
13+
<ELSPrerequisites>
14+
15+
* Nexus repository access credentials (username and password) — contact [sales@tuxcare.com](mailto:sales@tuxcare.com)
16+
* To browse available artifacts, visit TuxCare [Nexus](https://nexus.repo.tuxcare.com/#browse/browse:els_php) and click Sign in in the top right corner. You may need to refresh the page after logging in.
17+
18+
</ELSPrerequisites>
19+
20+
<ELSSteps>
21+
22+
1. Locate the `auth.json` file
23+
24+
Composer reads credentials from a per-user `auth.json`. Create or edit the file at:
25+
26+
* **Linux/macOS**:
27+
28+
```
29+
~/.composer/auth.json
30+
```
31+
32+
* **Windows**:
33+
34+
```
35+
%APPDATA%\Composer\auth.json
36+
```
37+
38+
2. Add your TuxCare credentials
39+
40+
Use either the Composer CLI or edit `auth.json` directly to add credentials for `nexus.repo.tuxcare.com`:
41+
42+
<CodeTabs :tabs="[
43+
{ title: 'Composer CLI', content: `composer config --global --auth http-basic.nexus.repo.tuxcare.com USERNAME PASSWORD` },
44+
{ title: 'auth.json', content: authjson }
45+
]" />
46+
47+
Replace `USERNAME` and `PASSWORD` with the credentials provided by TuxCare.
48+
49+
3. Register the TuxCare repository
50+
51+
Add the `els_php` Composer repository either via CLI or by editing `composer.json`:
52+
53+
<CodeTabs :tabs="[
54+
{ title: 'Composer CLI', content: cli },
55+
{ title: 'composer.json', content: composerjson }
56+
]" />
57+
58+
4. Install Guzzle
59+
60+
Install the TuxCare-maintained Guzzle release that matches your project:
61+
62+
<CodeTabs :tabs="[
63+
{ title: 'Composer CLI', content: `composer require guzzlehttp/guzzle:6.3.3-p1+tuxcare` },
64+
{ title: 'composer.json', content: guzzlejson }
65+
]" />
66+
67+
**Check the exact version listed in your TuxCare Nexus account to ensure you receive the most recent patched release.**
68+
69+
:::tip
70+
71+
If you edited `composer.json` manually, run `composer update` to install the package:
72+
73+
```
74+
composer update
75+
```
76+
77+
Composer will resolve dependencies against the TuxCare repository and install the patched releases.
78+
79+
:::
80+
81+
</ELSSteps>
82+
83+
### Composer Repository Configuration
84+
85+
If you encounter dependency resolution errors like:
86+
87+
`packages from higher priority repository do not match your constraint`
88+
89+
it usually means your project requires a package version that is not yet available in the TuxCare repository.
90+
91+
**Solution**: Update your `composer.json` to set the TuxCare repository as non-canonical:
92+
93+
```
94+
{
95+
"repositories": [
96+
{
97+
"type": "composer",
98+
"url": "https://nexus.repo.tuxcare.com/repository/els_php/",
99+
"canonical": false
100+
}
101+
]
102+
}
103+
```
104+
105+
This allows Composer to fall back to Packagist for packages not available in the TuxCare repository, while still preferring TuxCare patches when available.
106+
107+
## What's Next?
108+
109+
<WhatsNext hide-title>
110+
111+
* ![](/images/eye.webp) [CVE Tracker](https://tuxcare.com/cve-tracker/?q=guzzlehttp%2Fguzzle) — Track vulnerability fixes and updates
112+
* ![](/images/bolt.webp) [Available fixes](https://tuxcare.com/cve-tracker/fixes?q=guzzlehttp%2Fguzzle) — Released fixes
113+
* ![](/images/shield-alert.webp) [VEX feed](https://security.tuxcare.com/vex/cyclonedx/els_lang_php/) — Vulnerability Exploitability eXchange feed
114+
* ![](/images/wrench.webp) [Package updates](/els-for-libraries/managing-els-repository/#PHP) — Upgrade to a newer version
115+
116+
</WhatsNext>
117+
118+
<script setup>
119+
120+
const authjson =
121+
`{
122+
"http-basic": {
123+
"nexus.repo.tuxcare.com": {
124+
"username": "USERNAME",
125+
"password": "PASSWORD"
126+
}
127+
}
128+
}`
129+
130+
const composerjson =
131+
`{
132+
"repositories": [
133+
{
134+
"type": "composer",
135+
"url": "https://nexus.repo.tuxcare.com/repository/els_php/",
136+
"options": {
137+
"http": {
138+
"verify": true
139+
}
140+
}
141+
}
142+
]
143+
}`
144+
145+
const cli =
146+
`composer config repositories.tuxcare '{"type":"composer","url":"https://nexus.repo.tuxcare.com/repository/els_php/","options":{"http":{"verify":true}}}' --json`
147+
148+
const guzzlejson =
149+
`{
150+
"require": {
151+
"guzzlehttp/guzzle": "6.3.3-p1+tuxcare"
152+
}
153+
}`
154+
155+
</script>
Lines changed: 155 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,155 @@
1+
# phpseclib
2+
3+
Endless Lifecycle Support (ELS) for phpseclib from TuxCare provides security fixes for phpseclib library versions that have reached their end-of-life. This allows you to continue running your applications without vulnerability concerns, even after official support has ended.
4+
5+
## Supported Versions
6+
7+
* **phpseclib** 0.3.10
8+
9+
Other versions upon request.
10+
11+
## Installation
12+
13+
<ELSPrerequisites>
14+
15+
* Nexus repository access credentials (username and password) — contact [sales@tuxcare.com](mailto:sales@tuxcare.com)
16+
* To browse available artifacts, visit TuxCare [Nexus](https://nexus.repo.tuxcare.com/#browse/browse:els_php) and click Sign in in the top right corner. You may need to refresh the page after logging in.
17+
18+
</ELSPrerequisites>
19+
20+
<ELSSteps>
21+
22+
1. Locate the `auth.json` file
23+
24+
Composer reads credentials from a per-user `auth.json`. Create or edit the file at:
25+
26+
* **Linux/macOS**:
27+
28+
```
29+
~/.composer/auth.json
30+
```
31+
32+
* **Windows**:
33+
34+
```
35+
%APPDATA%\Composer\auth.json
36+
```
37+
38+
2. Add your TuxCare credentials
39+
40+
Use either the Composer CLI or edit `auth.json` directly to add credentials for `nexus.repo.tuxcare.com`:
41+
42+
<CodeTabs :tabs="[
43+
{ title: 'Composer CLI', content: `composer config --global --auth http-basic.nexus.repo.tuxcare.com USERNAME PASSWORD` },
44+
{ title: 'auth.json', content: authjson }
45+
]" />
46+
47+
Replace `USERNAME` and `PASSWORD` with the credentials provided by TuxCare.
48+
49+
3. Register the TuxCare repository
50+
51+
Add the `els_php` Composer repository either via CLI or by editing `composer.json`:
52+
53+
<CodeTabs :tabs="[
54+
{ title: 'Composer CLI', content: cli },
55+
{ title: 'composer.json', content: composerjson }
56+
]" />
57+
58+
4. Install phpseclib
59+
60+
Install the TuxCare-maintained phpseclib release that matches your project:
61+
62+
<CodeTabs :tabs="[
63+
{ title: 'Composer CLI', content: `composer require phpseclib/phpseclib:0.3.10-p1+tuxcare` },
64+
{ title: 'composer.json', content: phpseclibjson }
65+
]" />
66+
67+
**Check the exact version listed in your TuxCare Nexus account to ensure you receive the most recent patched release.**
68+
69+
:::tip
70+
71+
If you edited `composer.json` manually, run `composer update` to install the package:
72+
73+
```
74+
composer update
75+
```
76+
77+
Composer will resolve dependencies against the TuxCare repository and install the patched releases.
78+
79+
:::
80+
81+
</ELSSteps>
82+
83+
### Composer Repository Configuration
84+
85+
If you encounter dependency resolution errors like:
86+
87+
`packages from higher priority repository do not match your constraint`
88+
89+
it usually means your project requires a package version that is not yet available in the TuxCare repository.
90+
91+
**Solution**: Update your `composer.json` to set the TuxCare repository as non-canonical:
92+
93+
```
94+
{
95+
"repositories": [
96+
{
97+
"type": "composer",
98+
"url": "https://nexus.repo.tuxcare.com/repository/els_php/",
99+
"canonical": false
100+
}
101+
]
102+
}
103+
```
104+
105+
This allows Composer to fall back to Packagist for packages not available in the TuxCare repository, while still preferring TuxCare patches when available.
106+
107+
## What's Next?
108+
109+
<WhatsNext hide-title>
110+
111+
* ![](/images/eye.webp) [CVE Tracker](https://tuxcare.com/cve-tracker/?q=phpseclib%2Fphpseclib) — Track vulnerability fixes and updates
112+
* ![](/images/bolt.webp) [Available fixes](https://tuxcare.com/cve-tracker/fixes?q=phpseclib%2Fphpseclib) — Released fixes
113+
* ![](/images/shield-alert.webp) [VEX feed](https://security.tuxcare.com/vex/cyclonedx/els_lang_php/) — Vulnerability Exploitability eXchange feed
114+
* ![](/images/wrench.webp) [Package updates](/els-for-libraries/managing-els-repository/#PHP) — Upgrade to a newer version
115+
116+
</WhatsNext>
117+
118+
<script setup>
119+
120+
const authjson =
121+
`{
122+
"http-basic": {
123+
"nexus.repo.tuxcare.com": {
124+
"username": "USERNAME",
125+
"password": "PASSWORD"
126+
}
127+
}
128+
}`
129+
130+
const composerjson =
131+
`{
132+
"repositories": [
133+
{
134+
"type": "composer",
135+
"url": "https://nexus.repo.tuxcare.com/repository/els_php/",
136+
"options": {
137+
"http": {
138+
"verify": true
139+
}
140+
}
141+
}
142+
]
143+
}`
144+
145+
const cli =
146+
`composer config repositories.tuxcare '{"type":"composer","url":"https://nexus.repo.tuxcare.com/repository/els_php/","options":{"http":{"verify":true}}}' --json`
147+
148+
const phpseclibjson =
149+
`{
150+
"require": {
151+
"phpseclib/phpseclib": "0.3.10-p1+tuxcare"
152+
}
153+
}`
154+
155+
</script>

0 commit comments

Comments
 (0)