Solucionado (ver solução)
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!