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 / .
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 !