// 
//     Licensed to the Apache Software Foundation (ASF) under one
//     or more contributor license agreements.  See the NOTICE file
//     distributed with this work for additional information
//     regarding copyright ownership.  The ASF licenses this file
//     to you under the Apache License, Version 2.0 (the
//     "License"); you may not use this file except in compliance
//     with the License.  You may obtain a copy of the License at
// 
//       http://www.apache.org/licenses/LICENSE-2.0
// 
//     Unless required by applicable law or agreed to in writing,
//     software distributed under the License is distributed on an
//     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
//     KIND, either express or implied.  See the License for the
//     specific language governing permissions and limitations
//     under the License.
//

= Configurando um Projeto PHP
:jbake-type: tutorial
:jbake-tags: tutorials 
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: Configurando um Projeto PHP - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, Configurando um Projeto PHP

Este tutorial mostra como configurar um projeto PHP no NetBeans IDE.


*Para seguir este tutorial, são necessários os recursos e o software a seguir.*

|===
|Software ou Recurso |Versão Necessária 

|link:https://netbeans.org/downloads/index.html[+NetBeans IDE+] |Pacote de download do PHP 

|Um mecanismo PHP |Versão 5 

|Um servidor web |É recomendado o link:http://httpd.apache.org/download.cgi[+Apache HTTP Server 2.2+].
 

|Um depurador PHP |link:http://www.xdebug.org[+XDebug 2.0 ou superior+] 
|===


== Preparando-se

Antes de criar um projeto PHP, você precisa fazer download e instalar o link:https://netbeans.org/downloads/index.html[+NetBeans IDE para PHP+] e link:../../trails/php.html#configuration[+preparar o seu ambiente+] para desenvolvimento de PHP.

Para configurar um projeto PHP:

* <<location,Especifique o nome do projeto e a localização dos arquivos de código-fonte do projeto>>
* <<runConfiguration,Especifique como o projeto será implantado>>

Para alterar as definições de um projeto existente, posicione o cursor no nó do projeto e selecione Propriedades no menu pop-up. Prossiga como descrito na seção<<managingProjectSetup,Personalizando a Configuração do Projeto>>.


== Especificando o Nome do Projeto e a Localização dos Arquivos de Código-Fonte

1. Inicie o IDE e alterne para a janela Projetos.
2. Escolha Arquivo > Novo Projeto. O painel Escolher Projeto será aberto
3. Na lista Categorias, selecione PHP.

Dependendo das suas necessidades, você pode criar um projeto PHP totalmente novo <<projectNoExistingSources,sem nenhum arquivo de código-fonte desenvolvido anteriormente>> ou <<importSources,importar uma splicação PHP local ou remota existente>> para um novo projeto.


=== Projeto sem Arquivos de Código-Fonte Desenvolvidos Anteriormente

1. Na área Projetos, selecione Aplicação PHP e clique em Próximo. O painel Novo Projeto PHP > Nome e Localização será aberto.
2. No campo de texto Nome do Projeto, digite o nome do projeto.
3. No campo Pasta de Códigos-Fonte, especifique a subpasta da raiz do documento em que você deseja armazenar os arquivos de código-fonte.

A raiz do documento é a pasta em que o servidor Web local procura pelos arquivos a serem abertos no browser. A raiz do documento é especificada no link:../../trails/php.html#configuration[+arquivo de configuração+] do servidor Web. Depois da instalação, o assistente Novo Projeto localiza a raiz do documento e por default especifica o seguinte caminho:  ``<Raiz do Documento>\<Novo Projeto PHP>`` .

Uma cópia dos arquivos de código-fonte deve ser mantida em uma subpasta da raiz do documento. Entretanto, você pode ter uma Pasta de Códigos-Fonte em um local diferente da raiz do documento e copiar os arquivos de código-fonte desse local para a raiz do documento. Consulte <<copy-sources,Especificando a Configuração de Execução>>.



. Na lista drop-down Codificação Default, selecione a codificação default do seu projeto.


. Se você desejar armazenar metadados do NetBeans em um local diferente dos seus arquivos de código-fonte, selecione "Colocar metadados do NetBeans em um diretório separado". Por exemplo, você pode querer armazenar seus códigos-fonte na raiz do documento, mas os metadados do NetBeans no diretório Projetos do NetBeans. 

image::images/new-php-project-m1.png[]



. Clique em Próximo. O painel Configuração de Execução será aberto.


=== Importando Arquivos Locais de Código-Fonte Existentes para um Projeto

1. Na área Projetos, selecione Aplicação PHP com Códigos-Fonte Existentes e clique em Próximo. O painel Novo Projeto PHP > Nome e Localização será aberto.
2. No campo de texto Nome do Projeto, digite o nome do projeto.
3. No campo Pasta de Códigos-Fonte, especifique a pasta da qual você deseja importar os arquivos de código-fonte.

