Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Requisição de arquivos #99

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/php.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .idea/php4noobs.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

52 changes: 52 additions & 0 deletions 5-Requisicao/0-introducao.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# Requisição de arquivos

Em Linguagens de script, precisamos incluir dentro de nosso programa outros arquivos, e
para fazer isso usamos as requisições de arquivos que podem incluir funções, constantes,
configurações do banco, ou até mesmo um arquivo que contem toda definição de uma classe.

### Qual a diferença entre include & require?

A diferença entre include e require é como um erro é tratado.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

e escopo também.


``Require`` - produz um erro E_COMPILE_ERROR, fazendo com que a execução do script seja encerrada.

``include`` - produz um E_WARNING, apenas produz um warning, não chega a encerrar a aplicação.
Que pode ser "abafado" com @

``require`` & ``include`` são funções do tipo ``statement``. A semântica correta do uso destas funções é:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

possível correção: são statements e não funções



```text
include 'arquivo.php' OU require 'arquivo.php'
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

include 'arquivo.php';

// ou

require 'arquivo.php';

```

### Cuidados
- Não use desnecessariamente as requisições.
- Sempre verifique para não fazer requisições de arquivos por acidente.

Assim evitamos a duplicidade de requisições, pois caso seja usado repetidamente na mesma pagína o mesmo será
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typo: página

incluso ou requerido duplicadamente.

### Atenção!
Temos o include_once e o require_once que faz a verificação dos arquivos para não ter nenhuma
requisição duplicada, sendo assim ele verifica se o mesmo já foi Incluído uma vez, caso tenha sido ele não faz uma nova
inclusão. Por tanto sempre que possível use o include_once e o require_once

### Composer
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Talvez caiba aqui explicar o que é o autoload e fazer uma implementação usando o spl.


O Composer é uma ferramenta para o gerenciamento de dependências em PHP.
Ele permite que você declare as bibliotecas que seu projeto necessita e ele gerencia, instala
e atualiza. Com o composer fazemos todo esse trabalho de requisições e muitas outras coisas
composer é uma ferramente muito poderosa.


- Instalação de novas dependências no projeto;
- Atualização das dependências já instaladas no projeto;
- Remoção de dependências instaladas no projeto;
- Autoload para os arquivos do projeto, além dos pacotes de terceiro;
- Execução de scripts;
- Plugins para estender o comportamento padrão;
- Permite determinar dependências que serão instaladas no modo de desenvolvimento ou em modo de produção.


Ir para: [5.1 Include](1-include.md)
19 changes: 19 additions & 0 deletions 5-Requisicao/1-include.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Requisição de arquivos

## O que é include?

O include faz inclusão do arquivo e uma avaliação, logo após a inclusão, o arquivo se torna
disponível na nossa aplicação. Caso o arquivo não exista, nos retornar um erro `WARNING` do
construtor include.

###

```php
<?php

include 'arquivo.php';

?>
```

Ir para: [5.2 Require](2-require.md)
19 changes: 19 additions & 0 deletions 5-Requisicao/2-require.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Requisição de arquivos

## O que é require?

O require faz inclusão do arquivo e uma avaliação, logo após a inclusão, o arquivo se torna
disponível na nossa aplicação. Caso o arquivo não exista, nos retornar um erro `FALTAL ERROR`,
e trava todo a aplicação, ele parará o script enquanto o include
apenas emitirá um alerta (E_WARNING) permitindo que o script continue.

###

```php
<?php

require 'arquivo.php';
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

require também funciona como return.

// x.php
return fn () => 'x';

// y.php
/** @var (callable(): string) $c */
$c = require 'x.php';
var_dump($c()); // 'x';


?>
```
Ir para: [5.3 Include Once](3-include_once.md)
20 changes: 20 additions & 0 deletions 5-Requisicao/3-include_once.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Requisição de arquivos

## O que é include_once?

O include_once tem a mesma funcionalidade que o `include`, sua diferença é que ele não faz a inclusão novamente
do arquivo, ele inclui apenas uma vez assim evita sobreposição. Ele ajudará a evitar problemas como redefinição de funções,
reatribuição de valores de variáveis, etc.

#

```php
<?php

include_once "arquivo.php";

?>
```


Ir para: [5.4 Require Once](4-require_once.md)
16 changes: 16 additions & 0 deletions 5-Requisicao/4-require_once.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Requisição de arquivos

## O que é require_once?

O require_once Tem a mesma funcionalidade que o require, sua diferença é que ele não
faz a inclusão novamente do arquivo, ele inclui apenas uma vez assim evita sobreposição.

#

```php
<?php

require_once "arquivo.php";

?>
```