PHP do Básico ao Avançado – Aula 2 – Instalação, Configurações Básicas e Ferramentas

Tempo de Leitura: 17 Minutos

Nesta segunda aula, vamos falar sobre a instalação e a preparação de um ambiente básico de desenvolvimento, que pode ser em praticamente qualquer versão do Windows, macOS ou Linux contendo a linguagem PHP, um servidor web como o Apache, e um servidor de Banco de Dados como o MySQL ou MariaDb além das ferramentas de manipulação do banco de dados, e uma IDE ou editor de texto com suporte ao PHP para facilitar a codificação. Aproveito também para dar algumas dicas de configurações que são úteis no ambiente de desenvolvimento e que devem ser alteradas nos ambientes de produção, e as diferenças entre essas configurações.

Instalando

Para instalar o suporte a linguagem, existem diversos métodos, que podem ser diferentes em cada versão do seu sistema operacional, e somente a linguagem já permite o uso porém, para uma exploração total dos recursos, e interessante ter além do suporte a linguagem PHP e suas extensões, um servidor web configurado e um servidor de banco de dados. Pensando nisso e na redução do trabalho,  vamos utilizar uma ferramenta conhecida como LAMPP ou XAMPP ou MAMPP (respectivamente para os ambientes Linux, Windows e macOs) que podem ser baixadas em https://www.apachefriends.org/pt_br/index.html e que preparam a base do ambite.

Neste link, é possível a partir de um único instalador, compatível com a versão do sistema, e ele roda na maioria dos sistemas do mercado, instalar um servidor web, como o apache2 um banco de dados MariaDB e o suporte a linguagem PHP além de serviços de email, e FTP, para uso como desenvolvedor. Já vindo com todas as configurações no padrão, deixando o ambiente pronto para desenvolver.

O objetivo aqui, não é fazer um tutorial de como instalar um servidor web para produção na internet, portanto, não vamos entrar em detalhes das configurações do Apache e de outros serviços. Mas sinta-se a vontade para usar a versão de servidor e de banco de dados que você já tem disponível, ou mesmo um servidor web já configurado de uma conta de hospedagem.

Entendendo as configurações do PHP

Todas as configurações que vamos nos referir neste curso, pre supõem que você esteja executando o servidor lampp ou campo ou mampp (que a partir de agora vamos chamar só de campo) em suas configurações originais, pois algumas configurações do servidor web e do próprio PHP podem alterar os nomes e locais onde estes arquivos se encontram, ou mesmo, permitir que a configuração seja executada em diferentes versões num mesmo ambiente.

Especificamente, se você usa o sistema windows, o arquivo de configuração está em c:\xampp\php\php.ini no linux a instalação padrão coloca este arquivo em /opt/lampp/etc/php.ini e no macOs em /Application/MAMP/etc/php.ini se você esta usando outras configurações, pode executar o comando php -i que será apresentado um texto com todas as configurações carregadas, ou se você só tem acesso ao servidor pelo browser, crie um arquivo com o nime info.php contendo as seguinte linha dentro dele:

<?php phpinfo(); ?>

Pronto, a saída deste arquivo vai se parecer com:

Se você percorrer toda a saída no browser, vai ver tudo o que está instalado e habilitado a rodar naquele servidor, bem como um monte de configurações que estão setadas, no arquivo php.ini ou em outro arquivo conforme mostrado em: Loaded Configuration File  /opt/lampp/etc/php.ini que é exatamente o arquivo que está sendo usado por aquele servidor para carregar as configurações.

Neste momento vamos falar, como você pode editar este arquivo e quais são as configurações relevantes para um servidor de desenvolvimento. Veja algumas delas, que são importantes, as demais, neste momento você não precisa alterar, nem se preocupar exatamente com o que ela faz, lá na frente quando estiver-mos falando do deploy de sua aplicação, vamos entrar novamente nessas configurações.

O arquivo php.ini

Este arquivo, é a base para todas as configurações da linguagem, e nele é que as configurações são feitas ou alteradas. Sua estrutura é muito simples, as diretrizes são setadas dentro de um bloco que identifica a qual núcleo a configuração se refere, e nas demais linhas temos diretriz=valor e todas as linhas iniciadas com ; são comentários, da mesma maneira que tudo que estiver na mesma linha após o ; também é ignorado. Veja abaixo um arquivo php.ini básico, com algumas configurações realizadas. Você pode inclusive usar esse arquivo ou alterar as diretrizes de acordo com a sua necessidade.

