Skip to content

Commit 6ab8350

Browse files
authored
feat: translate file docs/extensions.md (#1843)
1 parent ad86bf4 commit 6ab8350

17 files changed

Lines changed: 1201 additions & 151 deletions

docs/pt-br/CONTRIBUTING.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ Adicione diretórios ao `.dockerignore`.
3333

3434
### Sem Docker (Linux e macOS)
3535

36-
[Siga as instruções para compilar a partir dos fontes](compile.md) e passe a
37-
flag de configuração `--debug`.
36+
[Siga as instruções para compilar a partir do código-fonte](compile.md) e passe
37+
a flag de configuração `--debug`.
3838

3939
## Executando a suite de testes
4040

@@ -199,7 +199,7 @@ docker buildx bake -f docker-bake.hcl --pull --no-cache --push
199199
- [PHP embedding in Go (go-php)](https://github.com/deuill/go-php)
200200
- [PHP embedding in Go (GoEmPHP)](https://github.com/mikespook/goemphp)
201201
- [PHP embedding in C++](https://gist.github.com/paresy/3cbd4c6a469511ac7479aa0e7c42fea7)
202-
- [Extending and Embedding PHP por Sara Golemon](https://books.google.fr/books?id=zMbGvK17_tYC&pg=PA254&lpg=PA254#v=onepage&q&f=false)
202+
- [Extending and Embedding PHP, por Sara Golemon](https://books.google.fr/books?id=zMbGvK17_tYC&pg=PA254&lpg=PA254#v=onepage&q&f=false)
203203
- [What the heck is TSRMLS_CC, anyway?](http://blog.golemon.com/2006/06/what-heck-is-tsrmlscc-anyway.html)
204204
- [SDL bindings](https://pkg.go.dev/github.com/veandco/go-sdl2@v0.4.21/sdl#Main)
205205

docs/pt-br/README.md

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1-
# FrankenPHP: Servidor de aplicações moderno para PHP
1+
# FrankenPHP: um moderno servidor de aplicações para PHP
22

33
<h1 align="center"><a href="https://frankenphp.dev/pt-br"><img src="frankenphp.png" alt="FrankenPHP" width="600"></a></h1>
44

5-
O FrankenPHP é um servidor de aplicações moderno para PHP, construído sobre o
5+
O FrankenPHP é um moderno servidor de aplicações para PHP, construído sobre o
66
servidor web [Caddy](https://caddyserver.com/).
77

8-
O FrankenPHP oferece superpoderes às suas aplicações PHP graças aos seus
9-
recursos impressionantes: [_Early Hints_](early-hints.md),
10-
[modo worker](worker.md), [recursos em tempo real](mercure.md), suporte
11-
automático a HTTPS, HTTP/2 e HTTP/3...
8+
O FrankenPHP superpoderes às suas aplicações PHP graças aos seus recursos
9+
impressionantes: [_Early Hints_](early-hints.md), [modo worker](worker.md),
10+
[recursos em tempo real](mercure.md), suporte automático a HTTPS, HTTP/2 e
11+
HTTP/3...
1212

1313
O FrankenPHP funciona com qualquer aplicação PHP e torna seus projetos Laravel e
1414
Symfony mais rápidos do que nunca, graças às suas integrações oficiais com o
@@ -56,7 +56,7 @@ frankenphp php-cli /caminho/para/seu/script.php
5656

5757
### Docker
5858

59-
Alternativamente, [imagens do Docker](docker.md) estão disponíveis:
59+
Alternativamente, [imagens Docker](docker.md) estão disponíveis:
6060

6161
```console
6262
docker run -v .:/app/public \
@@ -94,11 +94,12 @@ frankenphp php-server
9494
## Documentação
9595

9696
- [Modo clássico](classic.md)
97-
- [Modo Worker](worker.md)
97+
- [Modo worker](worker.md)
9898
- [Suporte a Early Hints (código de status HTTP 103)](early-hints.md)
9999
- [Tempo real](mercure.md)
100100
- [Servindo grandes arquivos estáticos com eficiência](x-sendfile.md)
101101
- [Configuração](config.md)
102+
- [Escrevendo extensões PHP em Go](extensions.md)
102103
- [Imagens Docker](docker.md)
103104
- [Implantação em produção](production.md)
104105
- [Otimização de desempenho](performance.md)
@@ -109,7 +110,7 @@ frankenphp php-server
109110
- [Integração com Laravel](laravel.md)
110111
- [Problemas conhecidos](known-issues.md)
111112
- [Aplicação de demonstração (Symfony) e benchmarks](https://github.com/dunglas/frankenphp-demo)
112-
- [Documentação da biblioteca Go](https://pkg.go.dev/github.com/dunglas/frankenphp)
113+
- [Documentação da biblioteca Go](https://pkg.go.dev/github.com/php/frankenphp)
113114
- [Contribuindo e depurando](CONTRIBUTING.md)
114115

115116
## Exemplos e esqueletos

docs/pt-br/classic.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ semelhante ao modo dinâmico do PHP-FPM.
1818
As conexões enfileiradas aguardarão indefinidamente até que uma thread PHP
1919
esteja disponível para servi-las.
2020
Para evitar isso, você pode usar a
21-
[configuração](config.md#configuracao-do-caddyfile) `max_wait_time` para limitar
22-
o tempo que uma requisição pode esperar por uma thread PHP livre antes de ser
23-
rejeitada.
21+
[configuração](config.md#configuracao-do-caddyfile) `max_wait_time` na
22+
configuração global do FrankenPHP para limitar o tempo que uma requisição pode
23+
esperar por uma thread PHP livre antes de ser rejeitada.
2424
Além disso, você pode definir um
2525
[tempo limite de escrita razoável no Caddy](https://caddyserver.com/docs/caddyfile/options#timeouts).
2626

docs/pt-br/compile.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Compilar a partir dos fontes
1+
# Compilar a partir do código-fonte
22

33
Este documento explica como criar um binário FrankenPHP que carregará o PHP como
44
uma biblioteca dinâmica.
@@ -29,10 +29,10 @@ brew link --overwrite --force shivammathur/php/php-zts
2929

3030
### Compilando o PHP
3131

32-
Alternativamente, você pode compilar o PHP a partir dos códigos-fonte com as
32+
Alternativamente, você pode compilar o PHP a partir do código-fonte com as
3333
opções necessárias para o FrankenPHP seguindo estes passos.
3434

35-
Primeiro, [obtenha os códigos-fonte do PHP](https://www.php.net/downloads.php) e
35+
Primeiro, [obtenha o código-fonte do PHP](https://www.php.net/downloads.php) e
3636
extraia-os:
3737

3838
```console
@@ -91,10 +91,10 @@ devem ser instaladas.
9191
Alternativamente, esses recursos podem ser desabilitados passando as tags de
9292
compilação para o compilador Go.
9393

94-
| Recurso | Dependência | Tag de compilação para desabilitá-lo |
95-
|----------------------------------------|-----------------------------------------------------------------------|--------------------------------------|
96-
| Compressão Brotli | [Brotli](https://github.com/google/brotli) | `nobrotli` |
97-
| Reiniciar workers ao alterar o arquivo | [Watcher C](https://github.com/e-dant/watcher/tree/release/watcher-c) | `nowatcher` |
94+
| Recurso | Dependência | Tag de compilação para desabilitá-lo |
95+
|---------------------------------------|-----------------------------------------------------------------------|--------------------------------------|
96+
| Compressão Brotli | [Brotli](https://github.com/google/brotli) | `nobrotli` |
97+
| Reiniciar workers ao alterar arquivos | [Watcher C](https://github.com/e-dant/watcher/tree/release/watcher-c) | `nowatcher` |
9898

9999
## Compilando a aplicação Go
100100

@@ -115,7 +115,7 @@ CGO_CFLAGS=$(php-config --includes) \
115115
CGO_LDFLAGS="$(php-config --ldflags) $(php-config --libs)" \
116116
xcaddy build \
117117
--output frankenphp \
118-
--with github.com/dunglas/frankenphp/caddy \
118+
--with github.com/php/frankenphp/caddy \
119119
--with github.com/dunglas/mercure/caddy \
120120
--with github.com/dunglas/vulcain/caddy
121121
# Adicione módulos Caddy e extensões FrankenPHP extras aqui
@@ -141,7 +141,7 @@ Alternativamente, é possível compilar o FrankenPHP sem o `xcaddy` usando o
141141
comando `go` diretamente:
142142

143143
```console
144-
curl -L https://github.com/dunglas/frankenphp/archive/refs/heads/main.tar.gz | tar xz
144+
curl -L https://github.com/php/frankenphp/archive/refs/heads/main.tar.gz | tar xz
145145
cd frankenphp-main/caddy/frankenphp
146146
CGO_CFLAGS=$(php-config --includes) CGO_LDFLAGS="$(php-config --ldflags) $(php-config --libs)" go build -tags=nobadger,nomysql,nopgx
147147
```

docs/pt-br/config.md

Lines changed: 60 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ FrankenPHP, Caddy, bem como os módulos Mercure e Vulcain, podem ser configurado
44
usando
55
[os formatos suportados pelo Caddy](https://caddyserver.com/docs/getting-started#your-first-config).
66

7-
Nas [imagens do Docker](docker.md), o `Caddyfile` está localizado em
7+
Nas [imagens Docker](docker.md), o `Caddyfile` está localizado em
88
`/etc/frankenphp/Caddyfile`.
99
O binário estático também procurará pelo `Caddyfile` no diretório onde o comando
1010
`frankenphp run` é executado.
@@ -19,9 +19,9 @@ arquivos de configuração nos locais descritos acima.
1919
## Docker
2020

2121
- `php.ini`: `/usr/local/etc/php/php.ini` (nenhum `php.ini` é fornecido por
22-
padrão)
23-
- Arquivos de configuração adicionais: `/usr/local/etc/php/conf.d/*.ini`
24-
- Extensões PHP: `/usr/local/lib/php/extensions/no-debug-zts-<YYYYMMDD>/`
22+
padrão);
23+
- Arquivos de configuração adicionais: `/usr/local/etc/php/conf.d/*.ini`;
24+
- Extensões PHP: `/usr/local/lib/php/extensions/no-debug-zts-<YYYYMMDD>/`;
2525
- Você deve copiar um template oficial fornecido pelo projeto PHP:
2626

2727
```dockerfile
@@ -37,18 +37,18 @@ RUN cp $PHP_INI_DIR/php.ini-development $PHP_INI_DIR/php.ini
3737
## Pacotes RPM e Debian
3838

3939
- `php.ini`: `/etc/frankenphp/php.ini` (um arquivo `php.ini` com configurações
40-
de produção é fornecido por padrão)
41-
- Arquivos de configuração adicionais: `/etc/frankenphp/php.d/*.ini`
42-
- Extensões PHP: `/usr/lib/frankenphp/modules/`
40+
de produção é fornecido por padrão);
41+
- Arquivos de configuração adicionais: `/etc/frankenphp/php.d/*.ini`;
42+
- Extensões PHP: `/usr/lib/frankenphp/modules/`.
4343

4444
## Binário estático
4545

4646
- `php.ini`: O diretório no qual `frankenphp run` ou `frankenphp php-server` é
47-
executado e, em seguida, `/etc/frankenphp/php.ini`
48-
- Arquivos de configuração adicionais: `/etc/frankenphp/php.d/*.ini`
49-
- Extensões PHP: não podem ser carregadas, empacote-as no próprio binário
50-
- Copie um dos `php.ini-production` ou `php.ini-development` fornecidos
51-
[nos fontes do PHP](https://github.com/php/php-src/).
47+
executado e, em seguida, `/etc/frankenphp/php.ini`;
48+
- Arquivos de configuração adicionais: `/etc/frankenphp/php.d/*.ini`;
49+
- Extensões PHP: não podem ser carregadas, empacote-as no próprio binário;
50+
- Copie um dos arquivos `php.ini-production` ou `php.ini-development` fornecidos
51+
[no código-fonte do PHP](https://github.com/php/php-src/).
5252

5353
## Configuração do Caddyfile
5454

@@ -79,11 +79,12 @@ A [opção global](https://caddyserver.com/docs/caddyfile/concepts#global-option
7979
max_wait_time <duracao> # Define o tempo máximo que uma requisição pode esperar por uma thread PHP livre antes de atingir o tempo limite. Padrão: disabled.
8080
php_ini <chave> <valor> # Define uma diretiva php.ini. Pode ser usada várias vezes para definir múltiplas diretivas.
8181
worker {
82-
file <caminho> # Define o caminho para o script do worker.
82+
file <caminho> # Define o caminho para o worker script.
8383
num <num> # Define o número de threads PHP a serem iniciadas, o padrão é 2x o número de CPUs disponíveis.
84-
env <chave> <valor> # Define uma variável de ambiente extra para o valor fornecido. Pode ser especificado mais de uma vez para múltiplas variáveis de ambiente.
85-
watch <caminho> # Define o caminho para monitorar alterações no arquivo. Pode ser especificado mais de uma vez para múltiplos caminhos.
84+
env <chave> <valor> # Define uma variável de ambiente extra para o valor fornecido. Pode ser especificada mais de uma vez para múltiplas variáveis de ambiente.
85+
watch <caminho> # Define o caminho para monitorar alterações em arquivos. Pode ser especificada mais de uma vez para múltiplos caminhos.
8686
name <nome> # Define o nome do worker, usado em logs e métricas. Padrão: caminho absoluto do arquivo do worker.
87+
max_consecutive_failures <num> # Define o número máximo de falhas consecutivas antes do worker ser considerado inoperante. -1 significa que o worker sempre reiniciará. Padrão: 6.
8788
}
8889
}
8990
}
@@ -109,13 +110,15 @@ servidor:
109110

110111
```caddyfile
111112
app.example.com {
113+
root /caminho/para/aplicacao/public
112114
php_server {
113-
root /caminho/para/aplicacao/public
115+
root /caminho/para/aplicacao/public # permite melhor armazenamento em cache
114116
worker index.php <num>
115117
}
116118
}
117119
118120
outra.example.com {
121+
root /caminho/para/outra/aplicacao/public
119122
php_server {
120123
root /caminho/para/outra/aplicacao/public
121124
worker index.php <num>
@@ -162,14 +165,15 @@ php_server [<matcher>] {
162165
root <directory> # Define a pasta raiz para o site. Padrão: diretiva `root`.
163166
split_path <delim...> # Define as substrings para dividir o URI em duas partes. A primeira substring correspondente será usada para separar as "informações de caminho" do caminho. A primeira parte é sufixada com a substring correspondente e será assumida como o nome real do recurso (script CGI). A segunda parte será definida como PATH_INFO para o script usar. Padrão: `.php`
164167
resolve_root_symlink false # Desabilita a resolução do diretório `root` para seu valor real avaliando um link simbólico, se houver (habilitado por padrão).
165-
env <chave> <valor> # Define uma variável de ambiente extra para o valor fornecido. Pode ser especificado mais de uma vez para múltiplas variáveis de ambiente.
168+
env <chave> <valor> # Define uma variável de ambiente extra para o valor fornecido. Pode ser especificada mais de uma vez para múltiplas variáveis de ambiente.
166169
file_server off # Desabilita a diretiva interna file_server.
167-
worker { # Cria um worker específico para este servidor. Pode ser especificado mais de uma vez para múltiplos workers.
168-
file <caminho> # Define o caminho para o script do worker, pode ser relativo à raiz do php_server
169-
num <num> # Define o número de threads PHP a serem iniciadas, o padrão é 2x o número de threads disponíveis
170+
worker { # Cria um worker específico para este servidor. Pode ser especificada mais de uma vez para múltiplos workers.
171+
file <caminho> # Define o caminho para o worker script, pode ser relativo à raiz do php_server.
172+
num <num> # Define o número de threads PHP a serem iniciadas, o padrão é 2x o número de threads disponíveis.
170173
name <nome> # Define o nome do worker, usado em logs e métricas. Padrão: caminho absoluto do arquivo do worker. Sempre começa com m# quando definido em um bloco php_server.
171-
watch <caminho> # Define o caminho para monitorar alterações no arquivo. Pode ser especificado mais de uma vez para múltiplos caminhos.
172-
env <chave> <valor> # Define uma variável de ambiente extra para o valor fornecido. Pode ser especificado mais de uma vez para múltiplas variáveis de ambiente. As variáveis de ambiente para este worker também são herdadas do php_server pai, mas podem ser sobrescritas aqui.
174+
watch <caminho> # Define o caminho para monitorar alterações em arquivos. Pode ser especificada mais de uma vez para múltiplos caminhos.
175+
env <chave> <valor> # Define uma variável de ambiente extra para o valor fornecido. Pode ser especificada mais de uma vez para múltiplas variáveis de ambiente. As variáveis de ambiente para este worker também são herdadas do pai do php_server, mas podem ser sobrescritas aqui.
176+
match <caminho> # Corresponde o worker a um padrão de caminho. Substitui try_files e só pode ser usada na diretiva php_server.
173177
}
174178
worker <outro_arquivo> <num> # Também pode usar a forma abreviada, como no bloco global frankenphp.
175179
}
@@ -180,7 +184,7 @@ php_server [<matcher>] {
180184
Como os workers inicializam sua aplicação apenas uma vez e a mantêm na memória,
181185
quaisquer alterações nos seus arquivos PHP não serão refletidas imediatamente.
182186

183-
Os workers podem ser reiniciados em caso de alterações nos arquivos por meio da
187+
Os workers podem ser reiniciados em caso de alterações em arquivos por meio da
184188
diretiva `watch`.
185189
Isso é útil para ambientes de desenvolvimento.
186190

@@ -224,9 +228,37 @@ Você também pode especificar um ou mais diretórios por meio de um
224228
- Tenha cuidado ao monitorar arquivos criados em tempo de execução (como logs),
225229
pois eles podem causar reinicializações indesejadas de workers.
226230

227-
O monitor de arquivos é baseado em
231+
O monitor de arquivos é baseado no
228232
[e-dant/watcher](https://github.com/e-dant/watcher).
229233

234+
## Correspondendo o worker a um caminho
235+
236+
Em aplicações PHP tradicionais, os scripts são sempre colocados no diretório
237+
público.
238+
Isso também se aplica aos worker scripts, que são tratados como qualquer outro
239+
script PHP.
240+
Se você quiser colocar o worker script fora do diretório público, pode fazê-lo
241+
por meio da diretiva `match`.
242+
243+
A diretiva `match` é uma alternativa otimizada ao `try_files`, disponível apenas
244+
dentro do `php_server` e do `php`.
245+
O exemplo a seguir sempre servirá um arquivo no diretório público, se presente,
246+
e, caso contrário, encaminhará a requisição para o worker que corresponde ao
247+
padrão de caminho.
248+
249+
```caddyfile
250+
{
251+
frankenphp {
252+
php_server {
253+
worker {
254+
file /caminho/para/worker.php # arquivo pode estar fora do caminho público
255+
match /api/* # todas as requisições que começam com /api/ serão tratadas por este worker
256+
}
257+
}
258+
}
259+
}
260+
```
261+
230262
### Full Duplex (HTTP/1)
231263

232264
Ao usar HTTP/1.x, pode ser desejável habilitar o modo full-duplex para permitir
@@ -267,10 +299,10 @@ no `Caddyfile` sem modificá-lo:
267299

268300
- `SERVER_NAME`: altera
269301
[os endereços nos quais escutar](https://caddyserver.com/docs/caddyfile/concepts#addresses),
270-
os nomes de host fornecidos também serão usados para o certificado TLS gerado.
271-
- `SERVER_ROOT`: altera o diretório raiz do site, o padrão é `public/`.
302+
os nomes de host fornecidos também serão usados para o certificado TLS gerado;
303+
- `SERVER_ROOT`: altera o diretório raiz do site, o padrão é `public/`;
272304
- `CADDY_GLOBAL_OPTIONS`: injeta
273-
[opções globais](https://caddyserver.com/docs/caddyfile/options).
305+
[opções globais](https://caddyserver.com/docs/caddyfile/options);
274306
- `FRANKENPHP_CONFIG`: injeta a configuração sob a diretiva `frankenphp`.
275307

276308
Quanto às SAPIs FPM e CLI, as variáveis de ambiente são expostas por padrão na
@@ -309,7 +341,7 @@ Você também pode alterar a configuração do PHP usando a diretiva `php_ini` n
309341

310342
## Habilitar o modo de depuração
311343

312-
Ao usar a imagem do Docker, defina a variável de ambiente `CADDY_GLOBAL_OPTIONS`
344+
Ao usar a imagem Docker, defina a variável de ambiente `CADDY_GLOBAL_OPTIONS`
313345
como `debug` para habilitar o modo de depuração:
314346

315347
```console

0 commit comments

Comments
 (0)