SlideShare a Scribd company logo
Laravel Workshops
Software House
Warsztaty dla początkujących
Software House
WiFi :)
network: APIP
password: apip@ppnt!
2003 - PRESENT
desmart
desmartcom
desmartcom
Kamil Fojuth
Software House
fojuth
2012 - PRESENT
fojuth
Software House
Dlaczego Laravel?
Software House
Co będziemy robić?
- prosty blog (szok!)
- MVC
- CRUD
- http://laravel.com/docs/5.0
Software House
Wszyscy gotowi?
Można zaczynać?
- projekt postawiony? działa?
- baza danych jest?
Software House
.env
- co to jest? do czego to?
- dlaczego nie możemy tego commit'nąć do repo?
- wypełniamy dane dotyczące MySQL
cp .env.example .env
DB_HOST=localhost
DB_DATABASE=desmart_workshop
DB_USERNAME=root
DB_PASSWORD=pwd
Software House
Migracje i seed'y
- http://laravel.com/docs/5.0/migrations
- czym są migracje? po co to?
- seed'y? wat?
- artisan - nasz przyjaciel
Software House
Migracje
php artisan make:migration create_table_foo_bar;
$table->increments('id');
$table->string('varchar_column_title');
$table->text('text_column_title');
$table->integer('post_id')->unsigned();
$table->foreign('post_id')->references('id')->on('posts');
Pamiętamy, aby utworzyć również "rollback" dla każdej migracji.
Software House
Migracje
Obie migracje gotowe? To odpalamy!
php artisan migrate
Coś poszło nie tak? Cofamy ostatnią migrację!
php artisan migrate:rollback
Software House
Seed'y
Seed'y to klasy ułatwiające wypełnienie bazy przykładowymi
danymi.
Ale po co? Pomagają np. testerom - możemy "odświeżyć" bazę
danych, przywracając ją do określonego stanu. Szczególnie
przydatne w przypadku testów automatycznych (np. Selenium).
php artisan db:seed
Software House
MVC
Software House
Trasy / Routes
Route::any('/welcome', function()
{
return 'Welcome!';
});
Route::get('/foo', 'FooController@index');
Route::post('/user/{id}/edit', 'UserController@update');
Route::resource('photo', 'PhotoController');
app/Http/routes.php
Software House
Filtry / Middleware
Route::group(['middleware' => ['auth']], function()
{
Route::get('/', function()
{
// User musi być zalogowany
});
});
Software House
Model
Post::all();
Post::find(3);
$post = Post::where('title', '=', 'Cool Story')->first();
$post->title = 'New title';
$post->save();
http://laravel.com/docs/5.0/eloquent
Model jest reprezentacją tabeli w bazie danych.
Software House
PostController
http://laravel.com/docs/5.0/controllers
Model: app/Post.php, app/Comment.php
View: resources/views/posts/index.blade.php
Controller: app/Http/Controllers/PostController.php
- trasa /posts ma zwracać widok posts/index.blade.php
- do widoku trzeba przekazać wszystkie posty (jako $posts)
Software House
- trasa /posts/create (GET) ma zwracać widok
posts/create.blade.php
- trasa /posts/create (POST) ma tworzyć nowy wpis
- po utworzeniu nowego wpisu ma nastąpić przekierowanie na widok z
listą wpisów
Dodawanie wpisu
Software House
Usuwanie wpisu
- na liście wpisów ma być guzik do usuwania wpisu
- trasa /posts/{id}/delete ma usuwać wpis
- po usunięciu wpisu ma nastąpić przekierowanie na widok z listą
wpisów
Software House
- na liście wpisów ma być guzik do edycji wpisu
- trasa /posts/{id} (GET) ma wyświetlać formularz edycji
wpisu
- trasa /posts/{id} (POST) ma zapisać zmiany
- po zapisie zmian ma nastąpić przekierowanie na widok z listą wpisów
Można zmodyfikować istniejący widok posts/create.blade.php
lub utworzyć nowy.
Formularz powinien być wypełniony aktualnymi danymi. Jak to zrobić?
Edycja wpisu
Software House
Dziękuję!
Software House
Podobało się?
Kolejne warsztaty zależą od Was!

More Related Content

Similar to Laravel workshops 1

WordUp Trójmiasto - Sage 9 w praktyce
WordUp Trójmiasto - Sage 9 w praktyceWordUp Trójmiasto - Sage 9 w praktyce
WordUp Trójmiasto - Sage 9 w praktyce
Dawid Urbański
 
Migrate API w Drupalu [PL]
Migrate API w Drupalu [PL]Migrate API w Drupalu [PL]
Migrate API w Drupalu [PL]
Droptica
 