No próprio código, colocamos como comentário a função padrão, e a alteração e seu efeito. Veja:

[PHP]
; o BLOCO acima identifica que as linhas subsequentes serão alterações do comportamento do CORE da linguagem

; Linhas vazias ou com espaços e iniciadas com um ; são ignoradas, os cabeçalhos entre colchetes também são ignorados, porém, tem um significado.
; Directives são especificadas usando-se a sintaxe abaixo, e são sensíveis a maiusculas e minusculas, devendo ser escritas como indicado. 
; Elas podem alterar tanto o core do PHP como o funcionamento de suas extensões e a forma como ele opera no local.
; diretiva = valor
; Onde valor pode ser ums atring, um valor numérico ou uma constante do PHP ou mesmo uma expressão
; Valores boleanos são vistos usando-se os valores 1, On, True ou Yes para ligados ou 0, Off, False e No para desligados.

allow_call_time_pass_reference = Off
; Permite que parâmetros sejam passados por referência, deve ser mantida desligado, pois essa informação deve ser declarada na propria criação de funções, era um atalho, usado em versões antigas do PHP até a 5.1

display_errors = On 
; Permite que o PHP imprima as mensagens de erro na saída do browser, é uma boa prática ser desabilitada (Off) em sistemas de produção

display_startup_errors = On
; Mostra os erros de inicialização, como falta de bibliotecas ou erros em chamadas a funções. Novamente deve ser desabilitado em sistemas de produção
error_reporting = E_ALL
;   Mostra todos os erros, inclusive de desempenho e avisos de funções ultrapassadas, na versão de desenvolvimento, você pode optar pelos formatos abaixo, e na produção podem ser desabilitados, ou mantidos conforme abaixo
;   Development Value: E_ALL | E_STRICT  
;   Production Value: E_ALL & ~E_DEPRECATED

html_errors = On
;  Mostra os erros em formato HTML, junto com o código de saída, outra instrução que ajuda na depuração dos erros, mais que deve ser desabilitada em servidores de produção.
;   Development Value: On
;   Production value: Off

log_errors = On
; Serve para identificar se um arquivo contendo o log de erros deve ou não ser usado, mais a frente vemos onde salvar esse arquivo, e em produção deve ser em um lugar onde o servidor Apache não tenha como servir o arquivo.
;   Development Value: On
;   Production Value: On

max_input_time = 60
; o tempo que o PHP espera pelo servidor para processar a entrada de Get e POST exceto se existir motivos como um servidor de upload, 60 segundos é tempo ideal. 
;   Development Value: 60 (60 seconds)
;   Production Value: 60 (60 seconds)

output_buffering = 4096
; Serve para ativar o buffer de saída, geralmente deixa-lo ativo previne erros de cabeçalho já enviado, e deixa-lo desligado faz com que todas as saidas sejam enviadas ao browser imediatamente
;   Development Value: 4096
;   Production Value: Off

 register_argc_argv =Off 
; Exceto se você precisar utilizar chamadas via linha de comendo, essa diretiva deve ficar desligada pois consome alguns ciclos de máquina.
;   Development Value: Off
;   Production Value: Off

request_order = GP
; Identifica a ordem de registro das variáveis no $_REQUEST gesta ordem, se uma mesma variavel estiver definida como GET, e como POST o valor de POST sobrepoe o de GET, exceto se precisar alterar essa diretiva, não há com que se preocupar no momento.
;   Development Value: "GP"
;   Production Value: "GP"

session.gc_divisor = 1000
; Essa diretriz informa ao PHP como ocorre a OLETA DE LIXO das sessoes, valores muito baixos, vao fazer a coleta ocorrer com mais frequencia e consomirão muita CPU, valores muito altos, podem aumentar o consumo de memória, a maioria dos servidores vai trabalhar bem com valores entre 500 e 3000, sendo 1000 o valor que uso quase sempre, para equilibrar a performace e o conumo de memória e cpu
;   Development Value: 1000
;   Production Value: 1000

short_open_tag = Off
; Permite o uso da tag abreviada <? ?> para entrar no modo PHP, não é uma boa prática pois pode conflitar com saídas de XML, prefira o uso da tag completa, cono indicado nas boas práticas
;   Development Value: Off
;   Production Value: Off

; Allow ASP-style <% %> tags. 
; Para manter as boas práticas, essa diretiva deve ser deixada desligada.
asp_tags=Off

