Crie um aplicativo da Web com o Laravel 5.0

Código-fonte: https://github.com/connor11528/laravel-5-fundamentals
Twitter: https://twitter.com/Connor11528

Se você gostou deste post, dê ao repo uma estrela ou ao artigo um share !

Introdução

Comecei a mexer com Vue.js para o frontend. Depois de assistir a incrível série Vue.js Laracasts, decidi pular para o desenvolvimento full stack com PHP e Laravel. A série Laravel 5 Fundamentals é muito acessível e nos guia pelo desenvolvimento de aplicativos neste framework PHP. Esta postagem cobre a primeira metade do conteúdo do curso.

Se você tiver problemas para instalar o Laravel ou suas dependências, crie um problema no github aqui e nós tentaremos ajudar!

Gerando o aplicativo

Vamos assumir que você instalou PHP> = 5.4, MySQL, Composer e algumas extensões ( instalar documentos ). Estamos usando a versão 5.0 que foi lançada no início de 2015. O framework tem um cronograma de lançamento definido e está até a versão 5.3. Os recursos do 5.3 são incríveis. Neste post iremos cobrir os Fundamentos do Laravel usando 5.0.

$ composer create-project laravel/laravel laravel-5-fundamentals "5.0.*" --prefer-dist
$ cd laravel
-5-fundamentals
$ php artisan serve

Isso iniciará um servidor da web em seu navegador. Você pode ver no .localhost:8000

Crie um controlador

O Laravel segue o padrão MVC como outros frameworks web. Se você vem de Rails ou Django, isso deve ser muito familiar!

$ php artisan make:controller PagesController --plain

Isso irá gerar app / Http / Controllers / PagesController . Os controladores são combinados com as rotas.

Liste todas as rotas para nosso aplicativo:
php artisan route:list

Sintaxe de lâmina

Blade é a linguagem de modelagem de front-end do Laravel. Use-o em seu HTML para passar variáveis ​​do servidor para a marcação. Na versão 5.3, o Laravel vem automaticamente com Vue.js e torna mais fácil trocá-lo por outros frameworks JS da web – se você gosta desse tipo de coisa.

@if (count($records) === 1)
I have one record
!
@elseif (count($records) > 1)
I have multiple records
!
@else
I don
't have any records!
@endif


@unless (Auth::check())

You are not signed in.

@endunless


@for ($i = 0; $i < 10; $i++)

<li>The current value is {{ $i }}</li>

@endfor


@foreach ($users as $user)

<p>This is user {{ $user->id }}</p>

@endforeach


@forelse ($users as $user)

<li>{{ $user->name }}</li>

@empty

<p>No users</p>

@endforelse


@while (true)
<p>I'
m looping forever.</p>
@endwhile

Documentos das estruturas de controle da lâmina

Configuração de e-mail

Defina em config / mail.php para que os e-mails sejam gravados em um arquivo de log em vez de enviados pela web. Isso é mais fácil para o desenvolvimento local.'pretend' => true,

Verifique todos os arquivos no diretório de configuração . Eles são muito fáceis de ler e muito bem documentados. Curiosidade: cada comentário de linha no artigo tem três caracteres a menos que a linha anterior.

/*
|--------------------------------------------------------------------------

| Mail "Pretend"

|--------------------------------------------------------------------------

|

| When this option is enabled, e-mail will not actually be sent over the

| web and will instead be written to your application's logs files so

| you may inspect the message. This is great for local development.

|

*/

Migrações

Alterar o esquema do banco de dados em produção

Na produção, não podemos simplesmente reverter o banco de dados para alterar o esquema.

Em vez disso, crie uma nova migração

$ php artisan make:migration add_excerpt_to_articles_table --table="articles"

Para eliminar uma tabela, é necessário o pacote doctrine / dbal. Instale-o com o compositor: .composer require doctrine/dbal

Criar tabela de banco de dados

Crie uma tabela de artigos e migração.

$ php artisan make:migration create_articles_table --create="articles"

Alterando o esquema do banco de dados

Para alterar um esquema, use o comando rollback, faça as alterações no banco de dados / migrações para o arquivo apropriado e executephp artisan migrate

$ php artisan
migrate
:refresh Reset and re-run all migrations
migrate
:reset Rollback all database migrations
migrate
:rollback Rollback the last database migration

Ver os registros do banco de dados

$ php artisan migrate
$ sqlite3 storage
/database.sqlite
.tables
.schema
.mode column
.headers on
select * from articles;
delete from articles where id=7;

Depois de executar o comando sqlite acima, podemos usar o SQL para consultar nosso banco de dados.

Eloquente

Eloquent é a implementação do ActiveRecord do Laravel. Isso significa que é o wrapper ORM que permite escrever código PHP que gera instruções SQL. Definimos os modelos do Eloquent que modelam nosso banco de dados. Eloquent docs

$ php artisan make:model Article
$ php artisan tinker

Manipulação de exceção

Para detectar erros de página 404, podemos modificar app / Exceptions / Handler.php . O modelo da página de erro é armazenado em resources / views / errors / 404.blade.php .

Se tivermos um arquivo de visualização acessível em “errors. {ErrorStatusCode}”, ele será exibido automaticamente para esse código de status ( 5.0 páginas de erro personalizadas ).

As imagens são armazenadas na pasta ./public .

Construtores de formulários para menos código

O construtor de formulários e o construtor de HTML são removidos da estrutura principal.

Eles podem ser instalados via:

$ composer require illuminate/html 

Illuminate / html github repo .

Observe que o acima é específico para o Laravel 5.0. Se estiver usando o Laravel> = 5.3 use . Mais informações no site do Coletivo Laravel .composer require "laravelcollective/html":"^5.3.0"

Solicitações de formulário (validação)

php artisan make:request CreateArticleRequest

Gera arquivo em app / Http / Requests / .

Documentos de validação

Ver erros de formulário na visualização html: <pre>{{ var_dump($errors) }}</pre>

Conclusão

Isso cobre a primeira metade do curso Fundamentos do Laravel 5 sobre Laracasts. Eu recomendo fortemente até agora! Na próxima metade, iremos cobrir as relações de banco de dados do Eloquent, autenticação e recursos mais avançados do Laravel 5.0!

Código-fonte: https://github.com/connor11528/laravel-5-fundamentals
Twitter: https://twitter.com/Connor11528

Se você gostou deste post, dê ao repo uma estrela ou ao artigo um share !