NOTE: <<localServer, se você for executar o projeto em um servidor Web local, não se esqueça de especificar a >><<copyFilesFromSourcesFolder,cópia dos arquivos de código-fonte>> para ele.



. Na lista drop-down Codificação Default, selecione a codificação default do seu projeto.


. Se você desejar armazenar metadados do NetBeans em um local diferente dos seus arquivos de código-fonte, selecione "Colocar metadados do NetBeans em um diretório separado". Por exemplo, você pode querer armazenar seus códigos-fonte na raiz do documento, mas os metadados do NetBeans no diretório Projetos do NetBeans. 

image::images/new-php-project-with-ssources.png[]



. Clique em Próximo. O painel Configuração de Execução será aberto.


=== Importando Arquivos Remotos de Código-Fonte Existentes para um Projeto

1. Na área Projetos, selecione Aplicação PHP do Servidor Remoto e clique em Próximo. O painel Novo Projeto PHP > Nome e Localização será aberto.
2. No campo de texto Nome do Projeto, digite o nome do projeto.
3. No campo Pasta de Códigos-Fonte, especifique a subpasta raiz _local_ de documentos na qual deseja armazenar os arquivos de código-fonte.

A raiz do documento é a pasta em que o servidor Web local procura pelos arquivos a serem abertos no browser. A raiz do documento é especificada no link:../../trails/php.html#configuration[+arquivo de configuração+] do servidor Web. Depois da instalação, o assistente Novo Projeto localiza a raiz do documento e por default especifica o seguinte caminho:  ``<Raiz do Documento>\<Novo Projeto PHP>`` . Observe que é útil poder testar o projeto em um servidor local.



. Se você desejar armazenar metadados do NetBeans em um local diferente dos seus arquivos de código-fonte, selecione "Colocar metadados do NetBeans em um diretório separado". Por exemplo, você pode querer armazenar seus códigos-fonte na raiz do documento, mas os metadados do NetBeans no diretório Projetos do NetBeans.


. Clique em Próximo. O painel Conexão Remota será aberto. O tutorial link:remote-hosting-and-ftp-account.html[+Implantando uma Aplicação PHP em um Servidor Web Remoto+] descreve como configurar conexões remotas.


== Especificando a Configuração de Execução Default do Novo Projeto

Uma configuração de execução é uma definição armazenada para executar um projeto PHP. Você pode definir várias configurações para um projeto e alternar entre elas para frente e para trás. Por exemplo, se uma aplicação tiver sido desenvolvida localmente e for necessário fazer upload em um servidor de produção remoto, você só precisará escolher outra configuração de execução. As configurações de execução se aplicam a execução e depuração. As configurações de execução acomodam os seguintes casos de uso mais comuns:

* Desenvolvimento de páginas Web do PHP em uma máquina local com um servidor Web local.
* Execução de scripts PHP usando um mecanismo PHP local. Essa abordagem é aplicada a arquivos PHP não direcionados a saída em HTML. Portanto, esses scripts podem ser executados sem um browser.
* Desenvolvimento Remoto. O código-fonte do PHP e outros arquivos da aplicação têm upload em um servidor Web remoto por meio de FTP. Esse caso de uso é comum quando o desenvolvimento é compartilhado entre várias pessoas.
* Uma combinação dos casos de uso acima: uma aplicação é desenvolvida localmente e implantada em um servidor de produção remoto após a conclusão. Durante o desenvolvimento, os scripts do PHP serão executados, se necessário.

Ao criar um novo projeto PHP, você cria uma configuração de execução default do projeto. Para definir a configuração de execução default para o projeto, escolha a opção relevante na lista drop-down Executar Como no painel Configuração de Execução. As seguintes opções estão disponíveis:

* <<localServer,Web Site Local>>. Para usar essa configuração de execução, você precisa ter link:../../trails/php.html#configuration[+o servidor http Apache instalado+] e em execução.
* link:remote-hosting-and-ftp-account.html[+Web Site Remoto (FTP/SFTP) (Tutorial separado)+]. Para usar esta configuração, você precisa de uma link:remote-hosting-and-ftp-account.html#registerHostingAccount[+conta de hospedagem+] em um servidor remoto e uma link:remote-hosting-and-ftp-account.html#createFTPAccount[+conta FTP+] nesse servidor.
* <<scriptCommandLine,Script>>. Essa configuração de execução não requer que um servidor Web esteja instalado e em execução. Você precisa somente de um link:../../trails/php.html#configuration[+mecanismo PHP+].

