Node JS / NPM | Cookbook
Komplette Neuinstallation der Module
# 👇️ delete node_modules and package-lock.json rm -rf node_modules rm -f package-lock.json # 👇️ clean npm cache npm cache clean --force npm install
Tipps und Tricks für Entwickler und IT-Interessierte
# 👇️ delete node_modules and package-lock.json rm -rf node_modules rm -f package-lock.json # 👇️ clean npm cache npm cache clean --force npm install
Using Docker is an effortless way to launch and run an application/server software without annoying installation hassles: Just run the image and you’re done.
Even if it’s quite an uncomplicated way of looking at it, in many cases it works just like that.
So, let’s start with using Microsoft SQL Server as a database backend. We will use a docker image from Microsoft. Look here to find out more.
docker run \ --name mssql-server \ --memory 4294967296 \ -e "ACCEPT_EULA=Y" \ -e "SA_PASSWORD=secret" \ -p 1433:1433 \ mcr.microsoft.com/mssql/server:2019-latestles
Start the docker container as described on the Docker Hub Page: How to use this Image
❯ docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=secret" -p 1433:1433 mcr.microsoft.com/mssql/server:2022-latest
Depending on how your docker environment is configured, this could bring up an error:
SQL Server 2019 will run as non-root by default. This container is running as user mssql. To learn more visit https://go.microsoft.com/fwlink/?linkid=2099216. sqlservr: This program requires a machine with at least 2000 megabytes of memory. /opt/mssql/bin/sqlservr: This program requires a machine with at least 2000 megabytes of memory.
As the error message states, the MS SQL server needs at least 2g of RAM. So, you must assign your Docker VMs more memory. This is configured in the Docker Dashboard.
Hint: Docker has two ways of running containers:
You can change the way with the context menu of the docker symbol in the task bar:
With Linux Containers (using WSL as backend), you must configure the containers via a file .wslconfig
.
This file is in the folder defined by the environment variable To open the file, run the command: Edit the content and change the memory setting Restart WSL with the new settings. Start Container again, now everything should work Working with different software (samples, compilers, demos) always requires an adequate environment. Because i don’t want to pollute my normal environment (my running PC), i decided to use a virtual environment with Docker. Luckily, VS Code supports this by using remote containers and working fully within these containers. .devcontainer\docker-compose.yml .devcontainer\Dockerfile Start the Visual in your development environment Open a report the Power BI Portal with your Browser Open the local page localhost://localhost:8080/assets Laden Sie das Tool von dieser Seite und installieren Sie es. Das Tool besteht aus einer Datei: gh Hier gibt es einen passenden Blog-Eintrag dazu. Stellen Sich sicher, dass sich der Installationsordner in ihrem PATH Variable befindet. Danach einfach das Tool mal aufrufen Alle “issues” mit dem Status “all” The complete code for the post is here. Building a Docker image mainly means creating a Dockefile and specifying all the required components to install and configure. So a Dockerfile contains at least many operating system commands for installing and configuring software and packages. Keeping all commands in one file (Dockerfile) can lead to a confusing structure. In this post I describe and explain an extensible structure for a Docker project so that you can reuse components for other components. The basic idea behind the structure is: split all installation instructions into separate installation scripts and call them individually in the dockerfile. In the end the structure will look something like this (with some additional collaborators to be added and described later) For example, preparing the Ubuntu image by installing basic commands is transfered into the script Hint: There are hardly any restrictions on the choice of names (variables and files/scripts). For the scripts, I use numbering to express order. The script contains this code: Since we will be working with several scripts, an exchange of information is necessary. For example, one script installs a package and the other needs the installation folder. We will therefore store information needed by multiple scripts in a separate file: the environment file And each installation script must start with a preamble to use this environment file: When building an image, Docker needs all files and scripts to run inside the image. Since we created the installation scripts outside of the image, we need to copy them into the image (run run them). This also applies to the environment file File copying is done by the Docker ADD statement. First we need our Each block to install one required software looks like this. To be flexible, we use variable for the script names. Note: We can’t run the script directly because the run bit may not be set. So we will use bash to run the text file as a script. As an add-on, we will be using Docker’s multi-stage builds. So here is the final code: Here is the final Dockerfile: https://cloud.google.com/sdk/docs/cheatsheet https://medium.com/google-cloud/7-gcloud-tricks-you-probably-didnt-know-7f64a16869e7 https://github.com/dennyzhang/cheatsheet-gcp-A4 https://gist.github.com/pydevops/cffbd3c694d599c6ca18342d3625af97 You could use select-except or select-replace. Maybe you have to change the sql dialect. Try https://jwt.io to decode/check the token Create Laravel Starter with basic functionalities Extend the file Creates and Original source is here Create the following file Edit the file and overwrite code with the following https://laravel-news.com/ https://laravel-livewire.com/screencasts/installation https://www.tutsmake.com/category/laravel-tutorial/ https://kinsta.com/blog/laravel-tutorial/#6-best-free-laravel-tutorial-sites https://laravel.com/docs/8.x/eloquent#introduction https://www.a-coding-project.de/ratgeber/laravel/blade https://www.flowkl.com/tutorial/web-development/simple-blog-application-in-laravel-7/ https://www.section.io/engineering-education/laravel-beginners-guide-blogpost/ https://medium.com/@dinyangetoh/how-to-build-a-blog-with-laravel-9f735d1f3116 https://medium.com/@dinyangetoh/how-to-build-a-blog-with-laravel-9f735d1f3116From Command Prompt notepad
[wsl2]
memory=3GB
❯ wsl --shutdown
❯ docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=secret" -p 1433:1433 mcr.microsoft.com/mssql/server:2022-latest
Hugo | Cookbook
Info about Content
Total number of pages in the /articles/ section: {{ len (where .Site.RegularPages "Section" "==" "articles") }}.
Daily: Build a Development Environment with Docker and VS Code
Introduction
The Files
.devcontainer\devcontainer.json
{
"name": "Prolog Environment",
"dockerComposeFile": [
"docker-compose.yml"
],
"service": "app",
"workspaceFolder": "/workspace",
"settings": {},
"extensions": []
}
version: '3.8'
services:
app:
build:
context: .
dockerfile: Dockerfile
container_name: pws_prolog
volumes:
- ../workspace:/workspace:cached
# Overrides default command so things don't shut down after the process ends.
command: /bin/sh -c "while sleep 1000; do :; done"
#------------------------------------------------------------------------------
# STAGE 1:
#------------------------------------------------------------------------------
FROM ubuntu:latest as base_nodejs
# Configure Timezone
ENV TZ 'Europe/Berlin'
RUN echo $TZ > /etc/timezone
RUN apt-get update \
&& apt-get install -y tzdata \
&& rm /etc/localtime \
&& ln -snf /usr/share/zoneinfo/$TZ /etc/localtime \
&& dpkg-reconfigure -f noninteractive tzdata \
&& apt-get clean
#
RUN apt-get install --yes build-essential curl sudo git vim
# Create user
RUN groupadd work -g 1000 \
&& adduser user --uid 1000 --gid 1000 --home /workspace --disabled-password --gecos User
# Setup sudo
RUN echo
# Install Prolog
RUN apt-get -y install swi-prolog
#
USER user
VOLUME [ "/workspace" ]
WORKDIR /workspace
CMD ["/bin/bash"]
The Explanation
Power BI Visuals | Troubleshooting
powerbi.com
Can’t contact visual server
powerbi-visuals-tools
Check https://localhost:8080/assets/status
Other Reasons
Handle Certification Errors
Git | Arbeiten mit der GitHub Kommandozeile
Installation
Authentifizierung
Anmelden
gh auth login --hostname github.com
Default Protokoll einstellen
gh config set -h github.com git_protocol ssh
Credentials aktualisieren
gh auth status
Aktualisieren der Credentials:
gh auth refresh
Konfiguration
Editor setzen
gh config set editor editorName
Repositories
Erstellen
gh repo create <user>/<reponame>
gh repo create <user>/<reponame> --private --enable-issues=false
Clonen
gh repo clone <user>/<reponame>
Fork
gh repo clone <user>/<reponame>
gh repo clone <user>/<reponame> --clone=true --remote=true
Löschen
gh alias set delete 'api -X DELETE repos/$1'
gh auth refresh -h github.com -s delete_repo
# usage (WARNING: no confirmation!)
gh delete user/myrepo
Informationen
Liste der Repositorynamen
gh repo list --limit 1000 --json name --jq '.[].name'
List der Repository-URLs
gh repo list microsoft --json url --jq '.[].url'
Liste filtern (in PowerShell)
gh repo list microsoft --limit 3000 --json url --jq '.[].url' |
Select-String PowerBI -NoEmphasis |
Suchen nach Repositorynamen
gh repo list --limit 1000 --json name --jq '.[].name | match(".*Angular.*") | .string'
Issues
gh issue list
gh issue list --state "all"
gh issue list -s "all"
gh issue list --assignee "n8ebel"
gh issue list -a "n8ebel"
Check Issue Status
gh issue status
gh issue list --state "closed"
gh issue list -s "closed"
gh issue list --label "bug"gh issue list -l "bug"
gh issue list
gh issue list -l "enhancement"
Issues anzeigen
gh issue view "15"
gh issue list -a "n8bel" -l "bug"
Issues erstellen
gh issue create -t "Sample Issue Title" -b "Sample issue description"
gh issue create --web
Hilfreiche CLI Aliases
gh issue list --label "bug"
alias listbugs='gh issue list --label "bug"'
alias listmybugs='gh issue list -a "<username>" -l "bug"'
Pull Requests verwalten
List Pull Requests
gh pr list
gh pr list --state "all"
gh pr list -s "all"
gh pr list --assignee "n8ebel"
gh pr list -a "n8ebel"
Check Pull Request Status
gh pr list --state "closed"
gh pr list -s "closed"
gh pr list --label "bug"
gh pr list -l "bug"
gh pr list
gh pr list -l "enhancement"
Pull Request anzeigen
gh pr view "14"
gh pr list -a "n8bel" -l "bug"
Pull Request erstellen
gh pr create
gh pr create -t "Sample Issue Title" -b "Sample issue description"
gh pr create --web
Praktische Beispiele
Alle Repositories clonen, deren Namen einem bestimmte Suchmuster entspricht
gh repo list microsoft --limit 3000 --json url --jq '.[].url' |
Select-String PowerBI -NoEmphasis |
Repositories suchen und clonen
gh search repos zola+theme --limit 200 --json url | jq .[].url | cut -d'"' -f2 >list-of-repositories
exit
cat list-of-repositories | while read REPO
do
REP=$(basename $REPO .git)
USR=$(basename $(dirname $REPO) )
FOLDER=${USR}_${REP}
if [ -d $FOLDER ]; then
echo "$FOLDER already exists"
else
git clone $REPO ${USR}_${REP} 2>&-
echo "$FOLDER cloned"
fi
done
Docker | Create an extensible build environment
TL;DR
General Information
General Structure
RUN bash /tmp/${SCRIPT_UBUNTU}
RUN bash /tmp/${SCRIPT_ADD_USER}
RUN bash /tmp/${SCRIPT_NODEJS}
RUN bash /tmp/${SCRIPT_JULIA}
RUN bash /tmp/${SCRIPT_ANACONDA}
RUN cat ${SCRIPT_ANACONDA_USER} | su user
RUN bash /tmp/${SCRIPT_CLEANUP}
01_ubuntu_sh
apt-get update
apt-get install --yes apt-utils
apt-get install --yes build-essential lsb-release curl sudo vim python3-pip
echo "root:root" | chpasswd
environment
#--------------------------------------------------------------------------------------
USR_NAME=user
USR_HOME=/home/user
GRP_NAME=work
#--------------------------------------------------------------------------------------
ANACONDA=anaconda3
ANACONDA_HOME=/opt/$ANACONDA
ANACONDA_INSTALLER=/tmp/installer_${ANACONDA}.sh
JULIA=julia
JULIA_HOME=/opt/${JULIA}-1.7.2
JULIA_INSTALLER=/tmp/installer_${JULIA}.tgz
#--------------------------------------------------------------------------------------
# get environment variables
. environment
Preparing Dockerfile and Build Environment
environment
.environment
file in the image, so let’s copy this:#======================================================================================
FROM ubuntu:latest as builder
#--------------------------------------------------------------------------------------
ADD environment environment
ARG SCRIPT_UBUNTU=01_ubuntu.sh
ADD ${SCRIPT_UBUNTU} /tmp/${SCRIPT_UBUNTU}
RUN bash tmp/${SCRIPT_UBUNTU}
#--------------------------------------------------------------------------------------
# UBUNTU CORE
#--------------------------------------------------------------------------------------
FROM builder as ubuntu_core
ARG SCRIPT_UBUNTU=01_ubuntu.sh
ADD ${SCRIPT_UBUNTU} /tmp/${SCRIPT_UBUNTU}
RUN bash
Final results
Dockerfile
#==========================================================================================
FROM ubuntu:latest as builder
#------------------------------------------------------------------------------------------
#
#------------------------------------------------------------------------------------------
ADD environment environment
#------------------------------------------------------------------------------------------
# UBUNTU CORE
#------------------------------------------------------------------------------------------
FROM builder as ubuntu_core
ARG SCRIPT_UBUNTU=01_ubuntu.sh
ADD ${SCRIPT_UBUNTU} /tmp/${SCRIPT_UBUNTU}
RUN bash /tmp/${SCRIPT_UBUNTU}
#------------------------------------------------------------------------------------------
# LOCAL USER
#------------------------------------------------------------------------------------------
ARG SCRIPT_ADD_USER=02_add_user.sh
ADD ${SCRIPT_ADD_USER} /tmp/${SCRIPT_ADD_USER}
RUN bash /tmp/${SCRIPT_ADD_USER}
#------------------------------------------------------------------------------------------
# NODEJS
#-----------------------------------------------------------------------------------------
FROM ubuntu_core as with_nodejs
ARG SCRIPT_NODEJS=10_nodejs.sh
ADD ${SCRIPT_NODEJS} /tmp/${SCRIPT_NODEJS}
RUN bash /tmp/${SCRIPT_NODEJS}
#--------------------------------------------------------------------------------------------------
# JULIA
#--------------------------------------------------------------------------------------------------
FROM with_nodejs as with_julia
ARG SCRIPT_JULIA=11_julia.sh
ADD ${SCRIPT_JULIA} /tmp/${SCRIPT_JULIA}
RUN bash /tmp/${SCRIPT_JULIA}
#---------------------------------------------------------------------------------------------
# ANACONDA3 with Julia Extensions
#---------------------------------------------------------------------------------------------
FROM with_julia as with_anaconda
ARG SCRIPT_ANACONDA=21_anaconda3.sh
ADD ${SCRIPT_ANACONDA} /tmp/${SCRIPT_ANACONDA}
RUN bash /tmp/${SCRIPT_ANACONDA}
#---------------------------------------------------------------------------------------------
#
#---------------------------------------------------------------------------------------------
FROM with_anaconda as with_anaconda_user
ARG SCRIPT_ANACONDA_USER=22_anaconda3_as_user.sh
ADD ${SCRIPT_ANACONDA_USER} /tmp/${SCRIPT_ANACONDA_USER}
#RUN cat ${SCRIPT_ANACONDA_USER} | su user
#---------------------------------------------------------------------------------------------
#
#---------------------------------------------------------------------------------------------
FROM with_anaconda_user as with_cleanup
ARG SCRIPT_CLEANUP=99_cleanup.sh
ADD ${SCRIPT_CLEANUP} /tmp/${SCRIPT_CLEANUP}
RUN bash /tmp/${SCRIPT_CLEANUP}
#=============================================================================================
USER user
WORKDIR /home/user
#
CMD ["bash"]
Makefile
HERE := ${CURDIR}
CONTAINER := playground_docker
default:
cat Makefile
build:
docker build -t ${CONTAINER} .
clean:
docker_rmi_all
run:
docker run -it --rm -p 127.0.0.1:8888:8888 -v ${HERE}:/src:rw -v ${HERE}/notebooks:/notebooks:rw --name ${CONTAINER} ${CONTAINER}
notebook:
docker run -it --rm -p 127.0.0.1:8888:8888 -v ${HERE}:/src:rw -v ${HERE}/notebooks:/notebooks:rw --name ${CONTAINER} ${CONTAINER} bash .local/bin/run_jupyter
Installation scripts
01_ubuntu.sh
#--------------------------------------------------------------------------------------------------
# get environment variables
. environment
#--------------------------------------------------------------------------------------------------
export DEBIAN_FRONTEND=noninteractive
export TZ='Europe/Berlin'
echo $TZ > /etc/timezone
apt-get update
apt-get install --yes apt-utils
#
apt-get -y install tzdata
rm /etc/localtime
ln -snf /usr/share/zoneinfo/$TZ /etc/localtime
dpkg-reconfigure -f noninteractive tzdata
#
apt-get install --yes build-essential lsb-release curl sudo vim python3-pip
#
echo "root:password" | chpasswd
Laravel | Vergleich Inertia und Livewire Starter-kit
Vergleich der Dateien
Type File Folder Files Kernel.php laravel-starter-jetstream-inertia/app/Http Files packages.php laravel-starter-jetstream-inertia/bootstrap/cache Files services.php laravel-starter-jetstream-inertia/bootstrap/cache Files composer.json laravel-starter-jetstream-inertia Files jetstream.php laravel-starter-jetstream-inertia/config Files package.json laravel-starter-jetstream-inertia Files app.css laravel-starter-jetstream-inertia/public/css/app.css Files app.js laravel-starter-jetstream-inertia/public/js Files app.js laravel-starter-jetstream-inertia/resources/js Files web.php laravel-starter-jetstream-inertia/routes Files tailwind.config.js laravel-starter-jetstream-inertia Files ApiTokenPermissionsTest.php laravel-starter-jetstream-inertia/tests/Feature Files BrowserSessionsTest.php laravel-starter-jetstream-inertia/tests/Feature Files CreateApiTokenTest.php laravel-starter-jetstream-inertia/tests/Feature Files CreateTeamTest.php laravel-starter-jetstream-inertia/tests/Feature Files DeleteAccountTest.php laravel-starter-jetstream-inertia/tests/Feature Files DeleteApiTokenTest.php laravel-starter-jetstream-inertia/tests/Feature Files DeleteTeamTest.php laravel-starter-jetstream-inertia/tests/Feature Files InviteTeamMemberTest.php laravel-starter-jetstream-inertia/tests/Feature Files LeaveTeamTest.php laravel-starter-jetstream-inertia/tests/Feature Files ProfileInformationTest.php laravel-starter-jetstream-inertia/tests/Feature Files RemoveTeamMemberTest.php laravel-starter-jetstream-inertia/tests/Feature Files TwoFactorAuthenticationSettingsTest.php laravel-starter-jetstream-inertia/tests/Feature Files UpdatePasswordTest.php laravel-starter-jetstream-inertia/tests/Feature Files UpdateTeamMemberRoleTest.php laravel-starter-jetstream-inertia/tests/Feature Files UpdateTeamNameTest.php laravel-starter-jetstream-inertia/tests/Feature Files autoload.php laravel-starter-jetstream-inertia/vendor Files autoload_classmap.php laravel-starter-jetstream-inertia/vendor/composer Files autoload_files.php laravel-starter-jetstream-inertia/vendor/composer Files autoload_psr4.php laravel-starter-jetstream-inertia/vendor/composer Files autoload_real.php laravel-starter-jetstream-inertia/vendor/composer Files autoload_static.php laravel-starter-jetstream-inertia/vendor/composer Files installed.json laravel-starter-jetstream-inertia/vendor/composer Files installed.php laravel-starter-jetstream-inertia/vendor/composer Files webpack.mix.js laravel-starter-jetstream-inertia Only in composer.lock laravel-starter-jetstream-inertia Only in webpack.config.js laravel-starter-jetstream-inertia Only in HandleInertiaRequests.php laravel-starter-jetstream-inertia/app/Http/Middleware Only in 2022_01_16_142014_create_sessions_table.php laravel-starter-jetstream-inertia/database/migrations Only in Jetstream laravel-starter-jetstream-inertia/resources/js Only in Layouts laravel-starter-jetstream-inertia/resources/js Only in Pages laravel-starter-jetstream-inertia/resources/js Only in app.blade.php laravel-starter-jetstream-inertia/resources/views Only in laravel.log laravel-starter-jetstream-inertia/storage/logs Only in inertiajs laravel-starter-jetstream-inertia/vendor Only in tightenco laravel-starter-jetstream-inertia/vendor Only in View laravel-starter-jetstream-livewire/app Only in 2022_01_16_142135_create_sessions_table.php laravel-starter-jetstream-livewire/database/migrations Only in api laravel-starter-jetstream-livewire/resources/views Only in auth laravel-starter-jetstream-livewire/resources/views Only in dashboard.blade.php laravel-starter-jetstream-livewire/resources/views Only in layouts laravel-starter-jetstream-livewire/resources/views Only in navigation-menu.blade.php laravel-starter-jetstream-livewire/resources/views Only in policy.blade.php laravel-starter-jetstream-livewire/resources/views Only in profile laravel-starter-jetstream-livewire/resources/views Only in teams laravel-starter-jetstream-livewire/resources/views Only in terms.blade.php laravel-starter-jetstream-livewire/resources/views Only in welcome.blade.php laravel-starter-jetstream-livewire/resources/views Only in livewire laravel-starter-jetstream-livewire/vendor Änderungen
app/Http/Kernel.php
Changes
< \App\Http\Middleware\HandleInertiaRequests::class,
Only inapp/Http/Middleware: HandleInertiaRequests.php
Only inlaravel-starter-jetstream-livewire/app: View
bootstrap/cache/packages.php
Changes
< 'inertiajs/inertia-laravel' =>
< array (
< 'providers' =>
< array (
< 0 => 'Inertia\\ServiceProvider',
< ),
< ),
Changes
< 'nesbot/carbon' =>
---
> 'livewire/livewire' =>
Changes
< 0 => 'Carbon\\Laravel\\ServiceProvider',
---
> 0 => 'Livewire\\LivewireServiceProvider',
> ),
> 'aliases' =>
> array (
> 'Livewire' => 'Livewire\\Livewire',
Changes
< 'nunomaduro/collision' =>
---
> 'nesbot/carbon' =>
Changes
< 0 => 'NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider',
---
> 0 => 'Carbon\\Laravel\\ServiceProvider',
Changes
< 'tightenco/ziggy' =>
---
> 'nunomaduro/collision' =>
Changes
< 0 => 'Tightenco\\Ziggy\\ZiggyServiceProvider',
---
> 0 => 'NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider',
bootstrap/cache/services.php
Changes
< 24 => 'Inertia\\ServiceProvider',
< 25 => 'Jenssegers\\Agent\\AgentServiceProvider',
< 26 => 'Laravel\\Fortify\\FortifyServiceProvider',
< 27 => 'Laravel\\Jetstream\\JetstreamServiceProvider',
< 28 => 'Laravel\\Sail\\SailServiceProvider',
< 29 => 'Laravel\\Sanctum\\SanctumServiceProvider',
< 30 => 'Laravel\\Tinker\\TinkerServiceProvider',
---
> 24 => 'Jenssegers\\Agent\\AgentServiceProvider',
> 25 => 'Laravel\\Fortify\\FortifyServiceProvider',
> 26 => 'Laravel\\Jetstream\\JetstreamServiceProvider',
> 27 => 'Laravel\\Sail\\SailServiceProvider',
> 28 => 'Laravel\\Sanctum\\SanctumServiceProvider',
> 29 => 'Laravel\\Tinker\\TinkerServiceProvider',
> 30 => 'Livewire\\LivewireServiceProvider',
Changes
< 33 => 'Tightenco\\Ziggy\\ZiggyServiceProvider',
< 34 => 'App\\Providers\\AppServiceProvider',
< 35 => 'App\\Providers\\AuthServiceProvider',
< 36 => 'App\\Providers\\EventServiceProvider',
< 37 => 'App\\Providers\\RouteServiceProvider',
< 38 => 'App\\Providers\\FortifyServiceProvider',
< 39 => 'App\\Providers\\JetstreamServiceProvider',
---
> 33 => 'App\\Providers\\AppServiceProvider',
> 34 => 'App\\Providers\\AuthServiceProvider',
> 35 => 'App\\Providers\\EventServiceProvider',
> 36 => 'App\\Providers\\RouteServiceProvider',
> 37 => 'App\\Providers\\FortifyServiceProvider',
> 38 => 'App\\Providers\\JetstreamServiceProvider',
Changes
< 12 => 'Inertia\\ServiceProvider',
< 13 => 'Jenssegers\\Agent\\AgentServiceProvider',
< 14 => 'Laravel\\Fortify\\FortifyServiceProvider',
< 15 => 'Laravel\\Jetstream\\JetstreamServiceProvider',
< 16 => 'Laravel\\Sanctum\\SanctumServiceProvider',
---
> 12 => 'Jenssegers\\Agent\\AgentServiceProvider',
> 13 => 'Laravel\\Fortify\\FortifyServiceProvider',
> 14 => 'Laravel\\Jetstream\\JetstreamServiceProvider',
> 15 => 'Laravel\\Sanctum\\SanctumServiceProvider',
> 16 => 'Livewire\\LivewireServiceProvider',
Changes
< 19 => 'Tightenco\\Ziggy\\ZiggyServiceProvider',
< 20 => 'App\\Providers\\AppServiceProvider',
< 21 => 'App\\Providers\\AuthServiceProvider',
< 22 => 'App\\Providers\\EventServiceProvider',
< 23 => 'App\\Providers\\RouteServiceProvider',
< 24 => 'App\\Providers\\FortifyServiceProvider',
< 25 => 'App\\Providers\\JetstreamServiceProvider',
---
> 19 => 'App\\Providers\\AppServiceProvider',
> 20 => 'App\\Providers\\AuthServiceProvider',
> 21 => 'App\\Providers\\EventServiceProvider',
> 22 => 'App\\Providers\\RouteServiceProvider',
> 23 => 'App\\Providers\\FortifyServiceProvider',
> 24 => 'App\\Providers\\JetstreamServiceProvider',
composer.json
Changes
< "inertiajs/inertia-laravel": "^0.5.2",
Changes
< "tightenco/ziggy": "^1.0"
---
> "livewire/livewire": "^2.5"
Only in laravel-starter-jetstream-inertia: composer.lock
config/jetstream.php
Changes
< 'stack' => 'inertia',
---
> 'stack' => 'livewire',
Only in database/migrations: 2022_01_16_142014_create_sessions_table.php
Only in
package.json
Changes
< "@inertiajs/inertia": "^0.10.0",
< "@inertiajs/inertia-vue3": "^0.5.1",
< "@inertiajs/progress": "^0.2.6",
Changes
< "@vue/compiler-sfc": "^3.0.5",
---
> "alpinejs": "^3.0.6",
Changes
< "postcss-import": "^12.0.1",
---
> "postcss-import": "^14.0.1",
Changes
< "vue": "^3.0.5",
< "vue-loader": "^16.1.2",
Only in laravel-starter-jetstream-livewire: pnpm-lock.yaml
Only in resources/js: Jetstream
Only in resources/js: Layouts
Only in resources/js: Pages
resources/js/app.js
Changes
< import { createApp, h } from 'vue';
< import { createInertiaApp } from '@inertiajs/inertia-vue3';
< import { InertiaProgress } from '@inertiajs/progress';
---
> import Alpine from 'alpinejs';
Changes
< const appName = window.document.getElementsByTagName('title')[0]?.innerText || 'Laravel';
---
> window.Alpine = Alpine;
Changes
< createInertiaApp({
< title: (title) => `${title} - ${appName}`,
< resolve: (name) => require(`./Pages/${name}.vue`),
< setup({ el, app, props, plugin }) {
< return createApp({ render: () => h(app, props) })
< .use(plugin)
< .mixin({ methods: { route } })
< .mount(el);
< },
< });
<
< InertiaProgress.init({ color: '#4B5563' });
---
> Alpine.start();
Only in
Only in resources/views: app.blade.php
Only in
Only in
Only in
Only inlaravel-starter-jetstream-livewire/resources/views: navigation-menu.blade.php
Only inlaravel-starter-jetstream-livewire/resources/views: policy.blade.php
Only inlaravel-starter-jetstream-livewire/resources/views: profile
Only inlaravel-starter-jetstream-livewire/resources/views: teams
Only inlaravel-starter-jetstream-livewire/resources/views: terms.blade.php
Only inlaravel-starter-jetstream-livewire/resources/views: welcome.blade.php
routes/web.php
Changes
< use Illuminate\Foundation\Application;
Changes
< use Inertia\Inertia;
Changes
< return Inertia::render('Welcome', [
< 'canLogin' => Route::has('login'),
< 'canRegister' => Route::has('register'),
< 'laravelVersion' => Application::VERSION,
< 'phpVersion' => PHP_VERSION,
< ]);
---
> return view('welcome');
Changes
< return Inertia::render('Dashboard');
---
> return view('dashboard');
Only instorage/logs: laravel.log
tailwind.config.js
Changes
< './resources/js/**/*.vue',
tests/Feature/ApiTokenPermissionsTest.php
Changes
> use Laravel\Jetstream\Http\Livewire\ApiTokenManager;
> use Livewire\Livewire;
Changes
< $response = $this->put('/user/api-tokens/'.$token->id, [
< 'name' => $token->name,
< 'permissions' => [
< 'delete',
< 'missing-permission',
< ],
< ]);
---
> Livewire::test(ApiTokenManager::class)
> ->set(['managingPermissionsFor' => $token])
> ->set(['updateApiTokenForm' => [
> 'permissions' => [
> 'delete',
> 'missing-permission',
> ],
> ]])
> ->call('updateApiToken');
## tests/Feature/BrowserSessionsTest.php
Changes
> use Laravel\Jetstream\Http\Livewire\LogoutOtherBrowserSessionsForm;
> use Livewire\Livewire;
Changes
< $response = $this->delete('/user/other-browser-sessions', [
< 'password' => 'password',
< ]);
<
< $response->assertSessionHasNoErrors();
---
> Livewire::test(LogoutOtherBrowserSessionsForm::class)
> ->set('password', 'password')
> ->call('logoutOtherBrowserSessions');
## tests/Feature/CreateApiTokenTest.php
Changes
> use Laravel\Jetstream\Http\Livewire\ApiTokenManager;
> use Livewire\Livewire;
Changes
< $response = $this->post('/user/api-tokens', [
< 'name' => 'Test Token',
< 'permissions' => [
< 'read',
< 'update',
< ],
< ]);
---
> Livewire::test(ApiTokenManager::class)
> ->set(['createApiTokenForm' => [
> 'name' => 'Test Token',
> 'permissions' => [
> 'read',
> 'update',
> ],
> ]])
> ->call('createApiToken');
## tests/Feature/CreateTeamTest.php
Changes
> use Laravel\Jetstream\Http\Livewire\CreateTeamForm;
> use Livewire\Livewire;
Changes
< $response = $this->post('/teams', [
< 'name' => 'Test Team',
< ]);
---
> Livewire::test(CreateTeamForm::class)
> ->set(['state' => ['name' => 'Test Team']])
> ->call('createTeam');
## tests/Feature/DeleteAccountTest.php
Changes
> use Laravel\Jetstream\Http\Livewire\DeleteUserForm;
> use Livewire\Livewire;
Changes
< $response = $this->delete('/user', [
< 'password' => 'password',
< ]);
---
> $component = Livewire::test(DeleteUserForm::class)
> ->set('password', 'password')
> ->call('deleteUser');
Changes
< $response = $this->delete('/user', [
< 'password' => 'wrong-password',
< ]);
---
> Livewire::test(DeleteUserForm::class)
> ->set('password', 'wrong-password')
> ->call('deleteUser')
> ->assertHasErrors(['password']);
## tests/Feature/DeleteApiTokenTest.php
Changes
> use Laravel\Jetstream\Http\Livewire\ApiTokenManager;
> use Livewire\Livewire;
Changes
< $response = $this->delete('/user/api-tokens/'.$token->id);
---
> Livewire::test(ApiTokenManager::class)
> ->set(['apiTokenIdBeingDeleted' => $token->id])
> ->call('deleteApiToken');
## tests/Feature/DeleteTeamTest.php
Changes
> use Laravel\Jetstream\Http\Livewire\DeleteTeamForm;
> use Livewire\Livewire;
Changes
< $response = $this->delete('/teams/'.$team->id);
---
> $component = Livewire::test(DeleteTeamForm::class, ['team' => $team->fresh()])
> ->call('deleteTeam');
Changes
< $response = $this->delete('/teams/'.$user->currentTeam->id);
---
> $component = Livewire::test(DeleteTeamForm::class, ['team' => $user->currentTeam])
> ->call('deleteTeam')
> ->assertHasErrors(['team']);
## tests/Feature/InviteTeamMemberTest.php
Changes
> use Laravel\Jetstream\Http\Livewire\TeamMemberManager;
Changes
> use Livewire\Livewire;
Changes
< $response = $this->post('/teams/'.$user->currentTeam->id.'/members', [
< 'email' => 'test@example.com',
< 'role' => 'admin',
< ]);
---
> $component = Livewire::test(TeamMemberManager::class, ['team' => $user->currentTeam])
> ->set('addTeamMemberForm', [
> 'email' => 'test@example.com',
> 'role' => 'admin',
> ])->call('addTeamMember');
Changes
< $invitation = $user->currentTeam->teamInvitations()->create([
< 'email' => 'test@example.com',
< 'role' => 'admin',
< ]);
---
> // Add the team member...
> $component = Livewire::test(TeamMemberManager::class, ['team' => $user->currentTeam])
> ->set('addTeamMemberForm', [
> 'email' => 'test@example.com',
> 'role' => 'admin',
> ])->call('addTeamMember');
Changes
< $response = $this->delete('/team-invitations/'.$invitation->id);
---
> $invitationId = $user->currentTeam->fresh()->teamInvitations->first()->id;
>
> // Cancel the team invitation...
> $component->call('cancelTeamInvitation', $invitationId);
tests/Feature/LeaveTeamTest.php
Changes
> use Laravel\Jetstream\Http\Livewire\TeamMemberManager;
> use Livewire\Livewire;
Changes
< $response = $this->delete('/teams/'.$user->currentTeam->id.'/members/'.$otherUser->id);
---
> $component = Livewire::test(TeamMemberManager::class, ['team' => $user->currentTeam])
> ->call('leaveTeam');
Changes
< $response = $this->delete('/teams/'.$user->currentTeam->id.'/members/'.$user->id);
<
< $response->assertSessionHasErrorsIn('removeTeamMember', ['team']);
---
> $component = Livewire::test(TeamMemberManager::class, ['team' => $user->currentTeam])
> ->call('leaveTeam')
> ->assertHasErrors(['team']);
## tests/Feature/ProfileInformationTest.php
Changes
> use Laravel\Jetstream\Http\Livewire\UpdateProfileInformationForm;
> use Livewire\Livewire;
Changes
> public function test_current_profile_information_is_available()
> {
> $this->actingAs($user = User::factory()->create());
>
> $component = Livewire::test(UpdateProfileInformationForm::class);
>
> $this->assertEquals($user->name, $component->state['name']);
> $this->assertEquals($user->email, $component->state['email']);
> }
>
Changes
< $response = $this->put('/user/profile-information', [
< 'name' => 'Test Name',
< 'email' => 'test@example.com',
< ]);
---
> Livewire::test(UpdateProfileInformationForm::class)
> ->set('state', ['name' => 'Test Name', 'email' => 'test@example.com'])
> ->call('updateProfileInformation');
## tests/Feature/RemoveTeamMemberTest.php
Changes
> use Laravel\Jetstream\Http\Livewire\TeamMemberManager;
> use Livewire\Livewire;
Changes
< $response = $this->delete('/teams/'.$user->currentTeam->id.'/members/'.$otherUser->id);
---
> $component = Livewire::test(TeamMemberManager::class, ['team' => $user->currentTeam])
> ->set('teamMemberIdBeingRemoved', $otherUser->id)
> ->call('removeTeamMember');
Changes
< $response = $this->delete('/teams/'.$user->currentTeam->id.'/members/'.$user->id);
<
< $response->assertStatus(403);
---
> $component = Livewire::test(TeamMemberManager::class, ['team' => $user->currentTeam])
> ->set('teamMemberIdBeingRemoved', $user->id)
> ->call('removeTeamMember')
> ->assertStatus(403);
## tests/Feature/TwoFactorAuthenticationSettingsTest.php
Changes
> use Laravel\Jetstream\Http\Livewire\TwoFactorAuthenticationForm;
> use Livewire\Livewire;
Changes
< $response = $this->post('/user/two-factor-authentication');
---
> Livewire::test(TwoFactorAuthenticationForm::class)
> ->call('enableTwoFactorAuthentication');
Changes
< $this->assertNotNull($user->fresh()->two_factor_secret);
< $this->assertCount(8, $user->fresh()->recoveryCodes());
---
> $user = $user->fresh();
>
> $this->assertNotNull($user->two_factor_secret);
> $this->assertCount(8, $user->recoveryCodes());
Changes
< $this->post('/user/two-factor-authentication');
< $this->post('/user/two-factor-recovery-codes');
---
> $component = Livewire::test(TwoFactorAuthenticationForm::class)
> ->call('enableTwoFactorAuthentication')
> ->call('regenerateRecoveryCodes');
Changes
< $this->post('/user/two-factor-recovery-codes');
---
> $component->call('regenerateRecoveryCodes');
Changes
< $this->post('/user/two-factor-authentication');
---
> $component = Livewire::test(TwoFactorAuthenticationForm::class)
> ->call('enableTwoFactorAuthentication');
Changes
< $this->delete('/user/two-factor-authentication');
---
> $component->call('disableTwoFactorAuthentication');
## tests/Feature/UpdatePasswordTest.php
Changes
> use Laravel\Jetstream\Http\Livewire\UpdatePasswordForm;
> use Livewire\Livewire;
Changes
< $response = $this->put('/user/password', [
< 'current_password' => 'password',
< 'password' => 'new-password',
< 'password_confirmation' => 'new-password',
< ]);
---
> Livewire::test(UpdatePasswordForm::class)
> ->set('state', [
> 'current_password' => 'password',
> 'password' => 'new-password',
> 'password_confirmation' => 'new-password',
> ])
> ->call('updatePassword');
Changes
< $response = $this->put('/user/password', [
< 'current_password' => 'wrong-password',
< 'password' => 'new-password',
< 'password_confirmation' => 'new-password',
< ]);
<
< $response->assertSessionHasErrors();
---
> Livewire::test(UpdatePasswordForm::class)
> ->set('state', [
> 'current_password' => 'wrong-password',
> 'password' => 'new-password',
> 'password_confirmation' => 'new-password',
> ])
> ->call('updatePassword')
> ->assertHasErrors(['current_password']);
Changes
< $response = $this->put('/user/password', [
< 'current_password' => 'password',
< 'password' => 'new-password',
< 'password_confirmation' => 'wrong-password',
< ]);
<
< $response->assertSessionHasErrors();
---
> Livewire::test(UpdatePasswordForm::class)
> ->set('state', [
> 'current_password' => 'password',
> 'password' => 'new-password',
> 'password_confirmation' => 'wrong-password',
> ])
> ->call('updatePassword')
> ->assertHasErrors(['password']);
## tests/Feature/UpdateTeamMemberRoleTest.php
Changes
> use Laravel\Jetstream\Http\Livewire\TeamMemberManager;
> use Livewire\Livewire;
Changes
< $response = $this->put('/teams/'.$user->currentTeam->id.'/members/'.$otherUser->id, [
< 'role' => 'editor',
< ]);
---
> $component = Livewire::test(TeamMemberManager::class, ['team' => $user->currentTeam])
> ->set('managingRoleFor', $otherUser)
> ->set('currentRole', 'editor')
> ->call('updateRole');
Changes
< $response = $this->put('/teams/'.$user->currentTeam->id.'/members/'.$otherUser->id, [
< 'role' => 'editor',
< ]);
---
> $component = Livewire::test(TeamMemberManager::class, ['team' => $user->currentTeam])
> ->set('managingRoleFor', $otherUser)
> ->set('currentRole', 'editor')
> ->call('updateRole')
> ->assertStatus(403);
## tests/Feature/UpdateTeamNameTest.php
Changes
> use Laravel\Jetstream\Http\Livewire\UpdateTeamNameForm;
> use Livewire\Livewire;
Changes
< $response = $this->put('/teams/'.$user->currentTeam->id, [
< 'name' => 'Test Team',
< ]);
---
> Livewire::test(UpdateTeamNameForm::class, ['team' => $user->currentTeam])
> ->set(['state' => ['name' => 'Test Team']])
> ->call('updateTeamName');
vendor/autoload.php
Changes
< return ComposerAutoloaderInit1a366ea8c9013f37377c59393191f427::getLoader();
---
> return ComposerAutoloaderInitf2da6e83b085fd96649a1eced6ba9cbb::getLoader();
## vendor/composer/autoload_classmap.php
Changes
< 'Inertia\\Console\\CreateMiddleware' => $vendorDir . '/inertiajs/inertia-laravel/src/Console/CreateMiddleware.php',
< 'Inertia\\Controller' => $vendorDir . '/inertiajs/inertia-laravel/src/Controller.php',
< 'Inertia\\Directive' => $vendorDir . '/inertiajs/inertia-laravel/src/Directive.php',
< 'Inertia\\Inertia' => $vendorDir . '/inertiajs/inertia-laravel/src/Inertia.php',
< 'Inertia\\LazyProp' => $vendorDir . '/inertiajs/inertia-laravel/src/LazyProp.php',
< 'Inertia\\Middleware' => $vendorDir . '/inertiajs/inertia-laravel/src/Middleware.php',
< 'Inertia\\Response' => $vendorDir . '/inertiajs/inertia-laravel/src/Response.php',
< 'Inertia\\ResponseFactory' => $vendorDir . '/inertiajs/inertia-laravel/src/ResponseFactory.php',
< 'Inertia\\ServiceProvider' => $vendorDir . '/inertiajs/inertia-laravel/src/ServiceProvider.php',
< 'Inertia\\Ssr\\Gateway' => $vendorDir . '/inertiajs/inertia-laravel/src/Ssr/Gateway.php',
< 'Inertia\\Ssr\\HttpGateway' => $vendorDir . '/inertiajs/inertia-laravel/src/Ssr/HttpGateway.php',
< 'Inertia\\Ssr\\Response' => $vendorDir . '/inertiajs/inertia-laravel/src/Ssr/Response.php',
< 'Inertia\\Testing\\Assert' => $vendorDir . '/inertiajs/inertia-laravel/src/Testing/Assert.php',
< 'Inertia\\Testing\\AssertableInertia' => $vendorDir . '/inertiajs/inertia-laravel/src/Testing/AssertableInertia.php',
< 'Inertia\\Testing\\Concerns\\Debugging' => $vendorDir . '/inertiajs/inertia-laravel/src/Testing/Concerns/Debugging.php',
< 'Inertia\\Testing\\Concerns\\Has' => $vendorDir . '/inertiajs/inertia-laravel/src/Testing/Concerns/Has.php',
< 'Inertia\\Testing\\Concerns\\Interaction' => $vendorDir . '/inertiajs/inertia-laravel/src/Testing/Concerns/Interaction.php',
< 'Inertia\\Testing\\Concerns\\Matching' => $vendorDir . '/inertiajs/inertia-laravel/src/Testing/Concerns/Matching.php',
< 'Inertia\\Testing\\Concerns\\PageObject' => $vendorDir . '/inertiajs/inertia-laravel/src/Testing/Concerns/PageObject.php',
< 'Inertia\\Testing\\TestResponseMacros' => $vendorDir . '/inertiajs/inertia-laravel/src/Testing/TestResponseMacros.php',
Changes
> 'Livewire\\Castable' => $vendorDir . '/livewire/livewire/src/Castable.php',
> 'Livewire\\Commands\\ComponentParser' => $vendorDir . '/livewire/livewire/src/Commands/ComponentParser.php',
> 'Livewire\\Commands\\ComponentParserFromExistingComponent' => $vendorDir . '/livewire/livewire/src/Commands/ComponentParserFromExistingComponent.php',
> 'Livewire\\Commands\\CopyCommand' => $vendorDir . '/livewire/livewire/src/Commands/CopyCommand.php',
> 'Livewire\\Commands\\CpCommand' => $vendorDir . '/livewire/livewire/src/Commands/CpCommand.php',
> 'Livewire\\Commands\\DeleteCommand' => $vendorDir . '/livewire/livewire/src/Commands/DeleteCommand.php',
> 'Livewire\\Commands\\DiscoverCommand' => $vendorDir . '/livewire/livewire/src/Commands/DiscoverCommand.php',
> 'Livewire\\Commands\\FileManipulationCommand' => $vendorDir . '/livewire/livewire/src/Commands/FileManipulationCommand.php',
> 'Livewire\\Commands\\MakeCommand' => $vendorDir . '/livewire/livewire/src/Commands/MakeCommand.php',
> 'Livewire\\Commands\\MakeLivewireCommand' => $vendorDir . '/livewire/livewire/src/Commands/MakeLivewireCommand.php',
> 'Livewire\\Commands\\MoveCommand' => $vendorDir . '/livewire/livewire/src/Commands/MoveCommand.php',
> 'Livewire\\Commands\\MvCommand' => $vendorDir . '/livewire/livewire/src/Commands/MvCommand.php',
> 'Livewire\\Commands\\PublishCommand' => $vendorDir . '/livewire/livewire/src/Commands/PublishCommand.php',
> 'Livewire\\Commands\\RmCommand' => $vendorDir . '/livewire/livewire/src/Commands/RmCommand.php',
> 'Livewire\\Commands\\S3CleanupCommand' => $vendorDir . '/livewire/livewire/src/Commands/S3CleanupCommand.php',
> 'Livewire\\Commands\\StubParser' => $vendorDir . '/livewire/livewire/src/Commands/StubParser.php',
> 'Livewire\\Commands\\StubsCommand' => $vendorDir . '/livewire/livewire/src/Commands/StubsCommand.php',
> 'Livewire\\Commands\\TouchCommand' => $vendorDir . '/livewire/livewire/src/Commands/TouchCommand.php',
> 'Livewire\\CompilerEngineForIgnition' => $vendorDir . '/livewire/livewire/src/CompilerEngineForIgnition.php',
> 'Livewire\\Component' => $vendorDir . '/livewire/livewire/src/Component.php',
> 'Livewire\\ComponentChecksumManager' => $vendorDir . '/livewire/livewire/src/ComponentChecksumManager.php',
> 'Livewire\\ComponentConcerns\\HandlesActions' => $vendorDir . '/livewire/livewire/src/ComponentConcerns/HandlesActions.php',
> 'Livewire\\ComponentConcerns\\InteractsWithProperties' => $vendorDir . '/livewire/livewire/src/ComponentConcerns/InteractsWithProperties.php',
> 'Livewire\\ComponentConcerns\\PerformsRedirects' => $vendorDir . '/livewire/livewire/src/ComponentConcerns/PerformsRedirects.php',
> 'Livewire\\ComponentConcerns\\ReceivesEvents' => $vendorDir . '/livewire/livewire/src/ComponentConcerns/ReceivesEvents.php',
> 'Livewire\\ComponentConcerns\\RendersLivewireComponents' => $vendorDir . '/livewire/livewire/src/ComponentConcerns/RendersLivewireComponents.php',
> 'Livewire\\ComponentConcerns\\TracksRenderedChildren' => $vendorDir . '/livewire/livewire/src/ComponentConcerns/TracksRenderedChildren.php',
> 'Livewire\\ComponentConcerns\\ValidatesInput' => $vendorDir . '/livewire/livewire/src/ComponentConcerns/ValidatesInput.php',
> 'Livewire\\Connection\\ConnectionHandler' => $vendorDir . '/livewire/livewire/src/Connection/ConnectionHandler.php',
> 'Livewire\\Controllers\\CanPretendToBeAFile' => $vendorDir . '/livewire/livewire/src/Controllers/CanPretendToBeAFile.php',
> 'Livewire\\Controllers\\FilePreviewHandler' => $vendorDir . '/livewire/livewire/src/Controllers/FilePreviewHandler.php',
> 'Livewire\\Controllers\\FileUploadHandler' => $vendorDir . '/livewire/livewire/src/Controllers/FileUploadHandler.php',
> 'Livewire\\Controllers\\HttpConnectionHandler' => $vendorDir . '/livewire/livewire/src/Controllers/HttpConnectionHandler.php',
> 'Livewire\\Controllers\\LivewireJavaScriptAssets' => $vendorDir . '/livewire/livewire/src/Controllers/LivewireJavaScriptAssets.php',
> 'Livewire\\CreateBladeView' => $vendorDir . '/livewire/livewire/src/CreateBladeView.php',
> 'Livewire\\DisableBrowserCache' => $vendorDir . '/livewire/livewire/src/DisableBrowserCache.php',
> 'Livewire\\Event' => $vendorDir . '/livewire/livewire/src/Event.php',
> 'Livewire\\Exceptions\\BypassViewHandler' => $vendorDir . '/livewire/livewire/src/Exceptions/BypassViewHandler.php',
> 'Livewire\\Exceptions\\CannotBindToModelDataWithoutValidationRuleException' => $vendorDir . '/livewire/livewire/src/Exceptions/CannotBindToModelDataWithoutValidationRuleException.php',
> 'Livewire\\Exceptions\\CannotUseReservedLivewireComponentProperties' => $vendorDir . '/livewire/livewire/src/Exceptions/CannotUseReservedLivewireComponentProperties.php',
> 'Livewire\\Exceptions\\ComponentAttributeMissingOnDynamicComponentException' => $vendorDir . '/livewire/livewire/src/Exceptions/ComponentAttributeMissingOnDynamicComponentException.php',
> 'Livewire\\Exceptions\\ComponentNotFoundException' => $vendorDir . '/livewire/livewire/src/Exceptions/ComponentNotFoundException.php',
> 'Livewire\\Exceptions\\CorruptComponentPayloadException' => $vendorDir . '/livewire/livewire/src/Exceptions/CorruptComponentPayloadException.php',
> 'Livewire\\Exceptions\\DirectlyCallingLifecycleHooksNotAllowedException' => $vendorDir . '/livewire/livewire/src/Exceptions/DirectlyCallingLifecycleHooksNotAllowedException.php',
> 'Livewire\\Exceptions\\LivewirePageExpiredBecauseNewDeploymentHasSignificantEnoughChanges' => $vendorDir . '/livewire/livewire/src/Exceptions/LivewirePageExpiredBecauseNewDeploymentHasSignificantEnoughChanges.php',
> 'Livewire\\Exceptions\\MethodNotFoundException' => $vendorDir . '/livewire/livewire/src/Exceptions/MethodNotFoundException.php',
> 'Livewire\\Exceptions\\MissingFileUploadsTraitException' => $vendorDir . '/livewire/livewire/src/Exceptions/MissingFileUploadsTraitException.php',
> 'Livewire\\Exceptions\\MissingRulesException' => $vendorDir . '/livewire/livewire/src/Exceptions/MissingRulesException.php',
> 'Livewire\\Exceptions\\NonPublicComponentMethodCall' => $vendorDir . '/livewire/livewire/src/Exceptions/NonPublicComponentMethodCall.php',
> 'Livewire\\Exceptions\\PropertyNotFoundException' => $vendorDir . '/livewire/livewire/src/Exceptions/PropertyNotFoundException.php',
> 'Livewire\\Exceptions\\PublicPropertyNotFoundException' => $vendorDir . '/livewire/livewire/src/Exceptions/PublicPropertyNotFoundException.php',
> 'Livewire\\Exceptions\\PublicPropertyTypeNotAllowedException' => $vendorDir . '/livewire/livewire/src/Exceptions/PublicPropertyTypeNotAllowedException.php',
> 'Livewire\\Exceptions\\RootTagMissingFromViewException' => $vendorDir . '/livewire/livewire/src/Exceptions/RootTagMissingFromViewException.php',
> 'Livewire\\Exceptions\\S3DoesntSupportMultipleFileUploads' => $vendorDir . '/livewire/livewire/src/Exceptions/S3DoesntSupportMultipleFileUploads.php',
> 'Livewire\\Features\\OptimizeRenderedDom' => $vendorDir . '/livewire/livewire/src/Features/OptimizeRenderedDom.php',
> 'Livewire\\Features\\Placeholder' => $vendorDir . '/livewire/livewire/src/Features/Placeholder.php',
> 'Livewire\\Features\\SupportActionReturns' => $vendorDir . '/livewire/livewire/src/Features/SupportActionReturns.php',
> 'Livewire\\Features\\SupportBootMethod' => $vendorDir . '/livewire/livewire/src/Features/SupportBootMethod.php',
> 'Livewire\\Features\\SupportBrowserHistory' => $vendorDir . '/livewire/livewire/src/Features/SupportBrowserHistory.php',
> 'Livewire\\Features\\SupportChildren' => $vendorDir . '/livewire/livewire/src/Features/SupportChildren.php',
> 'Livewire\\Features\\SupportCollections' => $vendorDir . '/livewire/livewire/src/Features/SupportCollections.php',
> 'Livewire\\Features\\SupportComponentTraits' => $vendorDir . '/livewire/livewire/src/Features/SupportComponentTraits.php',
> 'Livewire\\Features\\SupportDateTimes' => $vendorDir . '/livewire/livewire/src/Features/SupportDateTimes.php',
> 'Livewire\\Features\\SupportEvents' => $vendorDir . '/livewire/livewire/src/Features/SupportEvents.php',
> 'Livewire\\Features\\SupportFileDownloads' => $vendorDir . '/livewire/livewire/src/Features/SupportFileDownloads.php',
> 'Livewire\\Features\\SupportFileUploads' => $vendorDir . '/livewire/livewire/src/Features/SupportFileUploads.php',
> 'Livewire\\Features\\SupportLocales' => $vendorDir . '/livewire/livewire/src/Features/SupportLocales.php',
> 'Livewire\\Features\\SupportPostDeploymentInvalidation' => $vendorDir . '/livewire/livewire/src/Features/SupportPostDeploymentInvalidation.php',
> 'Livewire\\Features\\SupportRedirects' => $vendorDir . '/livewire/livewire/src/Features/SupportRedirects.php',
> 'Livewire\\Features\\SupportRootElementTracking' => $vendorDir . '/livewire/livewire/src/Features/SupportRootElementTracking.php',
> 'Livewire\\Features\\SupportStacks' => $vendorDir . '/livewire/livewire/src/Features/SupportStacks.php',
> 'Livewire\\Features\\SupportValidation' => $vendorDir . '/livewire/livewire/src/Features/SupportValidation.php',
> 'Livewire\\FileUploadConfiguration' => $vendorDir . '/livewire/livewire/src/FileUploadConfiguration.php',
> 'Livewire\\GenerateSignedUploadUrl' => $vendorDir . '/livewire/livewire/src/GenerateSignedUploadUrl.php',
> 'Livewire\\HydrationMiddleware\\AddAttributesToRootTagOfHtml' => $vendorDir . '/livewire/livewire/src/HydrationMiddleware/AddAttributesToRootTagOfHtml.php',
> 'Livewire\\HydrationMiddleware\\CallHydrationHooks' => $vendorDir . '/livewire/livewire/src/HydrationMiddleware/CallHydrationHooks.php',
> 'Livewire\\HydrationMiddleware\\CallPropertyHydrationHooks' => $vendorDir . '/livewire/livewire/src/HydrationMiddleware/CallPropertyHydrationHooks.php',
> 'Livewire\\HydrationMiddleware\\HashDataPropertiesForDirtyDetection' => $vendorDir . '/livewire/livewire/src/HydrationMiddleware/HashDataPropertiesForDirtyDetection.php',
> 'Livewire\\HydrationMiddleware\\HydratePublicProperties' => $vendorDir . '/livewire/livewire/src/HydrationMiddleware/HydratePublicProperties.php',
> 'Livewire\\HydrationMiddleware\\HydrationMiddleware' => $vendorDir . '/livewire/livewire/src/HydrationMiddleware/HydrationMiddleware.php',
> 'Livewire\\HydrationMiddleware\\NormalizeComponentPropertiesForJavaScript' => $vendorDir . '/livewire/livewire/src/HydrationMiddleware/NormalizeComponentPropertiesForJavaScript.php',
> 'Livewire\\HydrationMiddleware\\NormalizeDataForJavaScript' => $vendorDir . '/livewire/livewire/src/HydrationMiddleware/NormalizeDataForJavaScript.php',
> 'Livewire\\HydrationMiddleware\\NormalizeServerMemoSansDataForJavaScript' => $vendorDir . '/livewire/livewire/src/HydrationMiddleware/NormalizeServerMemoSansDataForJavaScript.php',
> 'Livewire\\HydrationMiddleware\\PerformActionCalls' => $vendorDir . '/livewire/livewire/src/HydrationMiddleware/PerformActionCalls.php',
> 'Livewire\\HydrationMiddleware\\PerformDataBindingUpdates' => $vendorDir . '/livewire/livewire/src/HydrationMiddleware/PerformDataBindingUpdates.php',
> 'Livewire\\HydrationMiddleware\\PerformEventEmissions' => $vendorDir . '/livewire/livewire/src/HydrationMiddleware/PerformEventEmissions.php',
> 'Livewire\\HydrationMiddleware\\RenderView' => $vendorDir . '/livewire/livewire/src/HydrationMiddleware/RenderView.php',
> 'Livewire\\HydrationMiddleware\\SecureHydrationWithChecksum' => $vendorDir . '/livewire/livewire/src/HydrationMiddleware/SecureHydrationWithChecksum.php',
> 'Livewire\\ImplicitRouteBinding' => $vendorDir . '/livewire/livewire/src/ImplicitRouteBinding.php',
> 'Livewire\\ImplicitlyBoundMethod' => $vendorDir . '/livewire/livewire/src/ImplicitlyBoundMethod.php',
> 'Livewire\\LifecycleManager' => $vendorDir . '/livewire/livewire/src/LifecycleManager.php',
> 'Livewire\\Livewire' => $vendorDir . '/livewire/livewire/src/Livewire.php',
> 'Livewire\\LivewireBladeDirectives' => $vendorDir . '/livewire/livewire/src/LivewireBladeDirectives.php',
> 'Livewire\\LivewireComponentsFinder' => $vendorDir . '/livewire/livewire/src/LivewireComponentsFinder.php',
> 'Livewire\\LivewireManager' => $vendorDir . '/livewire/livewire/src/LivewireManager.php',
> 'Livewire\\LivewireServiceProvider' => $vendorDir . '/livewire/livewire/src/LivewireServiceProvider.php',
> 'Livewire\\LivewireTagCompiler' => $vendorDir . '/livewire/livewire/src/LivewireTagCompiler.php',
> 'Livewire\\LivewireViewCompilerEngine' => $vendorDir . '/livewire/livewire/src/LivewireViewCompilerEngine.php',
> 'Livewire\\Macros\\DuskBrowserMacros' => $vendorDir . '/livewire/livewire/src/Macros/DuskBrowserMacros.php',
> 'Livewire\\Macros\\ViewMacros' => $vendorDir . '/livewire/livewire/src/Macros/ViewMacros.php',
> 'Livewire\\ObjectPrybar' => $vendorDir . '/livewire/livewire/src/ObjectPrybar.php',
> 'Livewire\\Redirector' => $vendorDir . '/livewire/livewire/src/Redirector.php',
> 'Livewire\\Request' => $vendorDir . '/livewire/livewire/src/Request.php',
> 'Livewire\\Response' => $vendorDir . '/livewire/livewire/src/Response.php',
> 'Livewire\\TemporaryUploadedFile' => $vendorDir . '/livewire/livewire/src/TemporaryUploadedFile.php',
> 'Livewire\\Testing\\Concerns\\HasFunLittleUtilities' => $vendorDir . '/livewire/livewire/src/Testing/Concerns/HasFunLittleUtilities.php',
> 'Livewire\\Testing\\Concerns\\MakesAssertions' => $vendorDir . '/livewire/livewire/src/Testing/Concerns/MakesAssertions.php',
> 'Livewire\\Testing\\Concerns\\MakesCallsToComponent' => $vendorDir . '/livewire/livewire/src/Testing/Concerns/MakesCallsToComponent.php',
> 'Livewire\\Testing\\MakesHttpRequestsWrapper' => $vendorDir . '/livewire/livewire/src/Testing/MakesHttpRequestsWrapper.php',
> 'Livewire\\Testing\\TestableLivewire' => $vendorDir . '/livewire/livewire/src/Testing/TestableLivewire.php',
> 'Livewire\\WireDirective' => $vendorDir . '/livewire/livewire/src/WireDirective.php',
> 'Livewire\\Wireable' => $vendorDir . '/livewire/livewire/src/Wireable.php',
> 'Livewire\\WithFileUploads' => $vendorDir . '/livewire/livewire/src/WithFileUploads.php',
> 'Livewire\\WithPagination' => $vendorDir . '/livewire/livewire/src/WithPagination.php',
Changes
< 'Tightenco\\Ziggy\\BladeRouteGenerator' => $vendorDir . '/tightenco/ziggy/src/BladeRouteGenerator.php',
< 'Tightenco\\Ziggy\\CommandRouteGenerator' => $vendorDir . '/tightenco/ziggy/src/CommandRouteGenerator.php',
< 'Tightenco\\Ziggy\\Ziggy' => $vendorDir . '/tightenco/ziggy/src/Ziggy.php',
< 'Tightenco\\Ziggy\\ZiggyServiceProvider' => $vendorDir . '/tightenco/ziggy/src/ZiggyServiceProvider.php',
vendor/composer/autoload_files.php
Changes
< '98caa11a197f6516a8e48aa4abb5ccc6' => $vendorDir . '/inertiajs/inertia-laravel/helpers.php',
---
> '40275907c8566c390185147049ef6e5d' => $vendorDir . '/livewire/livewire/src/helpers.php',
vendor/composer/autoload_psr4.php
Changes
< 'Tightenco\\Ziggy\\' => array($vendorDir . '/tightenco/ziggy/src'),
Changes
> 'Livewire\\' => array($vendorDir . '/livewire/livewire/src'),
Changes
< 'Inertia\\' => array($vendorDir . '/inertiajs/inertia-laravel/src'),
vendor/composer/autoload_real.php
Changes
< class ComposerAutoloaderInit1a366ea8c9013f37377c59393191f427
---
> class ComposerAutoloaderInitf2da6e83b085fd96649a1eced6ba9cbb
Changes
< spl_autoload_register(array('ComposerAutoloaderInit1a366ea8c9013f37377c59393191f427', 'loadClassLoader'), true, true);
---
> spl_autoload_register(array('ComposerAutoloaderInitf2da6e83b085fd96649a1eced6ba9cbb', 'loadClassLoader'), true, true);
Changes
< spl_autoload_unregister(array('ComposerAutoloaderInit1a366ea8c9013f37377c59393191f427', 'loadClassLoader'));
---
> spl_autoload_unregister(array('ComposerAutoloaderInitf2da6e83b085fd96649a1eced6ba9cbb', 'loadClassLoader'));
Changes
< call_user_func(\Composer\Autoload\ComposerStaticInit1a366ea8c9013f37377c59393191f427::getInitializer($loader));
---
> call_user_func(\Composer\Autoload\ComposerStaticInitf2da6e83b085fd96649a1eced6ba9cbb::getInitializer($loader));
Changes
< $includeFiles = Composer\Autoload\ComposerStaticInit1a366ea8c9013f37377c59393191f427::$files;
---
> $includeFiles = Composer\Autoload\ComposerStaticInitf2da6e83b085fd96649a1eced6ba9cbb::$files;
Changes
< composerRequire1a366ea8c9013f37377c59393191f427($fileIdentifier, $file);
---
> composerRequiref2da6e83b085fd96649a1eced6ba9cbb($fileIdentifier, $file);
Changes
< function composerRequire1a366ea8c9013f37377c59393191f427($fileIdentifier, $file)
---
> function composerRequiref2da6e83b085fd96649a1eced6ba9cbb($fileIdentifier, $file)
vendor/composer/autoload_static.php
Changes
< class ComposerStaticInit1a366ea8c9013f37377c59393191f427
---
> class ComposerStaticInitf2da6e83b085fd96649a1eced6ba9cbb
Changes
< '98caa11a197f6516a8e48aa4abb5ccc6' => __DIR__ . '/..' . '/inertiajs/inertia-laravel/helpers.php',
---
> '40275907c8566c390185147049ef6e5d' => __DIR__ . '/..' . '/livewire/livewire/src/helpers.php',
Changes
< 'Tightenco\\Ziggy\\' => 16,
Changes
> 'Livewire\\' => 9,
Changes
< 'Inertia\\' => 8,
Changes
< 'Tightenco\\Ziggy\\' =>
< array (
< 0 => __DIR__ . '/..' . '/tightenco/ziggy/src',
< ),
Changes
> 'Livewire\\' =>
> array (
> 0 => __DIR__ . '/..' . '/livewire/livewire/src',
> ),
Changes
< 'Inertia\\' =>
< array (
< 0 => __DIR__ . '/..' . '/inertiajs/inertia-laravel/src',
< ),
Changes
< 'Inertia\\Console\\CreateMiddleware' => __DIR__ . '/..' . '/inertiajs/inertia-laravel/src/Console/CreateMiddleware.php',
< 'Inertia\\Controller' => __DIR__ . '/..' . '/inertiajs/inertia-laravel/src/Controller.php',
< 'Inertia\\Directive' => __DIR__ . '/..' . '/inertiajs/inertia-laravel/src/Directive.php',
< 'Inertia\\Inertia' => __DIR__ . '/..' . '/inertiajs/inertia-laravel/src/Inertia.php',
< 'Inertia\\LazyProp' => __DIR__ . '/..' . '/inertiajs/inertia-laravel/src/LazyProp.php',
< 'Inertia\\Middleware' => __DIR__ . '/..' . '/inertiajs/inertia-laravel/src/Middleware.php',
< 'Inertia\\Response' => __DIR__ . '/..' . '/inertiajs/inertia-laravel/src/Response.php',
< 'Inertia\\ResponseFactory' => __DIR__ . '/..' . '/inertiajs/inertia-laravel/src/ResponseFactory.php',
< 'Inertia\\ServiceProvider' => __DIR__ . '/..' . '/inertiajs/inertia-laravel/src/ServiceProvider.php',
< 'Inertia\\Ssr\\Gateway' => __DIR__ . '/..' . '/inertiajs/inertia-laravel/src/Ssr/Gateway.php',
< 'Inertia\\Ssr\\HttpGateway' => __DIR__ . '/..' . '/inertiajs/inertia-laravel/src/Ssr/HttpGateway.php',
< 'Inertia\\Ssr\\Response' => __DIR__ . '/..' . '/inertiajs/inertia-laravel/src/Ssr/Response.php',
< 'Inertia\\Testing\\Assert' => __DIR__ . '/..' . '/inertiajs/inertia-laravel/src/Testing/Assert.php',
< 'Inertia\\Testing\\AssertableInertia' => __DIR__ . '/..' . '/inertiajs/inertia-laravel/src/Testing/AssertableInertia.php',
< 'Inertia\\Testing\\Concerns\\Debugging' => __DIR__ . '/..' . '/inertiajs/inertia-laravel/src/Testing/Concerns/Debugging.php',
< 'Inertia\\Testing\\Concerns\\Has' => __DIR__ . '/..' . '/inertiajs/inertia-laravel/src/Testing/Concerns/Has.php',
< 'Inertia\\Testing\\Concerns\\Interaction' => __DIR__ . '/..' . '/inertiajs/inertia-laravel/src/Testing/Concerns/Interaction.php',
< 'Inertia\\Testing\\Concerns\\Matching' => __DIR__ . '/..' . '/inertiajs/inertia-laravel/src/Testing/Concerns/Matching.php',
< 'Inertia\\Testing\\Concerns\\PageObject' => __DIR__ . '/..' . '/inertiajs/inertia-laravel/src/Testing/Concerns/PageObject.php',
< 'Inertia\\Testing\\TestResponseMacros' => __DIR__ . '/..' . '/inertiajs/inertia-laravel/src/Testing/TestResponseMacros.php',
Changes
> 'Livewire\\Castable' => __DIR__ . '/..' . '/livewire/livewire/src/Castable.php',
> 'Livewire\\Commands\\ComponentParser' => __DIR__ . '/..' . '/livewire/livewire/src/Commands/ComponentParser.php',
> 'Livewire\\Commands\\ComponentParserFromExistingComponent' => __DIR__ . '/..' . '/livewire/livewire/src/Commands/ComponentParserFromExistingComponent.php',
> 'Livewire\\Commands\\CopyCommand' => __DIR__ . '/..' . '/livewire/livewire/src/Commands/CopyCommand.php',
> 'Livewire\\Commands\\CpCommand' => __DIR__ . '/..' . '/livewire/livewire/src/Commands/CpCommand.php',
> 'Livewire\\Commands\\DeleteCommand' => __DIR__ . '/..' . '/livewire/livewire/src/Commands/DeleteCommand.php',
> 'Livewire\\Commands\\DiscoverCommand' => __DIR__ . '/..' . '/livewire/livewire/src/Commands/DiscoverCommand.php',
> 'Livewire\\Commands\\FileManipulationCommand' => __DIR__ . '/..' . '/livewire/livewire/src/Commands/FileManipulationCommand.php',
> 'Livewire\\Commands\\MakeCommand' => __DIR__ . '/..' . '/livewire/livewire/src/Commands/MakeCommand.php',
> 'Livewire\\Commands\\MakeLivewireCommand' => __DIR__ . '/..' . '/livewire/livewire/src/Commands/MakeLivewireCommand.php',
> 'Livewire\\Commands\\MoveCommand' => __DIR__ . '/..' . '/livewire/livewire/src/Commands/MoveCommand.php',
> 'Livewire\\Commands\\MvCommand' => __DIR__ . '/..' . '/livewire/livewire/src/Commands/MvCommand.php',
> 'Livewire\\Commands\\PublishCommand' => __DIR__ . '/..' . '/livewire/livewire/src/Commands/PublishCommand.php',
> 'Livewire\\Commands\\RmCommand' => __DIR__ . '/..' . '/livewire/livewire/src/Commands/RmCommand.php',
> 'Livewire\\Commands\\S3CleanupCommand' => __DIR__ . '/..' . '/livewire/livewire/src/Commands/S3CleanupCommand.php',
> 'Livewire\\Commands\\StubParser' => __DIR__ . '/..' . '/livewire/livewire/src/Commands/StubParser.php',
> 'Livewire\\Commands\\StubsCommand' => __DIR__ . '/..' . '/livewire/livewire/src/Commands/StubsCommand.php',
> 'Livewire\\Commands\\TouchCommand' => __DIR__ . '/..' . '/livewire/livewire/src/Commands/TouchCommand.php',
> 'Livewire\\CompilerEngineForIgnition' => __DIR__ . '/..' . '/livewire/livewire/src/CompilerEngineForIgnition.php',
> 'Livewire\\Component' => __DIR__ . '/..' . '/livewire/livewire/src/Component.php',
> 'Livewire\\ComponentChecksumManager' => __DIR__ . '/..' . '/livewire/livewire/src/ComponentChecksumManager.php',
> 'Livewire\\ComponentConcerns\\HandlesActions' => __DIR__ . '/..' . '/livewire/livewire/src/ComponentConcerns/HandlesActions.php',
> 'Livewire\\ComponentConcerns\\InteractsWithProperties' => __DIR__ . '/..' . '/livewire/livewire/src/ComponentConcerns/InteractsWithProperties.php',
> 'Livewire\\ComponentConcerns\\PerformsRedirects' => __DIR__ . '/..' . '/livewire/livewire/src/ComponentConcerns/PerformsRedirects.php',
> 'Livewire\\ComponentConcerns\\ReceivesEvents' => __DIR__ . '/..' . '/livewire/livewire/src/ComponentConcerns/ReceivesEvents.php',
> 'Livewire\\ComponentConcerns\\RendersLivewireComponents' => __DIR__ . '/..' . '/livewire/livewire/src/ComponentConcerns/RendersLivewireComponents.php',
> 'Livewire\\ComponentConcerns\\TracksRenderedChildren' => __DIR__ . '/..' . '/livewire/livewire/src/ComponentConcerns/TracksRenderedChildren.php',
> 'Livewire\\ComponentConcerns\\ValidatesInput' => __DIR__ . '/..' . '/livewire/livewire/src/ComponentConcerns/ValidatesInput.php',
> 'Livewire\\Connection\\ConnectionHandler' => __DIR__ . '/..' . '/livewire/livewire/src/Connection/ConnectionHandler.php',
> 'Livewire\\Controllers\\CanPretendToBeAFile' => __DIR__ . '/..' . '/livewire/livewire/src/Controllers/CanPretendToBeAFile.php',
> 'Livewire\\Controllers\\FilePreviewHandler' => __DIR__ . '/..' . '/livewire/livewire/src/Controllers/FilePreviewHandler.php',
> 'Livewire\\Controllers\\FileUploadHandler' => __DIR__ . '/..' . '/livewire/livewire/src/Controllers/FileUploadHandler.php',
> 'Livewire\\Controllers\\HttpConnectionHandler' => __DIR__ . '/..' . '/livewire/livewire/src/Controllers/HttpConnectionHandler.php',
> 'Livewire\\Controllers\\LivewireJavaScriptAssets' => __DIR__ . '/..' . '/livewire/livewire/src/Controllers/LivewireJavaScriptAssets.php',
> 'Livewire\\CreateBladeView' => __DIR__ . '/..' . '/livewire/livewire/src/CreateBladeView.php',
> 'Livewire\\DisableBrowserCache' => __DIR__ . '/..' . '/livewire/livewire/src/DisableBrowserCache.php',
> 'Livewire\\Event' => __DIR__ . '/..' . '/livewire/livewire/src/Event.php',
> 'Livewire\\Exceptions\\BypassViewHandler' => __DIR__ . '/..' . '/livewire/livewire/src/Exceptions/BypassViewHandler.php',
> 'Livewire\\Exceptions\\CannotBindToModelDataWithoutValidationRuleException' => __DIR__ . '/..' . '/livewire/livewire/src/Exceptions/CannotBindToModelDataWithoutValidationRuleException.php',
> 'Livewire\\Exceptions\\CannotUseReservedLivewireComponentProperties' => __DIR__ . '/..' . '/livewire/livewire/src/Exceptions/CannotUseReservedLivewireComponentProperties.php',
> 'Livewire\\Exceptions\\ComponentAttributeMissingOnDynamicComponentException' => __DIR__ . '/..' . '/livewire/livewire/src/Exceptions/ComponentAttributeMissingOnDynamicComponentException.php',
> 'Livewire\\Exceptions\\ComponentNotFoundException' => __DIR__ . '/..' . '/livewire/livewire/src/Exceptions/ComponentNotFoundException.php',
> 'Livewire\\Exceptions\\CorruptComponentPayloadException' => __DIR__ . '/..' . '/livewire/livewire/src/Exceptions/CorruptComponentPayloadException.php',
> 'Livewire\\Exceptions\\DirectlyCallingLifecycleHooksNotAllowedException' => __DIR__ . '/..' . '/livewire/livewire/src/Exceptions/DirectlyCallingLifecycleHooksNotAllowedException.php',
> 'Livewire\\Exceptions\\LivewirePageExpiredBecauseNewDeploymentHasSignificantEnoughChanges' => __DIR__ . '/..' . '/livewire/livewire/src/Exceptions/LivewirePageExpiredBecauseNewDeploymentHasSignificantEnoughChanges.php',
> 'Livewire\\Exceptions\\MethodNotFoundException' => __DIR__ . '/..' . '/livewire/livewire/src/Exceptions/MethodNotFoundException.php',
> 'Livewire\\Exceptions\\MissingFileUploadsTraitException' => __DIR__ . '/..' . '/livewire/livewire/src/Exceptions/MissingFileUploadsTraitException.php',
> 'Livewire\\Exceptions\\MissingRulesException' => __DIR__ . '/..' . '/livewire/livewire/src/Exceptions/MissingRulesException.php',
> 'Livewire\\Exceptions\\NonPublicComponentMethodCall' => __DIR__ . '/..' . '/livewire/livewire/src/Exceptions/NonPublicComponentMethodCall.php',
> 'Livewire\\Exceptions\\PropertyNotFoundException' => __DIR__ . '/..' . '/livewire/livewire/src/Exceptions/PropertyNotFoundException.php',
> 'Livewire\\Exceptions\\PublicPropertyNotFoundException' => __DIR__ . '/..' . '/livewire/livewire/src/Exceptions/PublicPropertyNotFoundException.php',
> 'Livewire\\Exceptions\\PublicPropertyTypeNotAllowedException' => __DIR__ . '/..' . '/livewire/livewire/src/Exceptions/PublicPropertyTypeNotAllowedException.php',
> 'Livewire\\Exceptions\\RootTagMissingFromViewException' => __DIR__ . '/..' . '/livewire/livewire/src/Exceptions/RootTagMissingFromViewException.php',
> 'Livewire\\Exceptions\\S3DoesntSupportMultipleFileUploads' => __DIR__ . '/..' . '/livewire/livewire/src/Exceptions/S3DoesntSupportMultipleFileUploads.php',
> 'Livewire\\Features\\OptimizeRenderedDom' => __DIR__ . '/..' . '/livewire/livewire/src/Features/OptimizeRenderedDom.php',
> 'Livewire\\Features\\Placeholder' => __DIR__ . '/..' . '/livewire/livewire/src/Features/Placeholder.php',
> 'Livewire\\Features\\SupportActionReturns' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportActionReturns.php',
> 'Livewire\\Features\\SupportBootMethod' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportBootMethod.php',
> 'Livewire\\Features\\SupportBrowserHistory' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportBrowserHistory.php',
> 'Livewire\\Features\\SupportChildren' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportChildren.php',
> 'Livewire\\Features\\SupportCollections' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportCollections.php',
> 'Livewire\\Features\\SupportComponentTraits' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportComponentTraits.php',
> 'Livewire\\Features\\SupportDateTimes' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportDateTimes.php',
> 'Livewire\\Features\\SupportEvents' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportEvents.php',
> 'Livewire\\Features\\SupportFileDownloads' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportFileDownloads.php',
> 'Livewire\\Features\\SupportFileUploads' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportFileUploads.php',
> 'Livewire\\Features\\SupportLocales' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportLocales.php',
> 'Livewire\\Features\\SupportPostDeploymentInvalidation' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportPostDeploymentInvalidation.php',
> 'Livewire\\Features\\SupportRedirects' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportRedirects.php',
> 'Livewire\\Features\\SupportRootElementTracking' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportRootElementTracking.php',
> 'Livewire\\Features\\SupportStacks' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportStacks.php',
> 'Livewire\\Features\\SupportValidation' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportValidation.php',
> 'Livewire\\FileUploadConfiguration' => __DIR__ . '/..' . '/livewire/livewire/src/FileUploadConfiguration.php',
> 'Livewire\\GenerateSignedUploadUrl' => __DIR__ . '/..' . '/livewire/livewire/src/GenerateSignedUploadUrl.php',
> 'Livewire\\HydrationMiddleware\\AddAttributesToRootTagOfHtml' => __DIR__ . '/..' . '/livewire/livewire/src/HydrationMiddleware/AddAttributesToRootTagOfHtml.php',
> 'Livewire\\HydrationMiddleware\\CallHydrationHooks' => __DIR__ . '/..' . '/livewire/livewire/src/HydrationMiddleware/CallHydrationHooks.php',
> 'Livewire\\HydrationMiddleware\\CallPropertyHydrationHooks' => __DIR__ . '/..' . '/livewire/livewire/src/HydrationMiddleware/CallPropertyHydrationHooks.php',
> 'Livewire\\HydrationMiddleware\\HashDataPropertiesForDirtyDetection' => __DIR__ . '/..' . '/livewire/livewire/src/HydrationMiddleware/HashDataPropertiesForDirtyDetection.php',
> 'Livewire\\HydrationMiddleware\\HydratePublicProperties' => __DIR__ . '/..' . '/livewire/livewire/src/HydrationMiddleware/HydratePublicProperties.php',
> 'Livewire\\HydrationMiddleware\\HydrationMiddleware' => __DIR__ . '/..' . '/livewire/livewire/src/HydrationMiddleware/HydrationMiddleware.php',
> 'Livewire\\HydrationMiddleware\\NormalizeComponentPropertiesForJavaScript' => __DIR__ . '/..' . '/livewire/livewire/src/HydrationMiddleware/NormalizeComponentPropertiesForJavaScript.php',
> 'Livewire\\HydrationMiddleware\\NormalizeDataForJavaScript' => __DIR__ . '/..' . '/livewire/livewire/src/HydrationMiddleware/NormalizeDataForJavaScript.php',
> 'Livewire\\HydrationMiddleware\\NormalizeServerMemoSansDataForJavaScript' => __DIR__ . '/..' . '/livewire/livewire/src/HydrationMiddleware/NormalizeServerMemoSansDataForJavaScript.php',
> 'Livewire\\HydrationMiddleware\\PerformActionCalls' => __DIR__ . '/..' . '/livewire/livewire/src/HydrationMiddleware/PerformActionCalls.php',
> 'Livewire\\HydrationMiddleware\\PerformDataBindingUpdates' => __DIR__ . '/..' . '/livewire/livewire/src/HydrationMiddleware/PerformDataBindingUpdates.php',
> 'Livewire\\HydrationMiddleware\\PerformEventEmissions' => __DIR__ . '/..' . '/livewire/livewire/src/HydrationMiddleware/PerformEventEmissions.php',
> 'Livewire\\HydrationMiddleware\\RenderView' => __DIR__ . '/..' . '/livewire/livewire/src/HydrationMiddleware/RenderView.php',
> 'Livewire\\HydrationMiddleware\\SecureHydrationWithChecksum' => __DIR__ . '/..' . '/livewire/livewire/src/HydrationMiddleware/SecureHydrationWithChecksum.php',
> 'Livewire\\ImplicitRouteBinding' => __DIR__ . '/..' . '/livewire/livewire/src/ImplicitRouteBinding.php',
> 'Livewire\\ImplicitlyBoundMethod' => __DIR__ . '/..' . '/livewire/livewire/src/ImplicitlyBoundMethod.php',
> 'Livewire\\LifecycleManager' => __DIR__ . '/..' . '/livewire/livewire/src/LifecycleManager.php',
> 'Livewire\\Livewire' => __DIR__ . '/..' . '/livewire/livewire/src/Livewire.php',
> 'Livewire\\LivewireBladeDirectives' => __DIR__ . '/..' . '/livewire/livewire/src/LivewireBladeDirectives.php',
> 'Livewire\\LivewireComponentsFinder' => __DIR__ . '/..' . '/livewire/livewire/src/LivewireComponentsFinder.php',
> 'Livewire\\LivewireManager' => __DIR__ . '/..' . '/livewire/livewire/src/LivewireManager.php',
> 'Livewire\\LivewireServiceProvider' => __DIR__ . '/..' . '/livewire/livewire/src/LivewireServiceProvider.php',
> 'Livewire\\LivewireTagCompiler' => __DIR__ . '/..' . '/livewire/livewire/src/LivewireTagCompiler.php',
> 'Livewire\\LivewireViewCompilerEngine' => __DIR__ . '/..' . '/livewire/livewire/src/LivewireViewCompilerEngine.php',
> 'Livewire\\Macros\\DuskBrowserMacros' => __DIR__ . '/..' . '/livewire/livewire/src/Macros/DuskBrowserMacros.php',
> 'Livewire\\Macros\\ViewMacros' => __DIR__ . '/..' . '/livewire/livewire/src/Macros/ViewMacros.php',
> 'Livewire\\ObjectPrybar' => __DIR__ . '/..' . '/livewire/livewire/src/ObjectPrybar.php',
> 'Livewire\\Redirector' => __DIR__ . '/..' . '/livewire/livewire/src/Redirector.php',
> 'Livewire\\Request' => __DIR__ . '/..' . '/livewire/livewire/src/Request.php',
> 'Livewire\\Response' => __DIR__ . '/..' . '/livewire/livewire/src/Response.php',
> 'Livewire\\TemporaryUploadedFile' => __DIR__ . '/..' . '/livewire/livewire/src/TemporaryUploadedFile.php',
> 'Livewire\\Testing\\Concerns\\HasFunLittleUtilities' => __DIR__ . '/..' . '/livewire/livewire/src/Testing/Concerns/HasFunLittleUtilities.php',
> 'Livewire\\Testing\\Concerns\\MakesAssertions' => __DIR__ . '/..' . '/livewire/livewire/src/Testing/Concerns/MakesAssertions.php',
> 'Livewire\\Testing\\Concerns\\MakesCallsToComponent' => __DIR__ . '/..' . '/livewire/livewire/src/Testing/Concerns/MakesCallsToComponent.php',
> 'Livewire\\Testing\\MakesHttpRequestsWrapper' => __DIR__ . '/..' . '/livewire/livewire/src/Testing/MakesHttpRequestsWrapper.php',
> 'Livewire\\Testing\\TestableLivewire' => __DIR__ . '/..' . '/livewire/livewire/src/Testing/TestableLivewire.php',
> 'Livewire\\WireDirective' => __DIR__ . '/..' . '/livewire/livewire/src/WireDirective.php',
> 'Livewire\\Wireable' => __DIR__ . '/..' . '/livewire/livewire/src/Wireable.php',
> 'Livewire\\WithFileUploads' => __DIR__ . '/..' . '/livewire/livewire/src/WithFileUploads.php',
> 'Livewire\\WithPagination' => __DIR__ . '/..' . '/livewire/livewire/src/WithPagination.php',
Changes
< 'Tightenco\\Ziggy\\BladeRouteGenerator' => __DIR__ . '/..' . '/tightenco/ziggy/src/BladeRouteGenerator.php',
< 'Tightenco\\Ziggy\\CommandRouteGenerator' => __DIR__ . '/..' . '/tightenco/ziggy/src/CommandRouteGenerator.php',
< 'Tightenco\\Ziggy\\Ziggy' => __DIR__ . '/..' . '/tightenco/ziggy/src/Ziggy.php',
< 'Tightenco\\Ziggy\\ZiggyServiceProvider' => __DIR__ . '/..' . '/tightenco/ziggy/src/ZiggyServiceProvider.php',
Changes
< $loader->prefixLengthsPsr4 = ComposerStaticInit1a366ea8c9013f37377c59393191f427::$prefixLengthsPsr4;
< $loader->prefixDirsPsr4 = ComposerStaticInit1a366ea8c9013f37377c59393191f427::$prefixDirsPsr4;
< $loader->prefixesPsr0 = ComposerStaticInit1a366ea8c9013f37377c59393191f427::$prefixesPsr0;
< $loader->classMap = ComposerStaticInit1a366ea8c9013f37377c59393191f427::$classMap;
---
> $loader->prefixLengthsPsr4 = ComposerStaticInitf2da6e83b085fd96649a1eced6ba9cbb::$prefixLengthsPsr4;
> $loader->prefixDirsPsr4 = ComposerStaticInitf2da6e83b085fd96649a1eced6ba9cbb::$prefixDirsPsr4;
> $loader->prefixesPsr0 = ComposerStaticInitf2da6e83b085fd96649a1eced6ba9cbb::$prefixesPsr0;
> $loader->classMap = ComposerStaticInitf2da6e83b085fd96649a1eced6ba9cbb::$classMap;
## vendor/composer/installed.json
Changes
< "name": "inertiajs/inertia-laravel",
< "version": "v0.5.2",
< "version_normalized": "0.5.2.0",
< "source": {
< "type": "git",
< "url": "https://github.com/inertiajs/inertia-laravel.git",
< "reference": "9c8c4201435aa0c11cb832242cf4c1b01bd8ef32"
< },
< "dist": {
< "type": "zip",
< "url": "https://api.github.com/repos/inertiajs/inertia-laravel/zipball/9c8c4201435aa0c11cb832242cf4c1b01bd8ef32",
< "reference": "9c8c4201435aa0c11cb832242cf4c1b01bd8ef32",
< "shasum": ""
< },
< "require": {
< "ext-json": "*",
< "laravel/framework": "^6.0|^7.0|^8.74|^9.0",
< "php": "^7.2|~8.0.0|~8.1.0"
< },
< "require-dev": {
< "mockery/mockery": "^1.3.3",
< "orchestra/testbench": "^4.0|^5.0|^6.4|^7.0",
< "phpunit/phpunit": "^8.0|^9.5.8",
< "roave/security-advisories": "dev-master"
< },
< "time": "2022-01-12T16:18:26+00:00",
< "type": "library",
< "extra": {
< "laravel": {
< "providers": [
< "Inertia\\ServiceProvider"
< ]
< }
< },
< "installation-source": "dist",
< "autoload": {
< "psr-4": {
< "Inertia\\": "src"
< },
< "files": [
< "./helpers.php"
< ]
< },
< "notification-url": "https://packagist.org/downloads/",
< "license": [
< "MIT"
< ],
< "authors": [
< {
< "name": "Jonathan Reinink",
< "email": "jonathan@reinink.ca",
< "homepage": "https://reinink.ca"
< }
< ],
< "description": "The Laravel adapter for Inertia.js.",
< "keywords": [
< "inertia",
< "laravel"
< ],
< "support": {
< "issues": "https://github.com/inertiajs/inertia-laravel/issues",
< "source": "https://github.com/inertiajs/inertia-laravel/tree/v0.5.2"
< },
< "funding": [
< {
< "url": "https://github.com/reinink",
< "type": "github"
< }
< ],
< "install-path": "../inertiajs/inertia-laravel"
< },
< {
Changes
> "name": "livewire/livewire",
> "version": "v2.9.0",
> "version_normalized": "2.9.0.0",
> "source": {
> "type": "git",
> "url": "https://github.com/livewire/livewire.git",
> "reference": "e117c78f9a4b19edb294b5b576138fd1f896925a"
> },
> "dist": {
> "type": "zip",
> "url": "https://api.github.com/repos/livewire/livewire/zipball/e117c78f9a4b19edb294b5b576138fd1f896925a",
> "reference": "e117c78f9a4b19edb294b5b576138fd1f896925a",
> "shasum": ""
> },
> "require": {
> "illuminate/database": "^7.0|^8.0",
> "illuminate/support": "^7.0|^8.0",
> "illuminate/validation": "^7.0|^8.0",
> "php": "^7.2.5|^8.0",
> "symfony/http-kernel": "^5.0"
> },
> "require-dev": {
> "calebporzio/sushi": "^2.1",
> "laravel/framework": "^7.0|^8.0",
> "mockery/mockery": "^1.3.1",
> "orchestra/testbench": "^5.0|^6.0",
> "orchestra/testbench-dusk": "^5.2|^6.0",
> "phpunit/phpunit": "^8.4|^9.0",
> "psy/psysh": "@stable"
> },
> "time": "2022-01-13T20:07:05+00:00",
> "type": "library",
> "extra": {
> "laravel": {
> "providers": [
> "Livewire\\LivewireServiceProvider"
> ],
> "aliases": {
> "Livewire": "Livewire\\Livewire"
> }
> }
> },
> "installation-source": "dist",
> "autoload": {
> "files": [
> "src/helpers.php"
> ],
> "psr-4": {
> "Livewire\\": "src/"
> }
> },
> "notification-url": "https://packagist.org/downloads/",
> "license": [
> "MIT"
> ],
> "authors": [
> {
> "name": "Caleb Porzio",
> "email": "calebporzio@gmail.com"
> }
> ],
> "description": "A front-end framework for Laravel.",
> "support": {
> "issues": "https://github.com/livewire/livewire/issues",
> "source": "https://github.com/livewire/livewire/tree/v2.9.0"
> },
> "funding": [
> {
> "url": "https://github.com/livewire",
> "type": "github"
> }
> ],
> "install-path": "../livewire/livewire"
> },
> {
Changes
< "name": "tightenco/ziggy",
< "version": "v1.4.2",
< "version_normalized": "1.4.2.0",
< "source": {
< "type": "git",
< "url": "https://github.com/tighten/ziggy.git",
< "reference": "620c135281062b9f6b53a75b07f99a4339267277"
< },
< "dist": {
< "type": "zip",
< "url": "https://api.github.com/repos/tighten/ziggy/zipball/620c135281062b9f6b53a75b07f99a4339267277",
< "reference": "620c135281062b9f6b53a75b07f99a4339267277",
< "shasum": ""
< },
< "require": {
< "laravel/framework": ">=5.4@dev"
< },
< "require-dev": {
< "orchestra/testbench": "^6.0",
< "phpunit/phpunit": "^9.2"
< },
< "time": "2021-10-01T13:55:26+00:00",
< "type": "library",
< "extra": {
< "laravel": {
< "providers": [
< "Tightenco\\Ziggy\\ZiggyServiceProvider"
< ]
< }
< },
< "installation-source": "dist",
< "autoload": {
< "psr-4": {
< "Tightenco\\Ziggy\\": "src/"
< }
< },
< "notification-url": "https://packagist.org/downloads/",
< "license": [
< "MIT"
< ],
< "authors": [
< {
< "name": "Daniel Coulbourne",
< "email": "daniel@tighten.co"
< },
< {
< "name": "Jake Bathman",
< "email": "jake@tighten.co"
< },
< {
< "name": "Jacob Baker-Kretzmar",
< "email": "jacob@tighten.co"
< }
< ],
< "description": "Generates a Blade directive exporting all of your named Laravel routes. Also provides a nice route() helper function in JavaScript.",
< "homepage": "https://github.com/tighten/ziggy",
< "keywords": [
< "Ziggy",
< "javascript",
< "laravel",
< "routes"
< ],
< "support": {
< "issues": "https://github.com/tighten/ziggy/issues",
< "source": "https://github.com/tighten/ziggy/tree/v1.4.2"
< },
< "install-path": "../tightenco/ziggy"
< },
< {
## vendor/composer/installed.php
Changes
< 'inertiajs/inertia-laravel' => array(
< 'pretty_version' => 'v0.5.2',
< 'version' => '0.5.2.0',
< 'type' => 'library',
< 'install_path' => __DIR__ . '/../inertiajs/inertia-laravel',
< 'aliases' => array(),
< 'reference' => '9c8c4201435aa0c11cb832242cf4c1b01bd8ef32',
< 'dev_requirement' => false,
< ),
Changes
> 'livewire/livewire' => array(
> 'pretty_version' => 'v2.9.0',
> 'version' => '2.9.0.0',
> 'type' => 'library',
> 'install_path' => __DIR__ . '/../livewire/livewire',
> 'aliases' => array(),
> 'reference' => 'e117c78f9a4b19edb294b5b576138fd1f896925a',
> 'dev_requirement' => false,
> ),
Changes
< 'tightenco/ziggy' => array(
< 'pretty_version' => 'v1.4.2',
< 'version' => '1.4.2.0',
< 'type' => 'library',
< 'install_path' => __DIR__ . '/../tightenco/ziggy',
< 'aliases' => array(),
< 'reference' => '620c135281062b9f6b53a75b07f99a4339267277',
< 'dev_requirement' => false,
< ),
## Only invendor: inertiajs
## Only inlaravel-starter-jetstream-livewire/vendor: livewire
## Only invendor: tightenco
## Only inlaravel-starter-jetstream-inertia: webpack.config.js
webpack.mix.js
Changes
< mix.js('resources/js/app.js', 'public/js').vue()
---
> mix.js('resources/js/app.js', 'public/js')
Changes
< ])
< .webpackConfig(require('./webpack.config'));
---
> ]);
Google Cloud Platform | Tipps und Tricks
Tipps und Tricks im Internet
Big Query – SQL
SELECT – exclude special fields
select * except(title, comment) from publicdata.samples.wikipedia limit 10
Authentication
JWT Token
Laravel | Tipps und Tricks
Starter
laravel new --jet --stack livewire --teams app
Views
Navigation Menu
resources/views/navigation-menu.blade.php
<!-- Navigation Links -->
<div class="hidden space-x-8 sm:-my-px sm:ml-10 sm:flex">
<x-jet-nav-link href="{{ route('dashboard') }}"
:active="request()->routeIs('dashboard')">
{ __('Dashboard') }}
</x-jet-nav-link>
</div>
<div class="hidden space-x-8 sm:-my-px sm:ml-10 sm:flex">
<x-jet-nav-link href="{{ route('particles') }}"
:active="request()->routeIs('particles')">
{{ __('Particles') }}
</x-jet-nav-link>
</div>
Display Laravel and PHP Version
<div>
Laravel v{{ Illuminate\Foundation\Application::VERSION }}
(PHP v{{ PHP_VERSION }})
</div>
Create new View and Component
php artisan make:component NewComponent
app/View/Components/NewComponent.php
resources/views/components/new-component.blade.php
Command Line
Create new command make:view
php artisan make:command MakeViewCommand
app/Console/Commands/MakeViewCommand.php
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use File;
class MakeViewCommand extends Command
{
protected $signature = 'make:view {view}';
protected $description = 'Create a new blade template.';
public function __construct()
{
parent::__construct();
}
public function handle()
{
$view = $this->argument('view');
$path = $this->viewPath($view);
$this->createDir($path);
if (File::exists($path))
{
$this->error("File {$path} already exists!");
return;
}
File::put($path, $path);
$this->info("File {$path} created.");
}
public function viewPath($view)
{
$view = str_replace('.', '/', $view) . '.blade.php';
return "resources/views/{$view}";
}
public function createDir($path)
{
$dir = dirname($path);
if (!file_exists($dir))
{
mkdir($dir, 0777, true);
}
}
}
Database
SQLite
Create an empty SQLite Database
sqlite3 database.sqlite "create table t(f int); drop table t;"
Links
https://laravel-news.com/learning-laravel-in-2021
https://laravel.com/docs/8.xTutorial
https://www.tutsmake.com/laravel-interview-questions-answers-for-1235-year-experience/
https://learn2torials.com/category/laravelDatabase
Blade
Blog erstellen