Skip to content

Commit aa4576c

Browse files
feat(docs): add autocompletion docs and update binary name
1 parent dcfdb2f commit aa4576c

8 files changed

Lines changed: 143 additions & 9 deletions

File tree

.github/workflows/windows.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ jobs:
181181
- name: Build FrankenPHP
182182
run: |
183183
$customVersion = "FrankenPHP $env:FRANKENPHP_VERSION PHP $env:PHP_VERSION Caddy"
184-
go build -ldflags="-extldflags=-fuse-ld=lld -X 'github.com/caddyserver/caddy/v2.CustomVersion=$customVersion' -X 'github.com/caddyserver/caddy/v2/modules/caddyhttp.ServerHeader=FrankenPHP Caddy'"
184+
go build -ldflags="-extldflags=-fuse-ld=lld -X 'github.com/caddyserver/caddy/v2.CustomVersion=$customVersion' -X 'github.com/caddyserver/caddy/v2.CustomBinaryName=frankenphp' -X 'github.com/caddyserver/caddy/v2/modules/caddyhttp.ServerHeader=FrankenPHP Caddy'"
185185
working-directory: frankenphp\caddy\frankenphp
186186

187187
- name: Create Directory

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ ENV CGO_LDFLAGS="-L/usr/local/lib -lssl -lcrypto -lreadline -largon2 -lcurl -lon
118118

119119
WORKDIR /go/src/app/caddy/frankenphp
120120
RUN GOBIN=/usr/local/bin \
121-
../../go.sh install -ldflags "-w -s -X 'github.com/caddyserver/caddy/v2.CustomVersion=FrankenPHP $FRANKENPHP_VERSION PHP $PHP_VERSION Caddy' -X 'github.com/caddyserver/caddy/v2/modules/caddyhttp.ServerHeader=FrankenPHP Caddy'" -buildvcs=true && \
121+
../../go.sh install -ldflags "-w -s -X 'github.com/caddyserver/caddy/v2.CustomVersion=FrankenPHP $FRANKENPHP_VERSION PHP $PHP_VERSION Caddy' -X 'github.com/caddyserver/caddy/v2.CustomBinaryName=frankenphp' -X 'github.com/caddyserver/caddy/v2/modules/caddyhttp.ServerHeader=FrankenPHP Caddy'" -buildvcs=true && \
122122
setcap cap_net_bind_service=+ep /usr/local/bin/frankenphp && \
123123
cp Caddyfile /etc/frankenphp/Caddyfile && \
124124
frankenphp version && \

alpine.Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ ENV CGO_LDFLAGS="-lssl -lcrypto -lreadline -largon2 -lcurl -lonig -lz $PHP_LDFLA
123123

124124
WORKDIR /go/src/app/caddy/frankenphp
125125
RUN GOBIN=/usr/local/bin \
126-
../../go.sh install -ldflags "-w -s -extldflags '-Wl,-z,stack-size=0x80000' -X 'github.com/caddyserver/caddy/v2.CustomVersion=FrankenPHP $FRANKENPHP_VERSION PHP $PHP_VERSION Caddy' -X 'github.com/caddyserver/caddy/v2/modules/caddyhttp.ServerHeader=FrankenPHP Caddy'" -buildvcs=true && \
126+
../../go.sh install -ldflags "-w -s -extldflags '-Wl,-z,stack-size=0x80000' -X 'github.com/caddyserver/caddy/v2.CustomVersion=FrankenPHP $FRANKENPHP_VERSION PHP $PHP_VERSION Caddy' -X 'github.com/caddyserver/caddy/v2.CustomBinaryName=frankenphp' -X 'github.com/caddyserver/caddy/v2/modules/caddyhttp.ServerHeader=FrankenPHP Caddy'" -buildvcs=true && \
127127
setcap cap_net_bind_service=+ep /usr/local/bin/frankenphp && \
128128
([ -z "${NO_COMPRESS}" ] && upx --best /usr/local/bin/frankenphp || true) && \
129129
frankenphp version && \

caddy/caddy.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ const (
1616
)
1717

