Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
15
respostas

warnings e avisos ao executar composer install

Olá professor,

executei composer install dentro da pasta do projeto mas o php informa alguns warnings. Como posso ajustar?

Mensagem no CMD:

D:\Dev\workspace-php\alura\gerenciador-de-cursos>composer install
PHP Warning:  PHP Startup: Unable to load dynamic library './ext\gd2' - NÒo foi possÝvel encontrar o m¾dulo especificado.
 in Unknown on line 0

Warning: PHP Startup: Unable to load dynamic library './ext\gd2' - NÒo foi possÝvel encontrar o m¾dulo especificado.
 in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library './ext\pdo_sqlite' - NÒo foi possÝvel encontrar o m¾dulo especificado.
 in Unknown on line 0

Warning: PHP Startup: Unable to load dynamic library './ext\pdo_sqlite' - NÒo foi possÝvel encontrar o m¾dulo especificado.
 in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library './ext\sqlite3' - NÒo foi possÝvel encontrar o m¾dulo especificado.
 in Unknown on line 0

Warning: PHP Startup: Unable to load dynamic library './ext\sqlite3' - NÒo foi possÝvel encontrar o m¾dulo especificado.
 in Unknown on line 0
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file

symfony/contracts suggests installing psr/cache (When using the Cache contracts)
symfony/contracts suggests installing psr/container (When using the Service contracts)
symfony/contracts suggests installing symfony/cache-contracts-implementation
symfony/contracts suggests installing symfony/service-contracts-implementation
symfony/contracts suggests installing symfony/translation-contracts-implementation
symfony/console suggests installing psr/log (For using the console logger)
symfony/console suggests installing symfony/event-dispatcher
symfony/console suggests installing symfony/lock
symfony/console suggests installing symfony/process
doctrine/cache suggests installing alcaeus/mongo-php-adapter (Required to use legacy MongoDB driver)
doctrine/orm suggests installing symfony/yaml (If you want to use YAML Metadata Mapping Driver)
Generating autoload files

D:\Dev\workspace-php\alura\gerenciador-de-cursos>php --version
PHP Warning:  PHP Startup: Unable to load dynamic library './ext\gd2' - NÒo foi possÝvel encontrar o m¾dulo especificado.
 in Unknown on line 0

Warning: PHP Startup: Unable to load dynamic library './ext\gd2' - NÒo foi possÝvel encontrar o m¾dulo especificado.
 in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library './ext\pdo_sqlite' - NÒo foi possÝvel encontrar o m¾dulo especificado.
 in Unknown on line 0

Warning: PHP Startup: Unable to load dynamic library './ext\pdo_sqlite' - NÒo foi possÝvel encontrar o m¾dulo especificado.
 in Unknown on line 0
PHP 7.1.30 (cli) (built: May 28 2019 15:30:07) ( NTS MSVC14 (Visual C++ 2015) x64 )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies

No PHP.ini, removi o ";", veja:

; - Many DLL files are located in the extensions/ (PHP 4) or ext/ (PHP 5+)
;   extension folders as well as the separate PECL DLL download (PHP 5+).
;   Be sure to appropriately set the extension_dir directive.
;
;extension=bz2
;extension=curl
;extension=fileinfo
extension=gd2
;extension=gettext
;extension=gmp
;extension=intl
;extension=imap
;extension=interbase
;extension=ldap
;extension=mbstring
;extension=exif      ; Must be after mbstring as it depends on it
;extension=mysqli
;extension=oci8_12c  ; Use with Oracle Database 12c Instant Client
;extension=odbc
;extension=openssl
;extension=pdo_firebird
;extension=pdo_mysql
;extension=pdo_oci
;extension=pdo_odbc
;extension=pdo_pgsql
extension=pdo_sqlite
;extension=pgsql
;extension=shmop
extension=php_pdo_sqlsrv_71_nts_x64.dll
extension=php_sqlsrv_71_nts_x64.dll

; The MIBS data available in the PHP distribution must be installed.
; See http://www.php.net/manual/en/snmp.installation.php
;extension=snmp

;extension=soap
;extension=sockets
;extension=sqlite3
;extension=tidy
;extension=xmlr
15 respostas

Parece que o sqlite não foi reconhecido, e deu o erro ao executar o projeto pela primeira vez:

Fatal error: Uncaught PDOException: could not find driver in D:\Dev\workspace-php\alura\gerenciador-de-cursos\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\PDOConnection.php:27 Stack trace: #0 D:\Dev\workspace-php\alura\gerenciador-de-cursos\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\PDOConnection.php(27): PDO->__construct('sqlite:D:\\Dev\\w...', NULL, NULL, Array) #1 D:\Dev\workspace-php\alura\gerenciador-de-cursos\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\PDOSqlite\Driver.php(42): Doctrine\DBAL\Driver\PDOConnection->__construct('sqlite:D:\\Dev\\w...', NULL, NULL, Array) #2 D:\Dev\workspace-php\alura\gerenciador-de-cursos\vendor\doctrine\dbal\lib\Doctrine\DBAL\Connection.php(356): Doctrine\DBAL\Driver\PDOSqlite\Driver->connect(Array, NULL, NULL, Array) #3 D:\Dev\workspace-php\alura\gerenciador-de-cursos\vendor\doctrine\dbal\lib\Doctrine\DBAL\Connection.php(889): Doctrine\DBAL\Connection->connect() #4 D:\Dev\workspace-php\alura\gerenciador-de-cursos\vendor\doctrine\orm\lib\Doctrine\ORM\Persisters\Entity\BasicEntity in D:\Dev\workspace-php\alura\gerenciador-de-cursos\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\AbstractSQLiteDriver.php on line 70

