Ir para conteúdo
  • Cadastre-se

Iniciando um projeto Web com Composer - PHPOO


augustocesr

Posts recomendados

#Composer para iniciantes

 

Meus caros, tudo tranquilo? Então, vim dar uma dica pra quem está começando na área de programação web. É um aprendizado muito show e até mesmo um incentivo para quem já programa de forma estruturada começar a programar em OO e de forma mais profissional.

 

# Composer

De forma bem genérica: é um gerenciador de dependências. Pra evitar você ficar fazendo download manual das libs (bibliotecas) e jogando no seu projeto.

Ele também evita de ficar dando include e require em vários arquivos. Mas para começarmos a usá-lo, é necessário entender um conceito bem simples de namespace.

 

#Namespace

Possibilitam o agrupamento de classes, interfaces, funções, etc. na qual visa evitar o conflito entre classes.

De forma bem genérica: o namespace é tipo o package do java

 

Vamos ao primeiro exemplo de um arquivo usando o namespace:

 

arquivo: User.php

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!
O namespace deverá ser uma das primeiras linhas após a tag <?php (retirando os comentários)

Basicamente este é a minha classe do model de usuários com um atributo name e seu get e set e um construtor dando um echo. Mas e aí, Augusto, qual o sentido disso? Vamos adiante, segura este arquivo aí que vamos utilizar ele mais a frente.

 

 

#Baixando o composer:

O site oficial é este:

O conteúdo está oculto, favor efetuar login ou se cadastrar!

Pra quem usa o EasyPHP, Wamp, Vertrigo, Xampp, etc, precisa entrar no Bash (terminal) do programa para poder ter acesos ao comando PHP!

Para baixar:

O conteúdo está oculto, favor efetuar login ou se cadastrar!
tem 4 linhas para ser executada no bash, é ó seguir. Pra quem é programador linux/mac, sabe como é bem mais simples. Confira a imagem abaixo:

 

OXEOQXN.png

 

Depois é só dar enter novamente

 

É importante pelo terminal você entrar em uma pasta dentro do seu servidor, na maioria dos casos a pasta www. Com o comando cd /caminho/pasta

Depois de baixado o arquivo, note que dentro da sua pasta vai estar um arquivo composer.phar

 

# Iniciando um projeto com o composer

No seu bash (terminal) dentro da pasta, digite:

O conteúdo está oculto, favor efetuar login ou se cadastrar!
e tecle enter

 

2rqZHiF.png

 

 

Depois só enter, enter.. e ai vai, tem algumas partes que é só teclar n e dar enter. O resultado é esse:

 

afFtLOL.png

 

 

O Arquivo gerado dentro da nossa pasta composer.json

O conteúdo está oculto, favor efetuar login ou se cadastrar!
# Configurando o arquivo composer.json

O arquivo precisa saber onde estão as classes para carregá-las com o autoload, que nada mais é do que o responsável por fazer o include/require pra você das classes que você instancia utilizando o NAMESPACE.

Adicionando as linhas no arquivo:

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

O arquivo fica assim:

O conteúdo está oculto, favor efetuar login ou se cadastrar!
Note que esse "src" é a pasta onde eu vou colocar todas as minhas classes, você pode colocar onde quiser.

Depois de ter configurado o arquivo, agora é só dar o comando:

O conteúdo está oculto, favor efetuar login ou se cadastrar!
para ele instalar o composer e as dependências (que no nosso caso não tem nenhuma)

 

DyMeZm9.png

 

composer instalado, ele criou uma pasta vendor dentro do nosso projeto. Dentro dessa pasta vendor uma pasta chamada composer com vários outros arquivos, mas o arquivo que vamos usar é o autoload.php, neste exemplo, nós só precisamos dar um require apenas, desse arquivo.

 

NOTA: NÃO DEVEMOS MEXER NA PASTA VENDOR! ESTA PASTA É EXCLUSIVAMENTE GERENCIADA PELO COMPOSER, E CONTÉM TODAS AS LIBS INCLUÍDAS NO PROJETO!

 

Arquivo index.php

 

3nGmaCY.png

 

 

Lembra daquele arquivo User.php que criamos? Vamos colocá-lo dentro da pasta: src/Model/

 

upVSVvU.png

 

 

Agora no arquivo index.php só precisamos instanciar a class User deste modo:

O conteúdo está oculto, favor efetuar login ou se cadastrar!
Notou o prefixo antes do nome da class? \App\Model\

É o nosso namespace, nós estamos dizendo que esta classe User está dentro do "diretório virtual" App\Model

 

O App é um nome que eu dei para a pasta src, mas poderia ser Src\Model, não teria problema algum, você escolhe!

 

E se dermos um print_r na instância User:

 

GeYv0ZS.png

 

 

Nós teremos o seguinte resultado:

 

8ojRhdN.png

 

 

 

Dica importante:

Se você estiver usando muitas classes dentro de um mesmo namespace, você não precisa definir o namespace na hora de instanciar a classe, a gente pode chamar pelo comando use

Deste tipo:

 

MEciNO8.png

 

 

O use é como o import do java, eu estou importando a classe User para o meu arquivo index.php

 

Observa que neste exemplo eu só precisei dar 1 require apenas, é claro que é apenas um teste e que em um projeto eu teria que incluir outros arquivos de configurações necessários. Mas mesmo assim ficaria bem mais enxuto e profissional (nada contra quem programa de forma estruturada).

 

É isso aí galera, de forma rápida e simples, uma nova pra quem está começando na área de programação web :)

Nos próximos tutoriais que eu fizer, explicarei como utilizar libs nos projetos, provavelmente a do Facebook! Abraços a todos

 

Acervo:

O conteúdo está oculto, favor efetuar login ou se cadastrar!

O conteúdo está oculto, favor efetuar login ou se cadastrar!

Composer para iniciantes:

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 

Att,

Augusto Ferreira

Editado por NaNyNhA
Link para o comentário
Compartilhar em outros sites






×
×
  • Criar Novo...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.