Laravel Livewire Shopping Cart Demo

Przed uruchomieniem Vagrant Homestead

1. Edytujemy i ustawiamy na default plik homestead.yaml

2. W homstead.yaml ustawiamy katalog Windows na który będzie sym-linkowany code oraz tworzymy bazę danych.

3. W  katalogu Sites tworzymy katalog o takiej samej nazwie jak podaliśmy w homestead.yaml

4. Aby łatwo się pracowało z projektem w katalogu  C:\Windows\System32\drivers\etc edytujemy plik host.

 a. Dodajemy 192.168.10.10 shopping.test

     Teraz w przeglądarce  piszemy shopping.test i już wyświetla się nasza strona

4.Startujemy z vagrant i Homestead..

 a. $ cd ~/Homestead
 b. $ vagrant up
 c. $ vagrant ssh

 d. A już w Homestead cd code  i już jesteśmy w naszym projekcie, komendą ls upewniamy się że katalog jest pusty.

marcin@marcin-Pc MINGW64 ~/Homestead ((v11.2.2))
$ vagrant ssh
Welcome to Ubuntu 20.04.1 LTS (GNU/Linux 5.4.0-60-generic x86_64)

_ _ _
| | | | | |
| |__ ___ _ __ ___ ___ ___| |_ ___ __ _ __| |
| '_ \ / _ \| '_ ` _ \ / _ \/ __| __/ _ \/ _` |/ _` |
| | | | (_) | | | | | | __/\__ \ || __/ (_| | (_| |
|_| |_|\___/|_| |_| |_|\___||___/\__\___|\__,_|\__,_|

* Homestead v12.0.0
* Settler v11.0.0 (Ubuntu 20.04)


299 updates can be installed immediately.
28 of these updates are security updates.
To see these additional updates run: apt list --upgradable


The list of available updates is more than a week old.
To check for new updates run: sudo apt update

Last login: Tue Mar 16 06:46:31 2021 from 10.0.2.2
vagrant@homestead:~$ cd code
vagrant@homestead:~/code$ ls
vagrant@homestead:~/code$

Katalog code który jest sym-linkowany z naszym katalogiem w systemie Windows jest pusty, możemy zacząć instalacje nowego Laravel.

Przede wszystkim zainicjujemy projekt Laravel od zera. W tym celu wykonujemy:

composer create-project laravel/laravel . 

Powyższa  komenda zainstaluje nam w katalogu w którym się znajdujemy nowy projekt Laravel w wersji  najnowszej.

Komendą ls podglądamy strukturę katalogu code, aby upewnić się że wszystkie pliki są na miejscu

vagrant@homestead:~/code$ ls
app composer.json database public routes tests
artisan composer.lock package.json README.md server.php vendor
bootstrap config phpunit.xml resources storage webpack.mix.js
vagrant@homestead:~/code$

Po instalacji możemy sprawdzić która wersje Laravel posiadamy :

vagrant@homestead:~/code$ php artisan -v
Laravel Framework 8.29.0

Następnie podczepiamy PhpStorm tworząc nowy projekt z katalogu Sites\shopping.

Następnym krokiem jest skonfigurowanie projektu. Najpierw skonfiguruj plik .env, a następnie zainstaluj i skonfiguruj livewire.

APP_NAME=Shopping
APP_URL=http://shopping.test
DB_DATABASE=shopping
DB_USERNAME=root
DB_PASSWORD=secret

Po zakończeniu tych dwóch pierwszych etapów utworzymy jednostkę produktu wraz z jej modelem, migracją, fabryką i selektorem danych. W ten sposób uzyskujemy fałszywe dane do uruchomienia testów z projektem. Następnie wykonaj następujące polecenie:

composer require livewire/livewire

Link ? do dokumentacji i instalacji livewire.

Po zakończeniu tych dwóch pierwszych etapów utworzymy jednostkę produktu wraz z jej modelem, migracją, fabryką i seederem danych. W ten sposób uzyskujemy fałszywe dane do uruchomienia testów z projektem. Następnie wykonaj następujące polecenie:

php artisan make:model -msf Product

 - m | creates migration

 - s | creates seeder

 - f | creates factory ‌
Nadszedł czas, aby zaktualizować zawartość plików utworzonych za pomocą polecenia:

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateProductsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('products', function (Blueprint $table) {
$table->id();

$table->string('name');
$table->string('description');
$table->float('price');

$table->timestamps();
});
}

/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('products');
}
}