meta data for this page
  •  

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Poprzednia rewizja po obu stronachPoprzednia wersja
Nowa wersja
Poprzednia wersja
laravel [2021/10/28 12:30] – [Pierwsze kroki] Paweł Grygorczuklaravel [2022/03/01 14:54] (aktualna) – [Pierwsze kroki] Paweł Grygorczuk
Linia 6: Linia 6:
 1. Zainstaluj [[PHP]], [[MySQL]]. Może być [[XAMPP]] albo [[WampServer]]. Jeżeli wykonujesz instalację produkcyjną, zobacz [[linux:lamp]]. 1. Zainstaluj [[PHP]], [[MySQL]]. Może być [[XAMPP]] albo [[WampServer]]. Jeżeli wykonujesz instalację produkcyjną, zobacz [[linux:lamp]].
  
-2. W MySQL ustawiamy domyślny silnik na InnoDB (poniższym poleceniem lub w my.ini ''default-storage-engine=InnoDB'').+2. W MySQL ustawiamy domyślny silnik na InnoDB (poniższym poleceniem na czas jednej sesji lub permanentnie w my.ini ''default-storage-engine=InnoDB'').
  
 <code mysql> <code mysql>
Linia 67: Linia 67:
  
 Aplikacja będzie dostępna pod adresem ''localhost:8000''. Na administratora w Voyagerze zalogujesz się na stronie ''localhost:8000/admin'' podając: admin@admin.com / password Aplikacja będzie dostępna pod adresem ''localhost:8000''. Na administratora w Voyagerze zalogujesz się na stronie ''localhost:8000/admin'' podając: admin@admin.com / password
 +
 +===== Rozwiązywanie problemów =====
 +
 +Jeżeli natkniesz się (np. podczas próby wykonania migracji) na błąd ''Specified key was too long'', upewnij się ze wykonałeś/aś krok (2), oraz ustaw w ''app/Providers/AppServiceProvider.php'', metodzie ''boot'':
 +
 +<code php>
 +use Illuminate\Support\Facades\Schema;
 +
 +...
 +
 +public function boot(){
 +  Schema::defaultStringLength(191);
 +}
 +</code>
 +
 +Dlaczego akurat 191? Cytat z https://stackoverflow.com/questions/23786359/laravel-migration-unique-key-is-too-long-even-if-specified
 +
 +You have to set the length of the indexed column according to the limit of 767 bytes. Be aware that VARCHAR may have 1, 2 or 4 bytes for each length unit. Example: utf8_mb4 (4 bytes) -> 767 / 4 = 191. Otherwise utf8_general_ci for VARCHAR(X) with X < 85 ( 1 byte ) = O(85) , or utf8_general_ci for VARCHAR(X) with X >= 86 ( 2 bytes ) -> 767 / 2 = 383. Consider also other columns lenght in multiple column indexes.
  
 ===== Pierwsze kroki ===== ===== Pierwsze kroki =====
Linia 72: Linia 90:
 Artisan jest programem dołączonym z Laravel. Dostępne komendy wylistujesz poleceniem ''php artisan list''. Polecenia wywołujemy z głównego katalogu (root) projektu. Artisan jest programem dołączonym z Laravel. Dostępne komendy wylistujesz poleceniem ''php artisan list''. Polecenia wywołujemy z głównego katalogu (root) projektu.
  
-Przykładowo można łatwo dodać funkcję logowania rejestrowania użytkowników do naszej aplikacji:+Jeżeli uruchamiasz pobrany projekt (np. z [[Git]]a), musisz na samym początku założyć bazę danych, skonfigurować ''.env'' uruchomić migracje:
  
 <code bash> <code bash>
-php artisan make:auth+php artisan migrate 
 +php artisan db:seed
 </code> </code>
  
 +Można usunąć wszystkie tabele, następnie stworzyć od nowa (migrate:fresh) i wypełnić danymi (seed):
  
 +<code bash>
 +php artisan migrate:fresh --seed
 +</code>
 +
 +Konsola [[CLI]] Laravela
 +
 +<code bash>
 +php artisan tinker
 +</code>
 +
 +Ściąga z najważniejszymi poleceniami (pomijam ''php artisan'' na początku polecenia):
 +
 +^ Polecenie                        ^ Opis                                              ^
 +| make:controller PostsController  | Tworzy nowy kontroler                             |
 +| make:model Post -m               | Tworzy nowy model (-m dodaje migrację)            |
 +| route:list                       | Wypisuje aktualnie dostępny routing.              |
 +| db:seed                          | Wypełnia bazę danych danymi (DatabaseSeeder.php)  |
 +
 +===== Bootstrap i React =====
 +
 +Instalujemy ''laravel/ui'' za pomocą [[Composer]]. Do pobrania źródła może być potrzebny [[Git]].
 +
 +<code bash>
 +composer require laravel/ui
 +</code>
 +
 +Teraz można zainstalować [[Bootstrap]], [[React]] lub inne frameworki, np. [[Vue]].
 +
 +<code bash>
 +php artisan ui bootstrap
 +php artisan ui react
 +</code>
 +
 +Dodanie opcji ''auth'' w powyższych poleceniach stworzy szkielet do strony logowania/rejestracji.
 +
 +<code bash>
 +php artisan ui bootstrap --auth
 +</code>
 +
 +Instalujemy zależności.
 +
 +<code bash>
 +npm install
 +</code>
 +
 +Pozostało skompilować zasoby (oraz oczywiście dołączyć .css i .js z katalogu ''public'' w [[HTML]]).
 +
 +<code bash>
 +npm run dev
 +</code>
 +
 +lub
 +
 +<code bash>
 +npm run prod
 +</code>
 +
 +Można też monitorować zmiany w trybie ciągłym.
 +
 +<code bash>
 +npm run watch
 +</code>