Oi Ivan, tudo bom?

Quando você descomentou as linhas no PHP.ini você reiniciou seu apache? É preciso reiniciar o servidor para que as alterações sejam aplicadas

Olá André, como vai?

Eu tinha desligado a máquina e voltei a ligar, mas o erro continua... Será que pode ser a versão do PHP? estou usando a 7.1.30.

olhei na pasta ext e o arquivo do sqllite existe. Segue o erro ao executar o projeto:


Fatal error: Uncaught PDOException: could not find driver in D:\Dev\workspace-php\alura\gerenciador-de-cursos\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\PDOConnection.php:27 Stack trace: #0 D:\Dev\workspace-php\alura\gerenciador-de-cursos\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\PDOConnection.php(27): PDO->__construct('sqlite:D:\\Dev\\w...', NULL, NULL, Array) #1 D:\Dev\workspace-php\alura\gerenciador-de-cursos\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\PDOSqlite\Driver.php(42): Doctrine\DBAL\Driver\PDOConnection->__construct('sqlite:D:\\Dev\\w...', NULL, NULL, Array) #2 D:\Dev\workspace-php\alura\gerenciador-de-cursos\vendor\doctrine\dbal\lib\Doctrine\DBAL\Connection.php(356): Doctrine\DBAL\Driver\PDOSqlite\Driver->connect(Array, NULL, NULL, Array) #3 D:\Dev\workspace-php\alura\gerenciador-de-cursos\vendor\doctrine\dbal\lib\Doctrine\DBAL\Connection.php(889): Doctrine\DBAL\Connection->connect() #4 D:\Dev\workspace-php\alura\gerenciador-de-cursos\vendor\doctrine\orm\lib\Doctrine\ORM\Persisters\Entity\BasicEntity in D:\Dev\workspace-php\alura\gerenciador-de-cursos\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\AbstractSQLiteDriver.php on line 70

Opa, verifica pra mim se a extensão pdo_mysql também está instalada?

Se a extensão estiver habilitada, compartilha aqui com a gente o resultado da função php_info no seu sistema =)

Abraço!

Olá, Na pasta /ext tem o arquivo php_pdo_mysql.dll; se for referente a extensão se está comentada ou não, verifiquei que ela está comentada:

;extension=pdo_mysql

abs

É para descomentá-la?

isso, depois reiniciar o apache =)

Olá amigo! descomentei, e reiniciei a máquina mas os avisos continuam.. mas agora acrescentou o aviso do MySQL:

D:\Dev\workspace-php\alura\gerenciador-de-cursos>php --version
PHP Warning:  PHP Startup: Unable to load dynamic library './ext\gd2' - NÒo foi possÝvel encontrar o m¾dulo especificado.
 in Unknown on line 0

Warning: PHP Startup: Unable to load dynamic library './ext\gd2' - NÒo foi possÝvel encontrar o m¾dulo especificado.
 in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library './ext\pdo_mysql' - NÒo foi possÝvel encontrar o m¾dulo especificado.
 in Unknown on line 0

Warning: PHP Startup: Unable to load dynamic library './ext\pdo_mysql' - NÒo foi possÝvel encontrar o m¾dulo especificado.
 in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library './ext\pdo_sqlite' - NÒo foi possÝvel encontrar o m¾dulo especificado.
 in Unknown on line 0

Warning: PHP Startup: Unable to load dynamic library './ext\pdo_sqlite' - NÒo foi possÝvel encontrar o m¾dulo especificado.
 in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library './ext\sqlite3' - NÒo foi possÝvel encontrar o m¾dulo especificado.
 in Unknown on line 0

Warning: PHP Startup: Unable to load dynamic library './ext\sqlite3' - NÒo foi possÝvel encontrar o m¾dulo especificado.
 in Unknown on line 0
PHP 7.1.30 (cli) (built: May 28 2019 15:30:07) ( NTS MSVC14 (Visual C++ 2015) x64 )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies

Veja o que está descomentado, será que falta ainda mais algum?

