Última actividad 3 weeks ago

Turma 5 Desafios

Revisión 2fa664cfeb330f7cff18f49ae075882e4d5b2379

This file can't be rendered. Ver el archivo completo.
This file can't be rendered. Ver el archivo completo.
This file can't be rendered. Ver el archivo completo.
This file can't be rendered. Ver el archivo completo.
This file can't be rendered. Ver el archivo completo.
This file can't be rendered. Ver el archivo completo.
desafio01.txt Sin formato
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
desafio02-Dockerfile Sin formato
1FROM php:8.2-fpm
2
3RUN apt-get update && apt-get install -y \
4 libpq-dev \
5 && docker-php-ext-install pdo_pgsql opcache
6
7RUN pecl install xdebug \
8 && docker-php-ext-enable xdebug
9
10WORKDIR /var/www/html
11
desafio02-docker-compose.yml Sin formato
1services:
2 nginx:
3 image: nginx:latest
4 ports:
5 - "8080:80"
6 volumes:
7 - ./src:/var/www/html
8 - ./nginx/default.conf:/etc/nginx/conf.d/default.conf
9 depends_on:
10 - php
11 networks:
12 - app-network
13
14 php:
15 image: lira/php:8.2-fpm-aula02
16 volumes:
17 - ./src:/var/www/html
18 - ./php.ini:/usr/local/etc/php/conf.d/custom.ini
19 depends_on:
20 - db
21 networks:
22 - app-network
23
24 db:
25 image: postgres:15
26 environment:
27 POSTGRES_DB: mydatabase
28 POSTGRES_USER: user
29 POSTGRES_PASSWORD: password
30 ports:
31 - "5432:5432"
32 networks:
33 - app-network
34
35networks:
36 app-network:
37 driver: bridge
38
desafio02-docker-ps.png Sin formato
desafio02-docker-ps.png
desafio03-coverage.png Sin formato
desafio03-coverage.png
desafio03.zip Sin formato
This file can't be rendered. Ver el archivo completo.