vitta minicurso laravel - hackathon league of legends
TRANSCRIPT
INTRODUÇÃO AOLARAVEL
DESENVOLVIMENTO EM TIME
CONVERSA DE GENTE GRANDE
MODEL
VIEWCONTROLER
LARAVELBRINGING PHP BACK =)
Taylor Otwellhttps://github.com/taylorotwellCR
IAD
OR
CON
TRIB
UID
ORE
SDayle Reeshttps://github.com/daylerees
DOCUMENTAÇÃO
ONLINE: http://laravel.com/docs/
GITHUB:https://github.com/laravel/laravel
AMBIENTEA PARTE… MENOS… DIVERTIDA
AMBIENTE WINDOWS
1. INSTALADOR WT-NMP
AMBIENTE WINDOWS
2. EDITE O ARQUIVO DE HOSTSC:\WINDOWS\SYSTEM32\DRIVERS\ETC\hosts
127.1.1.1 meuapp.dev
3. CONFIGURE O NGINXserver {
listen 127.1.1.1;server_name meuapp.dev;
root C:\WT-NMP\WWW\meuapp\public;index index.php;charset utf-8;
location / {try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {try_files $uri /index.php =404;fastcgi_split_path_info ^(.+\.php)(/.+)$;fastcgi_pass php_farm;fastcgi_param SCRIPT_FILENAME
$document_root$fastcgi_script_name;include nginx.fastcgi.conf;
}}
AMBIENTE LINUX
1. INSTALAR LEMP
AMBIENTE LINUX
2. EDITE O ARQUIVO DE HOSTS/ETC/HOSTS
127.1.1.1 meuapp.dev
3. CONFIGURE O NGINXserver {
listen 127.1.1.1;server_name meuapp.dev;
root /var/www/html/meuapp/public;index index.php;charset utf-8;
location / {try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {try_files $uri /index.php =404;fastcgi_split_path_info ^(.+\.php)(/.+)$;fastcgi_pass php_farm;fastcgi_param SCRIPT_FILENAME
$document_root$fastcgi_script_name;include nginx.fastcgi.conf;
}}
4. CONFIGURE BANCO DE DADOSCRIE UM DATABASE “MEU-APP-DEV”CHARSET: UTF-8 ( UTF8_UNICODE_CI )
5. INSTALE O COMPOSER
6. CRIE UM PROJETO LARAVEL
OU
>_ curl -sS https://getcomposer.org/installer | php
>_ composer create-project laravel/laravel meuapp --prefer-dist
>_ composer global require "laravel/installer=~1.1“>_ laravel new meuapp
7. CONFIGURE O LARAVELTENHA CERTEZA DE TER PERMISSÕES DE ESCRITA NOS DIRETÓRIOS
/MEUAPP/BOOSTRAP/MEUAPP/STORAGE
GERE UMA CHAVE PARA CRIPTOGRAFAR AS SENHAS
/MEUAPP/.ENV
>_ php artisan key:generate
APP_ENV=devAPP_DEBUG=true
DB_HOST=localhostDB_DATABASE=MEU-APP-DEVDB_USERNAME=rootDB_PASSWORD=
7. CONFIGURE O LARAVEL/MEUAPP/CONFIG/APP.PHP
/MEUAPP/CONFIG/DATABASE.PHP'debug' => env('APP_DEBUG', true),
'default' => ‘dev',
'connections' => [ ‘dev' => [ 'driver‘ => 'mysql', 'host‘ => env(‘DB_HOST'), 'database' => env(‘DB_DATABASE'), 'username' => env(‘DB_USERNAME'), 'password' => env(‘DB_PASSWORD'), 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', ], ],
7. CONFIGURE O LARAVELATUALIZE AS DEPENDENCIAS DO LARAVEL COM O COMPOSER (SE NECESSÁRIO)>_ composer install>_ composer update -o
MEU PRIMEIRO APPACESSE HTTP://MEUAPP.DEV/
/APP/TODO O CÓDIGO COM A LÓGICA DO BACK-END.
/CONFIG/TODAS AS CONFIGURAÇÕES DO SEU APP.
/DATABASE/SCRIPT CRIADORES DE TABELAS E SEEDERS.
/PUBLIC/ROOT DA ACESSADA PELO USUÁRIO, É AONDE FICAM OS ARQUIVOS PÚBLICOS DO SEU SITE COMO JAVASCRIPT E IMAGENS.
/RESOURCES/ARQUIVOS GERADORES DE ARQUIVOS PÚBLICOS E GERADORES DE RESPOSTAS HTML (VIEWS).
/STORAGE/GUARDA TODOS OS ARQUIVOS DE CONTROLE DO FRAMEWORK COMO SESSÕES E LOGS.
/TESTS/SALVA OS TESTES AUTOMATIZADOS
/VENDOR/PACOTES DE TERCEIROS
/.ENVSALVA SUAS CONFIGURAÇÕES DE AMBIENTE
/COMPOSER.JSONDEFINE AS DEPENDÊNCIAS DO SEU APP
/ARTISANDISPARADOR DE
HACKATHONVAMOS BOTAR A MÃO NA MASSA
FAÇA SEU CADASTRO NA API DA RIOT GAMES:https://developer.riotgames.com/
SALVE SUA API-KEY NO SEU /.ENV
VOCÊ PODE VERIFICAR TODOS OS ENDPOINTS DA API AQUI:
https://developer.riotgames.com/api/methods
RIOT_KEY=11111111-1111-1111-1111-111111111111
CRIE UMA MIGRAÇÃO PARA CRIAR A TABELA DE VERSÃO
ABRA O ARQUIVO GERADO AUTOMATICAMENTE/DATABASE/MIGRATIONS/XXXX_XX_XX_XXXXXX_CREATE_VERSIONS_TABLE.PHP
>_ php artisan make:migration create_versions_table
public function up() { Schema::create('versions', function (Blueprint $table) { $table->increments('id'); $table->string('release')->nullable(); $table->timestamps(); }); }
public function down() { Schema::drop('versions'); }
CRIE UM MODEL PARA ACESSAR O BANCO DE DADOS
ABRA O ARQUIVO GERADO AUTOMATICAMENTE/APP/VERSION.PHP
>_ php artisan make:model Version
CRIE SEEDERS PARA POPULAR AS TABELAS
ABRA O ARQUIVO GERADO AUTOMATICAMENTE/DATABASE/SEEDS/VERSIONSSEEDER.php
ADICIONE A SEGUINTE LINHA NO COMEÇO DO ARQUIVO
VAMOS CRIAR UMA FUNÇÃO QUE: FAÇA UMA PERGUNTA PARA A API E CAPITURE AS VERSÕES DO JOGO SALVE AS VERSÕES NO BANCO DE DADOS
>_ php artisan make:seed VersionsSeeder
use App\Version;
ABRA O ARQUIVO SEEDER/DATABASE/SEEDS/DATABASESEEDER.php
PARA TESTAR O SEEDER PODEMOS A QUALQUER MOMENTO RODAR:
UM ESPECÍFICO SEED:
$this->call(VersionsSeeder::class);
>_ php artisan db:seed
>_ php artisan db:seed --class=VersionsSeeder
CRIE MIGRAÇÕES PARA GERAR AS TABELAS
ABRA O ARQUIVO GERADO AUTOMATICAMENTE/DATABASE/MIGRATIONS/XXXX_XX_XX_XXXXXX_CREATE_CHAMPIONS_TABLE.PHP
>_ php artisan make:migration create_champions_table
Schema::create('champions', function (Blueprint $table) { $table->increments('id'); $table->integer('riot_id')->index(); $table->string('name'); $table->string('title'); $table->string('key'); $table->string('image')->nullable(); $table->string('tags')->nullable(); $table->string('stats')->nullable(); $table->text('enemytips')->nullable(); $table->text('lore')->nullable(); $table->timestamps(); });
CRIE UM MODEL PARA ACESSAR O BANCO DE DADOS
VAMOS JÁ TAMBÉM CRIAR O SEEDER PARA OS CHAMPIONS
ABRA O ARQUIVO GERADO AUTOMATICAMENTE/DATABASE/SEEDS/VERSIONSSEEDER.php
E CRIAREMOS UMA FUNÇÃO QUE: CAPTURE OS CHAMPIONS SALVE OS CHAMPIONS COM INFORMAÇÕES ATUALIZADAS DA ÚLTIMA
VERSÃO
>_ php artisan make:model Champion
>_ php artisan make:seed ChampionsSeeder
DICAS PARA FAZER A FUNÇÃO:ENDPOINT:
PARA CONSEGUIR A FOTO DO PERSONAGEM USE:
“https://global.api.pvp.net/api/lol/static-data/br/v1.2/champion?champData=all&api_key=“.env(“RIOT_KEY)
http://ddragon.leagueoflegends.com/cdn/{VERSÃO}/img/champion/{NOME}.png
AGORA VAMOS VISUALIZAR AS INFORMAÇÕES QUE CONSEGUIMOS!
CRIE UM DIRETÓRIO:/RESOURCES/VIEWS/LAYOUTS/
CRIE UM ARQUIVO:PUBLIC.BLADE.PHP
CRIE UM DIRETÓRIO:/RESOURCES/VIEWS/CHAMPIONS/
CRIE OS ARQUIVOS:INDEX.BLADE.PHPSHOW.BLADE.PHP
AGORA TEMOS QUE CRIAR O CONTROLLER:
VÁ PARA O ARQUIVO GERADO AUTOMATICAMENTE:/APP/HTTP/CONTROLLERS/CHAMPIONSCONTROLLER.PHP
NO COMEÇO DO ARQUIVO CHAME:
>_ php artisan make:controller ChampionsController
use App\Champion;
NO MÉTODO INDEX:
NO MÉTODO SHOW:
public function index() { $champions = Champion::all(); return view(‘champions.index')->with('champions‘,$champions); }
public function show($id) { $champion = Champion::find($id) return view('champions.show')->with('champion',$champion); }
AGORA VAMOS CRIAR AS ROTAS:
VÁ PARA O ARQUIVO GERADO AUTOMATICAMENTE:/APP/HTTP/ROUTES.PHP
ADICIONE AS SEGUINTES LINHAS:Route::get('/','ChampionsController@index');Route::get('/champions/{id}','ChampionsController@show');
SUA VEZ!
DIVIDAM-SE EM DUPLAS E FAÇAM COMPLETEM OS DESAFIOS:
FAZER GRÁFICOS DOS ATRIBUTOS DOS CHAMPIONS
FAZER UM CRIADOR AUTOMÁTICO DE TIMES