O procedimento para a criação de configurações de execução adicionais ou de edição da configuração de execução default é descrito em <<runConfiguration,Personalizando a Configuração do Projeto: Configuração de Execução>>. É muito semelhante ao processo da criação de configuração de execução default, a não ser pela caixa de diálogo Propriedades do projeto existente que é usada, em vez do assistente novo projeto.


=== Web Site Local

Uma configuração de web site que envolve uma cópia das suas pastas de código-fonte PHP na pasta Web do servidor Web Apache instalado na máquina. É comum a prática para que um projeto tenha uma configuração de web site local e outra remota. Observe que o procedimento para definição da configuração de execução do web site local é diferente, dependendo da criação do projeto com ou sem códigos-fonte existentes.

*Para configurar um Web site local:*

1. Na lista drop-down Executar Como, selecione Web Site Local.
2. No campo URL do Projeto, verifique o endereço do URL gerado automaticamente. Verifique se o servidor HTTP do Apache ouve a porta default 80. Caso contrário, especifique explicitamente o número da porta no formato  ``localhost:<número da porta>`` .

image::images/run-configuration-local-server-project-with-existing-sources.png[]



. Se você estiver criando um projeto a partir de códigos-fonte existentes, poderá selecionar qual arquivo de código-fonte usar como o arquivo de índice.


. Para armazenar os arquivos de código-fonte do projeto em um diretório diferente do diretório do projeto NetBeans IDE, selecione “Copiar arquivos da Pasta de Códigos-Fonte para outro local”. _Se você estiver criando um projeto a partir de códigos-fonte existentes, essa é uma etapa necessária, a não ser que os códigos-fonte existentes já estejam na pasta Web do servidor Apache._
O campo, por default, especifica o seguinte caminho:  ``<Raiz do Documento>\<Novo Projeto PHP>`` . Se necessário, use o botão Procurar para especificar um caminho diferente.
A raiz do documento é a pasta em que o servidor Web procura por arquivos a serem abertos no browser. A raiz do documento é especificada no link:../../trails/php.html#configuration[+arquivo de configuração+] do servidor Web. 
O assistente detecta o tipo de instalação do Apache, um componente ou dentro de um pacote, e fornece o caminho para a localização default da pasta  ``htdocs``  do tipo de instalação atual. Portanto, se você tiver aceitado as definições default durante a instalação do servidor Apache ou do pacote AMP, selecione o caminho na lista drop-down.


. Clique em Finalizar. O IDE criará o projeto PHP.


=== Web Site Remoto

Cosulte o tutorial link:remote-hosting-and-ftp-account.html[+Implantando uma Aplicação PHP a um Servidor Web Remoto+].


=== Script

1. Na lista drop-down Executar Como, selecione Script.

image::images/project-properties-script.png[]



. Para especificar a localização do mecanismo PHP, clique no botão Configurar ao lado da caixa Usar Interpretador PHP Default. A caixa de diálogo Opções do PHP será aberta na guia Geral.

image::images/run-config-script-options-m1.png[]



. No campo Interpretador do PHP 5, especifique o caminho para o arquivo  ``php.exe`` . Use o botão Procurar ou Pesquisar..., se necessário.


. Para especificar como os resultados da execução do script serão mostrados, marque a caixa de seleção relevante na área Abrir Resultado Em. As seguintes opções estão disponíveis:

* Janela de Saída. Os resultados da execução de um script aparecerão na janela de saída na parte inferior da janela do NetBeans IDE.
* Web Browser. A janela do browser default se abrirá com os resultados da execução de um script no formato de um arquivo HTML.
* Editor. Os resultados da execução de um script se abrirão como um arquivo HTML na janela do editor do IDE.


. Clique em OK. A caixa de diálogo Opções se fechará e o sistema retornará para o painel Configuração de Execução. 


. Adicionar qualquer argumento, como  ``debug=true``  e qualquer link:http://www.php.net/manual/en/features.commandline.options.php[+opção de linha de comandos PHP+].


== Personalizando a Configuração do Projeto

Durante a criação do projeto, as seguintes definições básicas do projeto são especificadas: o tipo do projeto, a localização dos arquivos de código-fonte do projeto e a configuração de execução default. Para expandir a configuração do projeto com novas definições, personalize o projeto. Posicione o cursor no nó do projeto e selecione Propriedades no menu pop-up. O painel Propriedades do Projeto será aberto com uma lista de categorias de definições.


=== Códigos-fonte


No painel Códigos-fonte:

1. O campo Raiz da Web mostra a pasta raiz do site da sua aplicação. Por default, o campo mostra a pasta Códigos-fonte. Para alterar a raiz da Web, clique em Procurar e selecione outra pasta.
2. Selecione <<location,Copiar arquivos da pasta de Códigos-Fonte>> para outra localização, se necessário, e especifique o caminho para a pasta de armazenamento.
3. Altere a codificação, se necessário 