; Notes for Windows environments :
;
; - Many DLL files are located in the extensions/ (PHP 4) or ext/ (PHP 5+)
;   extension folders as well as the separate PECL DLL download (PHP 5+).
;   Be sure to appropriately set the extension_dir directive.
;
;extension=bz2
;extension=curl
;extension=fileinfo
extension=gd2
;extension=gettext
;extension=gmp
;extension=intl
;extension=imap
;extension=interbase
;extension=ldap
;extension=mbstring
;extension=exif      ; Must be after mbstring as it depends on it
;extension=mysqli
;extension=oci8_12c  ; Use with Oracle Database 12c Instant Client
;extension=odbc
;extension=openssl
;extension=pdo_firebird
extension=pdo_mysql
;extension=pdo_oci
;extension=pdo_odbc
;extension=pdo_pgsql
extension=pdo_sqlite
;extension=pgsql
;extension=shmop
extension=php_pdo_sqlsrv_71_nts_x64.dll
extension=php_sqlsrv_71_nts_x64.dll

; The MIBS data available in the PHP distribution must be installed.
; See http://www.php.net/manual/en/snmp.installation.php
;extension=snmp

;extension=soap
;extension=sockets
extension=sqlite3
;extension=tidy
;extension=xmlrpc
;extension=xsl

achei um bloco que pode ser útil. Sabe dizer se aqui está correto?

; The directory under which PHP opens the script using /~username used only
; if nonempty.
; http://php.net/user-dir
user_dir =

; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
 extension_dir = "./ext"
; On windows:
 extension_dir = "ext"

; Directory where the temporary files should be placed.
; Defaults to the system default (see sys_get_temp_dir)
; sys_temp_dir = "/tmp"

; Whether or not to enable the dl() function.  The dl() function does NOT work
; properly in multithreaded servers, such as IIS or Zeus, and is automatically
; disabled on them.
; http://php.net/enable-dl
enable_dl = Off
solução!

Amigo André, parece que consegui. Baixei novamente o PHP 7.1 (https://windows.php.net/download#php-7.1)

editei - php.ini-development para php-ini;

retirei os comentários das seguintes linhas:

extension_dir = "ext"
extension=php_pdo_mysql.dll
extension=php_pdo_sqlite.dll

E incluí meu SQL Server ! :)

extension=php_pdo_sqlsrv_71_nts_x64.dll
extension=php_sqlsrv_71_nts_x64.dll

A princípio, está tudo funcionando! :)

D:\Dev\workspace-php\alura\gerenciador-de-cursos>php -S localhost:8080 -t public
PHP 7.1.30 Development Server started at Mon Jul  1 16:15:30 2019
Listening on http://localhost:8080
Document root is D:\Dev\workspace-php\alura\gerenciador-de-cursos\public
Press Ctrl-C to quit.
[Mon Jul  1 16:16:19 2019] ::1:51670 [200]: /listar-curso
[Mon Jul  1 16:16:20 2019] ::1:51671 [404]: /favicon.ico - No such file or directory
[Mon Jul  1 16:17:03 2019] ::1:51739 [200]: /listar-curso
[Mon Jul  1 16:17:16 2019] ::1:51746 [200]: /listar-cursos

Obrigado pela atenção!

Boa Ivan! fico feliz que tenha resolvido =)

Abraço

Opa, Ivan. Foi mal, cara. Quando vi sua dúvida já tinha sido resolvida.

Na sua dúvida original a única coisa que faltava era descomentar a linha extension_dir = "ext".

rsrsrsrs

Quanto ao MySQL e SQL Server, só pra garantir, você sabe que não é necessário para esse treinamento, né!?

Você habilitou essas extensões para outros projetos seus, certo? Porque se for só para o treinamento, só precisa da extensão do SQLite mesmo.

:-)

Abração e de novo, desculpa por não ter visto sua pergunta antes.

Ah, quase me esqueci... Bora atualizar esse PHP pro 7.3, hein!? ;-p

Olá Vinicius, tranquilo!

o[O MySQL, o André recomendou retirar comentário. Por enquanto não estou utilizando o MySQL. Quanto ao SQL Server, a empresa que estou, trabalha com SQL Server.

Quanto a versão 7.3 do PHP, eu mantive a 7.1 porque não sei se o sistema a empresa utiliza algo que só tem no PHP 7.1 ou algo que ainda não está depreciado na versão 7.1. E não sei ainda se os drivers do SQL Server irão funcionar no PHP 7.3, que é bem recente.

Mas vontade eu tenho de já iniciar na versão mais atual.

Quando acabar o laravel parte 2, tentarei refatorar o sistema no laravel. Tem um controller do sistema atual que tem 2.000 linhas =0

Com certeza tem copy / paste e funções sem uso. e esses conhecimentos de composer e doctrine devem ajudar. Os relacionamentos das tabelas do sistema no SQL Server tem de tudo: 1 para N, N para N, 1 para 1...

#medo...

Abração e Obrigado!

Opa, Ivan.

Com certeza tudo o SQL Server funciona de boa no 7.3. Não há quebra de compatibilidade em versões assim no PHP.

Recomendo sempre manter atualizado pois quanto mais tempo você demorar pra atualizar o PHP, mais difícil vai ficando.

Hoje trabalho numa empresa onde a base de código tá em PHP 5.4. Um horror.

Já trabalhei com PHP 5.2. Esses sistemas são MUITO difícieis de atualizar. Agora atualizar do 7.1 pro 7.3 é moleza. Não deixa pra depois não.

;-)

Forte abraço, man!