PLNOG 22 - Krzysztof Załęski - Praktyczne zastosowanie narzędzi NetDevOps
PLNOG 22 - Krzysztof Załęski - Praktyczne zastosowanie narzędzi NetDevOpsPLNOG 22 - Krzysztof Załęski - Praktyczne zastosowanie narzędzi NetDevOps
PLNOG 22 - Krzysztof Załęski - Praktyczne zastosowanie narzędzi NetDevOps
PROIDEA
 
JavaScript, Moduły
JavaScript, ModułyJavaScript, Moduły
JavaScript, Moduły
Mariusz Nowak
 
Laravel Poznań Meetup #3 - Uruchomienie i praca z Laravel w wirtualnym konten...
Laravel Poznań Meetup #3 - Uruchomienie i praca z Laravel w wirtualnym konten...Laravel Poznań Meetup #3 - Uruchomienie i praca z Laravel w wirtualnym konten...
Laravel Poznań Meetup #3 - Uruchomienie i praca z Laravel w wirtualnym konten...
HighSolutions Sp. z o.o.
 
Uruchomienie i praca z laravel w wirtualnym kontenerze docker'a
Uruchomienie i praca z laravel w wirtualnym kontenerze docker'aUruchomienie i praca z laravel w wirtualnym kontenerze docker'a
Uruchomienie i praca z laravel w wirtualnym kontenerze docker'a
Laravel Poland MeetUp
 
Wzorce Repository, Unity of Work, Devexpress MVC w architekturze Asp.net MVC
Wzorce Repository, Unity of Work, Devexpress MVC  w architekturze Asp.net MVCWzorce Repository, Unity of Work, Devexpress MVC  w architekturze Asp.net MVC
Wzorce Repository, Unity of Work, Devexpress MVC w architekturze Asp.net MVC
Quick-Solution
 
Electron + WordPress = ❤
Electron + WordPress = ❤Electron + WordPress = ❤
Electron + WordPress = ❤
Tomasz Dziuda
 
Functional widgets in Rails
Functional widgets in RailsFunctional widgets in Rails
Functional widgets in RailsSebastian Sito
 
Co nowego w ASP.NET MVC 4?
Co nowego w ASP.NET MVC 4?Co nowego w ASP.NET MVC 4?
Co nowego w ASP.NET MVC 4?
tkryskiewicz
 
Poznaj wp-config.php "Ukryte" możliwości.
Poznaj wp-config.php  "Ukryte" możliwości.Poznaj wp-config.php  "Ukryte" możliwości.
Poznaj wp-config.php "Ukryte" możliwości.
Marcin Jóźwiak
 
Wprowadzenie do WP-API
Wprowadzenie do WP-APIWprowadzenie do WP-API
Wprowadzenie do WP-API
Tomasz Dziuda
 
Warsztaty: Podstawy PHP - część 2 - omówienie składni języka PHP (wersja 7)
Warsztaty: Podstawy PHP - część 2 - omówienie składni języka PHP (wersja 7)Warsztaty: Podstawy PHP - część 2 - omówienie składni języka PHP (wersja 7)
Warsztaty: Podstawy PHP - część 2 - omówienie składni języka PHP (wersja 7)
Codesushi.co (CODESUSHI LLC)
 
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
The Software House
 
4Developers 2015: .NET 2015 - co nowego? - Michał Dudak, Future Processing
4Developers 2015: .NET 2015 - co nowego? - Michał Dudak, Future Processing4Developers 2015: .NET 2015 - co nowego? - Michał Dudak, Future Processing
4Developers 2015: .NET 2015 - co nowego? - Michał Dudak, Future Processing
PROIDEA
 
REST API - teoria i praktyka - WordUp Trójmiasto
REST API - teoria i praktyka - WordUp TrójmiastoREST API - teoria i praktyka - WordUp Trójmiasto
REST API - teoria i praktyka - WordUp Trójmiasto
Tomasz Dziuda
 
Xlab #10: Integracja zewnętrznych API z wykorzystaniem platformy Spring
Xlab #10: Integracja zewnętrznych API z wykorzystaniem platformy SpringXlab #10: Integracja zewnętrznych API z wykorzystaniem platformy Spring
Xlab #10: Integracja zewnętrznych API z wykorzystaniem platformy Spring
XSolve
 
PSD2WP: kodowanie dedykowanych motywów dla WordPressa w modelu komponentowym
PSD2WP: kodowanie dedykowanych motywów dla WordPressa w modelu komponentowymPSD2WP: kodowanie dedykowanych motywów dla WordPressa w modelu komponentowym
PSD2WP: kodowanie dedykowanych motywów dla WordPressa w modelu komponentowym
Krzysztof Łęcki
 

Similar to Laravel workshops 1 (20)

