# Php

## 📁 **Preparando os Arquivos do Seu Projeto**

Se seu projeto usa Composer, certifique-se de que um [`composer.json`](https://docs.discloud.com/development-environment/supported-languages/php/composer-json) válido esteja na **raiz** do arquivo que você faz upload. A Discloud instalará as dependências automaticamente quando detectar este arquivo.

#### ❌ **Arquivos / Diretórios a Excluir**

Exclua itens que não são necessários para execução:

```diff
- vendor/
- node_modules/
- .git/
- tests/
- .cache/
```

📌 Use um arquivo [**`.discloudignore`**](https://docs.discloud.com/configurations/.discloudignore) para excluir diretórios que você **não** quer empacotar (ex.: `vendor/` se você preferir uma instalação limpa).

{% hint style="info" %}
Inclua `vendor/` APENAS se: você tem bibliotecas corrigidas localmente ou depende de extensões ou binários compilados durante a instalação que devem corresponder ao seu ambiente de desenvolvimento. Caso contrário, excluí-lo mantém os uploads menores e permite que a Discloud faça uma instalação fresca e reprodutível.
{% endhint %}

🔗 **Precisa de ajuda para encontrar o** [**arquivo principal**](https://docs.discloud.com/faq/general-questions/what-is-the-main-file)**?**

***

## 📦 **Essenciais do composer.json**

Exemplo mínimo:

```json
{
  "name": "example/app",
  "type": "project",
  "require": {
    "guzzlehttp/guzzle": "^7.9"
  },
  "autoload": {
    "psr-4": {
      "App\\": "src/"
    }
  },
  "scripts": {
    "start": "php -S 0.0.0.0:8080 -t public"
  }
}
```

Após editar dependências localmente:

```bash
composer install
composer dump-autoload --optimize
```

Mais detalhes: [`composer.json`](https://docs.discloud.com/development-environment/supported-languages/php/composer-json)

***

## 🌐 **Hospedando Websites & APIs**

Antes de fazer deploy do seu website ou API na Discloud, certifique-se de que você atenda aos seguintes **requisitos**:

{% hint style="success" %}
[Plano Platinum ou superior](https://discloud.com/plans) é necessário para hospedar websites ou APIs.
{% endhint %}

{% hint style="success" %}
[Um subdomínio deve ser criado](https://docs.discloud.com/faq/general-questions/how-to-create-a-subdomain) antes do deploy.
{% endhint %}

{% hint style="danger" %}
Porta `8080` é obrigatória – As aplicações devem escutar nesta porta.
{% endhint %}

{% tabs %}
{% tab title="Servidor Integrado" %}
Execute localmente / deploy simples:

```bash
php -S 0.0.0.0:8080 -t public
```

`public/index.php` mínimo:

```php
<?php
declare(strict_types=1);
echo "Olá, Discloud!";
```

{% endtab %}

{% tab title="Roteador Básico" %}
`public/index.php`:

```php
<?php
declare(strict_types=1);
$path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
header('Content-Type: application/json');
if ($path === '/status') {
    echo json_encode(['ok' => true]);
    return;
}
echo json_encode(['message' => 'Olá, Discloud!']);
```

{% endtab %}

{% tab title="Script do Composer" %}
Adicione ao `composer.json`:

```json
{
  "scripts": { "start": "php -S 0.0.0.0:8080 -t public" }
}
```

Execute:

```bash
composer run-script start
```

{% endtab %}
{% endtabs %}

***

## ✍️ Fazendo Deploy **da Sua Aplicação**

Uma vez que seu projeto esteja **configurado e comprimido**, você pode escolher um dos seguintes **métodos de deploy** na Discloud:

<table data-card-size="large" data-view="cards"><thead><tr><th data-card-target data-type="content-ref"></th><th align="center"></th><th data-hidden></th><th data-hidden></th><th data-hidden></th></tr></thead><tbody><tr><td><a href="../../how-to-host-using/dashboard">dashboard</a></td><td align="center">Faça upload e gerencie sua aplicação via interface web.</td><td></td><td></td><td></td></tr><tr><td><a href="../../how-to-host-using/discord-bot">discord-bot</a></td><td align="center">Faça deploy diretamente através dos comandos do bot Discord da Discloud.</td><td></td><td></td><td></td></tr><tr><td><a href="../../how-to-host-using/visual-studio-code">visual-studio-code</a></td><td align="center">Integre com VS Code para gerenciamento contínuo de projetos.</td><td></td><td></td><td></td></tr><tr><td><a href="../../how-to-host-using/cli">cli</a></td><td align="center">Use a interface de linha de comando para deploy rápido e eficiente.</td><td></td><td></td><td></td></tr></tbody></table>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.discloud.com/development-environment/supported-languages/php.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