track_errors = Off
; Deixa o valor do ultimo erro na variável, seu uso passou a ser desencorajado no PHP 5.4 e passou a emitir um alert no 7.2, prefira o uso da função error_get_last()

; url_rewriter.tags
;   Default Value: "a=href,area=href,frame=src,form=,fieldset="
; Não precisa se preocupar com ela no momento, o padrão é o usual e não há necessidade já que atualmente as sessões geralmente usam cookies e não mais GET
variables_order = "GPCS"
;   Default Value: "EGPCS"
; Configura a ordem de análise das variáveis EGPCS (Environment, Get, Post, Cookie e Server). Por exemplo, se variables_order estiver configurada como "SP" então o PHP irá criar as variáveis superglobals $_SERVER e $_POST, mas não irá criar $_ENV, $_GET e $_COOKIE. Configurar como "" significa que nenhuma superglobals será definida.

;user_ini.filename = ".user.ini"
; Define se um arquivo padrão (.user.ini) pode ser usado para carregar diretivas em tempo de execução, se habilitado e este arquivo existir dentro do seu diretório web, ele será usado sobrepondo os valores de php.ini que forem definidas, exceto para servidores com multiplas contas, não se preocupe agora com isso
user_ini.filename =
; deixa esse arquivo desabilitado no momento

; Enable the PHP scripting language engine under Apache.
; Liga a execução do PHP, se setado em um .htaccess pode desabilitar o PHP naquele diretório, util em diretório que recebem arquivos de fora ou entradas de usuário.
engine=On

; The number of significant digits displayed in floating point numbers. PADRÂO 14
; Util para calculos matemáticos, essa é a precisão padrão, diminuir vai reduzir a precisão de calculos matemáticos, e é seguro manter um valor de 9 para calculos usando SENO e HAVERSENO para geolocalização, valores maiores são úteis somente com calculos científicos
precision=9

; Enforce year 2000 compliance (will cause problems with non-compliant browsers)
; Força a compatibilidade de datas com o ano 2000, é boa prática estar sempre ativada, foi criada para calculos com data de 2 digitos (antigo bug do milênio)
y2k_compliance=On

; habilita a compressão ZLIB, prefira utilizar o mod_deflate do apache para processar a saida que consome menos recursos já que processa a saída como um todo.
zlib.output_compression=Off

; http://php.net/zlib.output-compression-level
; Indica o tipo e a precisão, caso a diretiva anterior esteja ligada
;zlib.output_compression_level = -1

; Define handles específicos para a saída ZLIB, util se a diretiva estiver habilitada e você precisar definir alguma configuração diferente do padrão, no momento esqueça isso
;zlib.output_handler =

; Habilita a saída parcial do PHP pelo Flush, no momento, não se preocupe com isso.
implicit_flush=Off

; Determina uma função de deserialização, novamente não se preocupe com isso, só mantenha o padrão
unserialize_callback_func=

; Quando flutuadores e duplos são serializados, armazene serialize_precision significa X
; dígitos após o ponto flutuante. O valor padrão garante que quando fluats são decodificados com unserialize, os dados permanecerão os mesmos.
;pode deixar o padrão neste momento
serialize_precision=100

; é uma diretiva de segurança, que só permite ao usuário alterar variaveis globais definidas, no momento, deixe com o padrão.
safe_mode_allowed_env_vars=PHP_
safe_mode_protected_env_vars=LD_LIBRARY_PATH
; Desabilita funções por padrão, basta passar os nomes das funções, em desenvolvimento, pode deixar habilitado, em produção funções não usadas e de chamadas remotas e a arquivos do sistema e do shell devem ser desabilitadas
disable_functions=
disable_classes=

; Colors for Syntax Highlighting mode.  Liga e desliga o uso de cores e estilos para as saidas de erro, pode deixar desligado para economizar bytes de saida, em produção sempre deixe desabilitado.
;highlight.string  = #DD0000
;highlight.comment = #FF9900
;highlight.keyword = #007700
;highlight.bg      = #FFFFFF
;highlight.default = #0000BB
;highlight.html    = #000000

; Permite que a execução do script continue mesmo se o browser for cancelado, em produção desabilitar pode ajudar a abortar caso um erro possa travar o PHP por um período. Em produção, se tiver solicitações que possam demorar e queira conclui-las deixe ligado.
ignore_user_abort = Off

; Determina se o PHP coloca ou não no cabeçalho a assinatura de sua versão, não há nenhum risco, e ajuda a determinar alguns cabeçalhos gerados para depuração, em desenvolvimento deixe habilitado, em produção tanto faz, eu prefiro deixar ligado.
expose_php=On