WordUp Trójmiasto - Sage 9 w praktyce
WordUp Trójmiasto - Sage 9 w praktyceWordUp Trójmiasto - Sage 9 w praktyce
WordUp Trójmiasto - Sage 9 w praktyce
 
Migrate API w Drupalu [PL]
Migrate API w Drupalu [PL]Migrate API w Drupalu [PL]
Migrate API w Drupalu [PL]
 
PLNOG 22 - Krzysztof Załęski - Praktyczne zastosowanie narzędzi NetDevOps
PLNOG 22 - Krzysztof Załęski - Praktyczne zastosowanie narzędzi NetDevOpsPLNOG 22 - Krzysztof Załęski - Praktyczne zastosowanie narzędzi NetDevOps
PLNOG 22 - Krzysztof Załęski - Praktyczne zastosowanie narzędzi NetDevOps
 
JavaScript, Moduły
JavaScript, ModułyJavaScript, Moduły
JavaScript, Moduły
 
Laravel Poznań Meetup #3 - Uruchomienie i praca z Laravel w wirtualnym konten...
Laravel Poznań Meetup #3 - Uruchomienie i praca z Laravel w wirtualnym konten...Laravel Poznań Meetup #3 - Uruchomienie i praca z Laravel w wirtualnym konten...
Laravel Poznań Meetup #3 - Uruchomienie i praca z Laravel w wirtualnym konten...
 
Uruchomienie i praca z laravel w wirtualnym kontenerze docker'a
Uruchomienie i praca z laravel w wirtualnym kontenerze docker'aUruchomienie i praca z laravel w wirtualnym kontenerze docker'a
Uruchomienie i praca z laravel w wirtualnym kontenerze docker'a
 
Php5
Php5Php5
Php5
 
Wzorce Repository, Unity of Work, Devexpress MVC w architekturze Asp.net MVC
Wzorce Repository, Unity of Work, Devexpress MVC  w architekturze Asp.net MVCWzorce Repository, Unity of Work, Devexpress MVC  w architekturze Asp.net MVC
Wzorce Repository, Unity of Work, Devexpress MVC w architekturze Asp.net MVC
 
Electron + WordPress = ❤
Electron + WordPress = ❤Electron + WordPress = ❤
Electron + WordPress = ❤
 
Functional widgets in Rails
Functional widgets in RailsFunctional widgets in Rails
Functional widgets in Rails
 
Co nowego w ASP.NET MVC 4?
Co nowego w ASP.NET MVC 4?Co nowego w ASP.NET MVC 4?
Co nowego w ASP.NET MVC 4?
 
Poznaj wp-config.php "Ukryte" możliwości.
Poznaj wp-config.php  "Ukryte" możliwości.Poznaj wp-config.php  "Ukryte" możliwości.
Poznaj wp-config.php "Ukryte" możliwości.
 
Wprowadzenie do WP-API
Wprowadzenie do WP-APIWprowadzenie do WP-API
Wprowadzenie do WP-API
 
Warsztaty: Podstawy PHP - część 2 - omówienie składni języka PHP (wersja 7)
Warsztaty: Podstawy PHP - część 2 - omówienie składni języka PHP (wersja 7)Warsztaty: Podstawy PHP - część 2 - omówienie składni języka PHP (wersja 7)
Warsztaty: Podstawy PHP - część 2 - omówienie składni języka PHP (wersja 7)
 
Torquebox
TorqueboxTorquebox
Torquebox
 
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
 
4Developers 2015: .NET 2015 - co nowego? - Michał Dudak, Future Processing
4Developers 2015: .NET 2015 - co nowego? - Michał Dudak, Future Processing4Developers 2015: .NET 2015 - co nowego? - Michał Dudak, Future Processing
4Developers 2015: .NET 2015 - co nowego? - Michał Dudak, Future Processing
 
REST API - teoria i praktyka - WordUp Trójmiasto
REST API - teoria i praktyka - WordUp TrójmiastoREST API - teoria i praktyka - WordUp Trójmiasto
REST API - teoria i praktyka - WordUp Trójmiasto
 
Xlab #10: Integracja zewnętrznych API z wykorzystaniem platformy Spring
Xlab #10: Integracja zewnętrznych API z wykorzystaniem platformy SpringXlab #10: Integracja zewnętrznych API z wykorzystaniem platformy Spring
Xlab #10: Integracja zewnętrznych API z wykorzystaniem platformy Spring
 
PSD2WP: kodowanie dedykowanych motywów dla WordPressa w modelu komponentowym
PSD2WP: kodowanie dedykowanych motywów dla WordPressa w modelu komponentowymPSD2WP: kodowanie dedykowanych motywów dla WordPressa w modelu komponentowym
PSD2WP: kodowanie dedykowanych motywów dla WordPressa w modelu komponentowym
 

Laravel workshops 1