image::images/pprop-sources.png[]



. Para concluir a personalização do projeto, clique em OK.


=== Configuração de Execução


No painel Configuração de Execução, modifique a configuração de execução default e/ou defina novas configurações de execução, se necessário. 

1. Para modificar as definições default, <<runConfiguration,atualize os campos como durante a criação do projeto>>.
2. Para definir uma nova configuração de execução, clique em Novo, ao lado da lista drop-down Configuração. A caixa de diálogo Criar Nova Configuração será aberta.
3. No campo Nome da Configuração, digite o nome da nova configuração de execução e clique em OK. Você retornará para o painel Configuração de Execução.
4. Especifique as definições da configuração de execução da mesma forma que a <<runConfiguration,configuração de execução default>> foi definida durante a criação do projeto e clique em OK. A nova configuração será adicionada à lista drop-down Configuração.
5. Para remover uma configuração, selecione-a na lista drop-down Configuração e clique em Deletar. 

image::images/pprop-runconfig.png[]



. Para concluir a personalização do projeto, clique em OK.


=== Incluir Caminho do PHP


No painel Incluir Caminho, especifique a localização dos arquivos que você precisa usar no projeto, mas não precisa colocar junto com os arquivos de código-fonte.

1. Para adicionar uma pasta, clique em Adicionar Pasta. A caixa de diálogo Selecionar Pasta será aberta.
2. Selecione as pastas relevantes e clique em Abrir. Você retornará para o painel Incluir Caminho do PHP. A nova pasta será adicionada à lista.
3. Para navegar pela lista, use os botões Mover para Cima e Mover para Baixo.
4. Para remover uma pasta da lista de pastas incluída, selecione a pasta e clique em Remover.

image::images/pprop-include-path.png[]



. Para concluir a personalização do projeto, clique em OK.


=== Formatando

No painel Formatação, defina o estilo de formatação que deseja aplicar aos arquivos de código-fonte no editor. Você poderá definir se a formatação será global ou específica de projeto.

*Para definir a formatação global do IDE:*

1. Selecione "Usar opções globais".
2. Clique em Editar Opções Globais. A caixa de diálogo de opções do IDE abre na guia Editor > Formatação. 

image::images/global-formatting.png[]



. Da lista drop-down Linguagem, selecione a linguagem na qual as definições deverão ser aplicadas.


. Na lista drop-down Categorias, selecione os itens de formato nos quais a definição será aplicada.


. Defina sua formatação desejada e clique em OK.


. Clique no botão Ajuda para obter informações detalhadas.

*Para definir a formatação específica do projeto:*

1. Selecione “Usar opções específicas do projeto". A área oculta será exibida. image:images/pprop-formatting.png[]
2. Na lista drop-down Linguagem, selecione Todas as Linguagens ou PHP. Nesse caso, Todas as Linguagens é o PHP e todas as outras linguagens você tem no seu projeto PHP.
3. Na lista drop-down Categorias, selecione os itens de formato nos quais a definição será aplicada.
4. Defina sua formatação desejada e clique em OK.
5. Clique no botão Ajuda para obter informações detalhadas.


=== Adicionando Bibliotecas JavaScript

As bibliotecas de JavaScript incorporadas foram removidas no NetBeans IDE 6.7 porque eram muito grandes e de desempenho lento e porque é fácil adicionar bibliotecas manualmente. A adição manual de bibliotecas JavaScript ao projeto ativa Autocompletar Código e todas as outras funcionalidades relacionadas ao JavaScript no IDE para o seu projeto.

*Para adicionar Bibliotecas JavaScript ao seu projeto:*

1. Faça download das bibliotecas de JavaScript necessárias ou localize-as se já as tiver.
2. Copie as bibliotecas JavaScript para a sua pasta do projeto PHP usando o IDE ou um explorador de arquivo.

Se as propriedades do projeto estiverem definidas para que os códigos-fonte do projeto sejam copiados para outro local (consulte <<sources,Códigos-Fonte>>), as bibliotecas JavaScript também serão copiadas para esse local. Se o seu projeto for implantado em um servidor remoto, as bibliotecas JavaScript terão upload nesse servidor na próxima vez que o upload dos códigos-fonte do projeto for feito no servidor.

link:/about/contact_form.html?to=3&subject=Feedback:%20PHP%20Project%20Setup[+Enviar Feedback neste Tutorial+]


Para enviar comentários e sugestões, obter suporte e manter-se informado sobre os desenvolvimentos mais recentes das funcionalidades de desenvolvimento PHP do NetBeans IDE, link:../../../community/lists/top.html[+junte-se à lista de correspondência users@php.netbeans.org+].

link:../../trails/php.html[+Voltar à Trilha do Aprendizado PHP+]