; Maxio tempo de execução, em desenvolvimento 1 a 2 minutos são suficientes, em produção, depende do tempo das suas requisições, e tempos de 30s a 1 minuto atendem a maioria
max_execution_time=120

; Tempo que o PHP espera pelo envio de arquivos e requisições, limitar esse tempo evita que sessoes fiquem abertas e consumindo recursos em servidores de produção esperando clientes que não existem ou foram abortados, se tem uma grande quantidade de requisições esse valor deve ser finamente ajustado. No momento deixe pelo padrão abaixo
max_input_time=60

; Nível de aninhamento, deixe esse padrão, é o numero máximo de valores que podem ser aninhados recursivamente
max_input_nesting_level = 64

; Máximo de memória que cada script pode consumir, depende do tamanho do script e do consumo, geralmente valores de 64m a 128m em produção sao suficientes, mais em desenvolvimento deixe 1/4 da sua memória disponivel pois permite que rode-se mais rápido, mais para multiplas requisições prefira valores menores e mais reais a necessidade do seu script
memory_limit=512M

; DDefine o tamanho maximo do arquivo de errors 1mb (1024) atende bem a maioria dos servidores de desenvolvimento
log_errors_max_len=1024

; Se ligada, e um mesmo erro já estiver alertado, não alerta novamente no mesmo arquivo, em produção deixe off para saber quantas vezes o erro ocorreu, em desenvolvimento pode deixar em on, para ir ao lugar e corrigir ou tratar o erro
ignore_repeated_errors=On
ignore_repeated_source=On

; String enviada para dar a saide de uma mensagem de erro, defina uma cor ou STYLE que sobresaia sua saida para facilitar a leitura, em produção deixe isso desativado
error_prepend_string = "<font color=#ff0000>"
error_append_string = "</font>"

; Uma boa prática é não precisar dessa diretiva, pois pode causar sérios problemas relacionados a segurança, então sempre que possivel deixe-a desabilitada a não ser que saiba exatamente o que está fazendo
register_globals=Off

; Determina se as variaveis globais saão analizadas sempre ou só na inicialização, deixe habilitado caso não saiba exatamente como o JIT funciona
auto_globals_jit=On

; Tamanho máximo de um POST, incluindo todos os multiparts, geralmente de 10 a 50m atendem a maioria dos casos até envio de fotos e arquivos, valores maiores só são necessários para envios de vídeo, stream ou multiplos arquivos, deixe assim no momento.
post_max_size=40M

; Determina mecanismos de ESCAPE para prevenção de injeção de caracteres de escape em SQL (sql injection), porém, devido a natureza dos diversos tipos de dados, prefira fazer esse escape específico, então deixe isso desabilitado para ter maior controle e segurança
magic_quotes_gpc=Off
magic_quotes_runtime=Off
magic_quotes_sybase=Off

; Exceto se você só vai usar o PHP para processar saidas em JSON, IMAGENS deixe pelo padrão,ou defina o padrão usado pelo servidor, no momento deixe assim para saida em HTML
default_mimetype="text/html"

; PHP's default charset Determina o CARSET padrão, as novas diretrizes indicam uso do UTF-8 como padrão, porém, pode determinar a codificação de acordo com sus necessidades. 
default_charset = "UTF-8"

;Paths e diretórios, só altere se souber o que ta fazendo, senão deixe no padrão da sua instalação
;include_path = ".:/php/includes"
doc_root=
user_dir=
; extension_dir = "./"
enable_dl=Off

