Последняя активность 5 days ago

Turma 5 Desafios

Версия 31924ffcc6d28a54a1775bbc25a7ba6b268d5d7b

desafio01.txt Исходник
1====================================================
2 DETALHES - Desafio Aula01 | NextGenPHP5
3====================================================
4
5----------------------------------------------------
61. Versão do PHP e Zend Engine
7----------------------------------------------------
8Comando para verificar:
9 docker compose exec php php -v
10
11Saída esperada (PHP 8.3 Alpine):
12 PHP 8.3.x (cli) (built: ...)
13 Copyright (c) The PHP Group
14 Zend Engine v4.3.x, Copyright (c) Zend Technologies
15
16----------------------------------------------------
172. Extensões instaladas
18----------------------------------------------------
19Comando para verificar:
20 docker compose exec php php -m
21
22Extensões padrão da imagem php:8.3-alpine:
23 Core, ctype, curl, date, dom, fileinfo, filter,
24 ftp, hash, iconv, json, libxml, mbstring, mysqlnd,
25 openssl, pcre, PDO, pdo_sqlite, Phar, posix,
26 readline, Reflection, session, SimpleXML, sodium,
27 SPL, sqlite3, standard, tokenizer, xml, xmlreader,
28 xmlwriter, zlib
29
30----------------------------------------------------
313. Localização do php.ini no contêiner
32----------------------------------------------------
33Comando para verificar:
34 docker compose exec php php --ini
35
36Caminho do php.ini na imagem php:8.3-alpine:
37 /usr/local/etc/php/php.ini
38
39----------------------------------------------------
404. Substituição do php.ini interno por volume
41----------------------------------------------------
42Configurado no docker-compose.yml com o mapeamento:
43 ./php.ini:/usr/local/etc/php/php.ini
44
45O arquivo local ./php.ini substitui o php.ini
46interno do contêiner via volume do Docker.
47
48----------------------------------------------------
495. Horário padrão do PHP ajustado
50----------------------------------------------------
51Configuração aplicada em ./php.ini:
52 date.timezone = America/Sao_Paulo
53
54Verificar no contêiner:
55 docker compose exec php php -r "echo date('d/m/Y H:i:s');"
56
57----------------------------------------------------
586. Limite de memória aumentado para 512MB
59----------------------------------------------------
60Configuração aplicada em ./php.ini:
61 memory_limit = 512M
62
63Verificar no contêiner:
64 docker compose exec php php -r "echo ini_get('memory_limit');"
65
66Saída esperada: 512M
67
68----------------------------------------------------
698. Correção do erro de exibição do projeto
70----------------------------------------------------
71Bug encontrado em ./index.php na função formatServices():
72
73 ANTES (incorreto):
74 return $services; // retornava o array, não a string HTML
75
76 DEPOIS (correto):
77 return $servicesHtml; // retorna a string HTML montada
78
79Acessar o projeto em: http://localhost:8011
80
81----------------------------------------------------
82DESAFIO EXTRA 1: Versão da extensão pdo_sqlite
83----------------------------------------------------
84Comando para verificar:
85 docker compose exec php php -r "
86 \$pdo = new PDO('sqlite::memory:');
87 \$stmt = \$pdo->query('SELECT sqlite_version()');
88 echo 'SQLite version: ' . \$stmt->fetchColumn() . PHP_EOL;
89 echo 'pdo_sqlite version acompanha SQLite: ' . phpversion('pdo_sqlite') . PHP_EOL;
90 "
91
92Alternativa via phpinfo:
93 docker compose exec php php -r "phpinfo();" | grep -i sqlite
94
95----------------------------------------------------
96DESAFIO EXTRA 2: Compilar o PHP
97----------------------------------------------------
98Passos disponíveis em: ../README.md
99
100Resumo:
101 1. git clone --depth=1 [email protected]:php/php-src.git
102 2. cd php-src && git checkout php-8.4.3
103 3. docker compose up -d && docker compose exec ubuntu bash
104 4. apt update && apt install -y pkg-config build-essential \
105 autoconf bison re2c libxml2-dev libsqlite3-dev
106 5. ./buildconf
107 6. ./configure --enable-debug
108 7. make -j$(nproc)
109 8. make test
110 9. make install
111
112====================================================
113 Para rodar o projeto
114====================================================
115 docker compose up -d
116 Acesse: http://localhost:8011
117====================================================
118