1818
func init() {
19+
caddy.CustomBinaryName = "frankenphp"
20+
1921
caddy.RegisterModule(FrankenPHPApp{})
2022
caddy.RegisterModule(FrankenPHPModule{})
2123
caddy.RegisterModule(FrankenPHPAdmin{})

caddy/go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ replace github.com/dunglas/frankenphp => ../
77
retract v1.0.0-rc.1 // Human error
88

99
require (
10-
github.com/caddyserver/caddy/v2 v2.11.1
10+
github.com/caddyserver/caddy/v2 v2.11.2-0.20260302110428-f283062d37c5
1111
github.com/caddyserver/certmagic v0.25.2
1212
github.com/dunglas/caddy-cbrotli v1.0.1
1313
github.com/dunglas/frankenphp v1.11.3
@@ -208,7 +208,7 @@ require (
208208
golang.org/x/crypto/x509roots/fallback v0.0.0-20260213171211-a408498e5541 // indirect
209209
golang.org/x/exp v0.0.0-20260218203240-3dfff04db8fa // indirect
210210
golang.org/x/mod v0.33.0 // indirect
211-
golang.org/x/net v0.50.0 // indirect
211+
golang.org/x/net v0.51.0 // indirect
212212
golang.org/x/oauth2 v0.35.0 // indirect
213213
golang.org/x/sync v0.19.0 // indirect
214214
golang.org/x/sys v0.41.0 // indirect

caddy/go.sum

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,8 @@ github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
9595
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
9696
github.com/bits-and-blooms/bitset v1.24.4 h1:95H15Og1clikBrKr/DuzMXkQzECs1M6hhoGXLwLQOZE=
9797
github.com/bits-and-blooms/bitset v1.24.4/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8=
98-
github.com/caddyserver/caddy/v2 v2.11.1 h1:C7sQpsFOC5CH+31KqJc7EoOf8mXrOEkFyYd6GpIqm/s=
99-
github.com/caddyserver/caddy/v2 v2.11.1/go.mod h1:EOKnXuSSGlq2SuItwQuEVIsY5bRRi7tPJNHDm99XQXo=
98+
github.com/caddyserver/caddy/v2 v2.11.2-0.20260302110428-f283062d37c5 h1:izNko8IW3U/DHEZEANt/Pm0OiQMjgTaTYLbnZLU8K4o=
99+
github.com/caddyserver/caddy/v2 v2.11.2-0.20260302110428-f283062d37c5/go.mod h1:kO0dmfNxzlyDDnegi5Lo4NR8aWAycTDuRjdnlhrUDMY=
100100
github.com/caddyserver/certmagic v0.25.2 h1:D7xcS7ggX/WEY54x0czj7ioTkmDWKIgxtIi2OcQclUc=
101101
github.com/caddyserver/certmagic v0.25.2/go.mod h1:llW/CvsNmza8S6hmsuggsZeiX+uS27dkqY27wDIuBWg=
102102
github.com/caddyserver/zerossl v0.1.5 h1:dkvOjBAEEtY6LIGAHei7sw2UgqSD6TrWweXpV7lvEvE=
@@ -580,8 +580,8 @@ golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
580580
golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk=
581581
golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=
582582
golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM=
583-
golang.org/x/net v0.50.0 h1:ucWh9eiCGyDR3vtzso0WMQinm2Dnt8cFMuQa9K33J60=
584-
golang.org/x/net v0.50.0/go.mod h1:UgoSli3F/pBgdJBHCTc+tp3gmrU4XswgGRgtnwWTfyM=
583+
golang.org/x/net v0.51.0 h1:94R/GTO7mt3/4wIKpcR5gkGmRLOuE/2hNGeWq/GBIFo=
584+
golang.org/x/net v0.51.0/go.mod h1:aamm+2QF5ogm02fjy5Bb7CQ0WMt1/WVM7FtyaTLlA9Y=
585585
golang.org/x/oauth2 v0.35.0 h1:Mv2mzuHuZuY2+bkyWXIHMfhNdJAdwW3FuWeCPYN5GVQ=
586586
golang.org/x/oauth2 v0.35.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA=
587587
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=

docs/config.md

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -347,3 +347,69 @@ docker run -v $PWD:/app/public \
347347
-p 80:80 -p 443:443 -p 443:443/udp \
348348
dunglas/frankenphp
349349
```
350+
351+
## Shell Completion
352+
353+
FrankenPHP provides built-in shell completion support for Bash, Zsh, Fish, and PowerShell. This enables autocompletion for all commands (including custom commands like `php-server`, `php-cli`, and `extension-init`) and their flags.
354+
355+
### Bash
356+
357+
To load completions in your current shell session:
358+
359+
```console
360+
source <(frankenphp completion bash)
361+
```
362+
363+
To load completions for every new session, run:
364+
365+
**Linux:**
366+
367+
```console
368+
frankenphp completion bash > /etc/bash_completion.d/frankenphp
369+
```
370+
371+
**macOS:**
372+
373+
```console
374+
frankenphp completion bash > $(brew --prefix)/etc/bash_completion.d/frankenphp
375+
```
376+
377+
### Zsh
378+
379+
If shell completion is not already enabled in your environment, you will need to enable it. You can execute the following once:
380+
381+
```console
382+
echo "autoload -U compinit; compinit" >> ~/.zshrc
383+
```
384+
385+
To load completions for each session, execute once:
386+
387+
```console
388+
frankenphp completion zsh > "${fpath[1]}/_frankenphp"
389+
```
390+
391+
You will need to start a new shell for this setup to take effect.
392+
393+
### Fish
394+
395+
To load completions in your current shell session:
396+
397+
```console
398+
frankenphp completion fish | source
399+
```
400+
401+
To load completions for every new session, execute once:
402+
403+
```console
404+
frankenphp completion fish > ~/.config/fish/completions/frankenphp.fish
405+
```
406+
407+
### PowerShell
408+
409+
To load completions in your current shell session:
410+
411+
```powershell
412+
frankenphp completion powershell | Out-String | Invoke-Expression
413+
```
414+
415+
To load completions for every new session, add the output of the above command to your PowerShell profile.

docs/fr/config.md

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -279,3 +279,69 @@ docker run -v $PWD:/app/public \
279279
-p 80:80 -p 443:443 -p 443:443/udp \
280280
dunglas/frankenphp
281281
```
282+
283+
## Autocomplétion Shell
284+
285+
FrankenPHP fournit un support d'autocomplétion intégré pour Bash, Zsh, Fish et PowerShell. Cela permet l'autocomplétion de toutes les commandes (y compris les commandes personnalisées comme `php-server`, `php-cli` et `extension-init`) ainsi que leurs options.
286+
287+
### Bash
288+
289+
Pour charger l'autocomplétion dans votre session shell actuelle :
290+
291+
```console
292+
source <(frankenphp completion bash)
293+
```
294+
295+
Pour charger l'autocomplétion à chaque nouvelle session, exécutez :
296+
297+
**Linux :**
298+
299+
```console
300+
frankenphp completion bash > /etc/bash_completion.d/frankenphp
301+
```
302+
303+
**macOS :**
304+
305+
```console
306+
frankenphp completion bash > $(brew --prefix)/etc/bash_completion.d/frankenphp
307+
```
308+
309+
### Zsh
310+
311+
Si l'autocomplétion shell n'est pas déjà activée dans votre environnement, vous devrez l'activer. Vous pouvez exécuter la commande suivante une fois :
312+
313+
```console
314+
echo "autoload -U compinit; compinit" >> ~/.zshrc
315+
```
316+
317+
Pour charger l'autocomplétion à chaque session, exécutez une fois :
318+
319+
```console
320+
frankenphp completion zsh > "${fpath[1]}/_frankenphp"
321+
```
322+
323+
Vous devrez démarrer un nouveau shell pour que cette configuration prenne effet.
324+
325+
### Fish
326+
327+
Pour charger l'autocomplétion dans votre session shell actuelle :
328+
329+
```console
330+
frankenphp completion fish | source
331+
```
332+
333+
Pour charger l'autocomplétion à chaque nouvelle session, exécutez une fois :
334+
335+
```console
336+
frankenphp completion fish > ~/.config/fish/completions/frankenphp.fish
337+
```
338+
339+
### PowerShell
340+
341+
Pour charger l'autocomplétion dans votre session shell actuelle :
342+
343+
```powershell
344+
frankenphp completion powershell | Out-String | Invoke-Expression
345+
```
346+
347+
Pour charger l'autocomplétion à chaque nouvelle session, ajoutez la sortie de la commande ci-dessus à votre profil PowerShell.

0 commit comments

Comments
 (0)