; Habilita o envio de arquivos via POST multipart (deixe ativo para permitir uso de input type=files
file_uploads=On
; determina o diretório no servidor onde os arquivos enviados são salvos por padrão, só altere se tiver certeza
upload_tmp_dir="/opt/lampp/temp/"
; Tamanho máximo do total de arquivos enviados, deixe igual ou menor que o tamanho máximo do POST
upload_max_filesize=40M

; Habilita o PHP fazer a abertura de arquivos de outros diretórios URL (sites), habilite para permitir.
allow_url_fopen=On

; Habilita o include e require de arquivos externos
allow_url_include=On

; Tempo que o PHP espera por requisições externas deixe menor que o tempo de execução do proprio script
default_socket_timeout=60

; Permite que o proprio PHP identifique o EOL de linhas e arquivos só é util se você esta usando sistemas cruzados entre MAC/UNIX/POSIX/WINDOWS se for só no localhost pode deixar desabilitado, se for usar windows no local e unix no servidor de produção deixe isso ligado.
auto_detect_line_endings = Off

; Carrega as extensões e módulos esternos do PHP
;   extension=modulename.extension
;   extension=msql.dll -> WINDOWS
;   extension=msql.so ->UNIX e MAC
;   extension=/path/to/extension/msql.so usando um path diferente

; Windows Extensions
;extension=php_bz2.dll
;extension=php_curl.dll
;extension=php_dba.dll
;extension=php_exif.dll
;extension=php_fileinfo.dll
;extension=php_gd2.dll
;extension=php_gettext.dll
;extension=php_gmp.dll
;extension=php_intl.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
;extension=php_mbstring.dll
;extension=php_ming.dll
;extension=php_mssql.dll
;extension=php_mysql.dll
;extension=php_mysqli.dll
;extension=php_oci8.dll      ; Use with Oracle 10gR2 Instant Client
;extension=php_oci8_11g.dll  ; Use with Oracle 11g Instant Client
;extension=php_openssl.dll
;extension=php_pdo_firebird.dll
;extension=php_pdo_mssql.dll
;extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
;extension=php_pdo_sqlite.dll
;extension=php_pgsql.dll
;extension=php_phar.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
;extension=php_soap.dll
;extension=php_sockets.dll
;extension=php_sqlite.dll
;extension=php_sqlite3.dll
;extension=php_sybase_ct.dll
;extension=php_tidy.dll
;extension=php_xmlrpc.dll
;extension=php_xsl.dll
;extension=php_zip.dll

;LINUX e MACOS
;extension="zip.so"
;extension="sqlite.so"
;extension="radius.so"
;extension="pgsql.so"
;extension="ming.so"
;extension="ncurses.so"
;extension="dio.so"
;extension="interbase.so"
;zend_extension=opcache.so

[Date]
; define as configurações de data e tora
; Timezone
date.timezone=America/Sao_Paulo ; padrao para são paulo, defina segundo sua localizalçao

; Latitude para o geolocalizador do servidor
;date.default_latitude = -23.550307

; Longitude para o geolocalizador do servidor 
;date.default_longitude = -46.6355023

[Pdo_mysql]
; Determina as configurações do módulo PDO para mysql, só altere se souber o que esta fazendo
pdo_mysql.cache_size=2000
pdo_mysql.default_socket=

[mail function]
; For Win32 only.
SMTP=localhost
smtp_port=25
sendmail_from = [email protected]

; For Unix only.
sendmail_path = /usr/bin
mail.force_extra_parameters =
mail.add_x_header=On
mail.log =

[SQL]
sql.safe_mode=Off

[ODBC]
odbc.allow_persistent=On
odbc.check_persistent=On
odbc.max_persistent=-1
odbc.max_links=-1
odbc.defaultlrl=4096
odbc.defaultbinmode=1

[MySQL]
mysql.allow_local_infile=On
mysql.allow_persistent=On
mysql.cache_size=2000
mysql.max_persistent=-1
mysql.max_links=-1
mysql.default_port= 3306
mysql.default_socket=
mysql.default_host= 127.0.0.1
mysql.default_user= root
mysql.default_password= 
mysql.connect_timeout=60
mysql.trace_mode=Off

[MySQLi]
mysqli.max_persistent=-1
mysqli.max_links=-1
mysqli.cache_size=2000
mysqli.default_port=3306
mysqli.default_socket=
mysqli.default_host= 127.0.0.1
mysqli.default_user= root
mysqli.default_pw=
mysqli.reconnect=Off

[mysqlnd]
mysqlnd.collect_statistics=On
mysqlnd.collect_memory_statistics=On
mysqlnd.net_cmd_buffer_size = 2048
mysqlnd.net_read_buffer_size = 32768

[Session]
; Handler used to store/retrieve data.
session.save_handler=files
session.save_path = "/tmp"
session.use_cookies=1
session.cookie_secure = MYSRV
session.use_only_cookies=1
session.name=PHPMYSRV1
session.auto_start=1
session.cookie_lifetime=1440
session.cookie_path=/
session.cookie_domain=mydomain.host.com
session.cookie_httponly=
session.serialize_handler=php

session.gc_probability=1
session.gc_divisor=1000
session.gc_maxlifetime=1440
session.referer_check=
session.entropy_length=0
session.entropy_file=
session.cache_limiter=nocache
session.cache_expire=180
session.use_trans_sid=0
session.hash_function=0
session.hash_bits_per_character=5

[soap]
; Enables or disables WSDL caching feature.
soap.wsdl_cache_enabled=1
soap.wsdl_cache_dir="/tmp"
soap.wsdl_cache_ttl=86400
soap.wsdl_cache_limit=5

[ldap]
; Sets the maximum number of open links or -1 for unlimited.
ldap.max_links=-1

[dba]
openssl.cafile=/opt/lampp/share/curl/curl-ca-bundle.crt

Note que você não deve copiar essas diretivas para o seu PHP.INI e sim entender as funções e configura-las de acordo com as suas necessidades, em um servidor de teste, você pode fazer os testes até entender cada funcionalidade, e deixar de temer a configuração da linguagem.

Em mais de 80% dos casos, o padrão vai te atender muito bem a menos que você já esteja avançando e vá desenvolver algo que realmente precise de configurações diferenciadas.

Outras Ferramentas

Além do servidor funcionando, para desenvolver você pode usar um simples editor de texto como o XED do macOs ou o vim do unix ou o notepad do windows, porém, acredito que sua idéia é desenvolver e aprender a programar, então estes recursos são muito escassos e dificultam a leitura do código.

O uso de um EDITOR DE CÓDIGOS como o TEXTPAD do windows, o SUBLIME do MAC/LINUX/WINDOWS e outros como o CODELITE dos sistemas POSIX são uma boa ferramenta pois além de permitirem a edição do código possuem funções para endentar o código, e mesmo realçar com cores os diversos formatos e funções, facilitando muito a leitura. Este é o mínimo para quem quer codificar seja de maneira profissional ou mesmo facilitando o aprendizado.

Para quem realmente que trabalhar, o uso de uma IDE ou seja, um ambiente próprio para o desenvolvimento vai render muita performance e horas na hora de localizar uma falha ou erro no código, as mais indicadas são, o VS-CODE (Visual Studio Code) que inclusive tem um post falando dele aqui no blog, e é o meu preferido (VS Code – Muito Mais que uma IDE) e que possui ótimas extensões para programadores PHP como a CODE RUNNER para executar e depurar códigos diretamente, podendo inclusive usar o próprio PHP como servidor local; JavaScript Snippet (para criar snipets do JS); JSON para interpretar e ler arquivos em JSON; MySQL Sintax que cria realce de código SQL diretamente, mesmo dentro da codificação PHP, bastando digitar o comando; PHP Debug para rodar o código no DEBUG podendo analisar os valores das variáveis, e iterar a cada instrução do código (lá na frente teremos uma aula somente de uso de debug e testes); PHP Extensio Pack que faz várias funções como realce de sintaxe avançada, completa funções, linter (analise do código) entre outras; PHP Formater, que permite que você edente um código aberto sem edentação de maneira automática, útil para código legado e manutenção. PHP Intelephense é sem dúvida a mais importante, e permite que o VSCODE interprete suas próprias funções e classes, bastando abrir o diretório do projeto, o intelephense de cada linguagem é um dos diferenciais do VSCODE para as demais IDEs pois permite que ele aprenda com o seu próprio código. PHP Intellisense outro que aprende e cria snipts de acordo com a sua forma de codificar, criando atalhos para as principais chamadas etc. PHP Server, executa o PHP -S determinando o diretório e o projeto, util para quem quer fazer testes sem ter um servidor web configurado ou usa para testes locais, e faz o deploy para outra estação de teste/homologação. PHP Sniffer é um gerador de debug para PHP.

Outras centenas de IDEs estão disponíveis algumas grátis outras proprietárias, e são compatíveis com o PHP como PHPStorm da JetBrains (https://www.jetbrains.com/phpstorm/download/) ou o ECLIPSE (https://www.eclipse.org/downloads/). Cada uma tem suas particularidades e funções.

Conclusão

Após esta aula, você deve ter um computador configurado e pronto para executar a linguagem PHP e acesso a um banco de dados SQL (mysql ou mariadb ou sqlite) com acesso aos arquivos de configuração e um Servidor Web rodando em localhost ou remoto.

Na próxima aula, vamos iniciar o desenvolvimento, entendendo como o PHP trabalha com a definição de CONSTANTES, e VARIÁVEIS DE MEMÓRIA, os diversos TIPOS DE DADOS, além de como é feita a iteração entre os scripts PHP e como ele é interpretado.