Wiki - Häufig verwendete Befehle

Auf dieser Seite finden Sie eine Auflistung häufig verwendeter Befehle. Sie wurde eingerichtet, um sowohl für Sie als auch für uns eine Referenz zu schaffen


#################################################
# Symfony Grundeinrichtung eines Projekts
# Skeleton app erstellen
composer create-project symfony/skeleton [my-app-name]

# Make command installieren
composer require make

# Twig installieren
composer require twig

# Annotations installieren
composer require doctrine/annotations

# Apache-Pack installieren (damit url rewrite funktioniert)
composer require symfony/apache-pack

# Doctrine installieren
composer require doctrine

# Forms hinzufügen
composer require form

#Security Bundle installieren:
composer require security

#################################################
# Symfony - häufig verwendete Befehle.
# Controller erstellen (Name für den Controller bspw.: IndexController)
# Route ändern nicht vergessen.
php bin/console make:controller

# Alle Routen anzeigen lassen.
php bin/console debug:router

# Entität anlegen oder erweitern.
# Entitäten immer in dieser Form anlegen für ein einheitliches Schema: PropertyName ->
# also Großbuchstaben am Anfang, mehrere Worte in CamelCase.
php bin/console make:entity

# User-Entity hinzufügen.
php bin/console make:user

# Update der Datenbank-Felder forciert vornehmen (ohne Migration).
php bin/console doctrine:schema:update --force

# Formular anlegen.
php bin/console make:form

# Authentifizierung hinzufügen (Login form authenticator macht das einfacher).
# In CustomAuthenticator die Redirect Route für den Redirect eintragen, der nach dem Login erfolgen soll.
php bin/console make:auth


#################################################
# Twig Doku:
https://twig.symfony.com/doc

#################################################
# Symfony Controllers
# Erzeuge eine URL ohne Argumente:
$signUpPage = $this->generateUrl('sign_up');

# Erzeuge eine URL mit Argumenten:
$userProfilePage = $this->generateUrl('user_profile', [
	'username' => $user->getUserIdentifier(),
]);

# Erzeuge URL mit absolutem Pfad (dritter Parameter kommt hinzu)
# Nicht vergessen das UrlGeneratorInterface mit einzubinden: use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
$confirmationUrl = $this->generateUrl('registration_confirm', [], UrlGeneratorInterface::ABSOLUTE_URL);

#################################################
# PHP Installation.
sudo apt-get install php8.1 php8.1-cli php8.1-common php8.1-curl php8.1-gd php8.1-intl\
php8.1-mbstring php8.1-mysql php8.1-xml php8.1-zip php8.1-opcache php8.1-readline

# Vorherige PHP Version deaktivieren in Apache.
sudo a2dismod php7.4

# Neue PHP Version aktivieren in Apache.
sudo a2enmod php8.1

# Server neustarten nicht vergessen.
sudo systemctl restart apache2

# Get Query String
$request->getQueryString();

# Get Content of Post Query as a string
$requestContents = $request->getContent();

# Get a single get variable
$getvar = $request->query->get('getvar');

# Get a single post variable (ACHTUNG - Hier im Gegensatz zu POST kein $request->query
$timestamp = $request->get('timestamp');

# Eintrag aus einem Request Header abfragen (das ist so mega easy, danke Symfony!)
$shopwareShopSignature = $request->headers->get('shopware-shop-signature');



#################################################
# Letsencrypt für Apache auf einem Ubuntu Server einrichten

sudo apt install certbot python3-certbot-apache

sudo ufw status
sudo ufw allow 'Apache Full'
sudo ufw delete allow 'Apache'

sudo certbot --apache
-> domains auswählen die geschützt werden sollen

# Renewal sicherstellen
# ACHTUNG -> öffnet File in vim! :q
sudo systemctl status certbot.timer

# Testen
sudo certbot renew --dry-run


################################################
# MySQL
CREATE DATABASE databasename;
CREATE USER 'username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'my-strong-password-here';
GRANT ALL PRIVILEGES ON databasename.* TO 'username'@'localhost' WITH GRANT OPTION;


################################################
# Shopware

# Theme kompilieren und Cache leeren.
bin/console theme:compile
bin/console cache:clear

# Javascript und ähnlichen Storefront Kram kompilieren
# Hier direkt mit bash, weil sh unter Umständen nicht funktioniert, wenn die falsche Shell dahinter steckt.
bash bin/build-storefront.sh

# App deinstallieren/installieren
sudo bin/console app:install --activate MeinTechnischerAppName
sudo bin/console app:uninstall MeinTechnischerAppName


################################################
# Arbeiten mit Archiven

# Einfaches Tar Verzeichnis erstellen.
tar -cvf archive.tar <source_file_directory>

# Einfaches Tar Verzeichnis entpacken.
# Entpackt die Dateien im aktuellen Ordner. Wenn das Archiv keinen direkten Unterordner enthält, wird auch keiner erstellt.
tar -xvf <tar_archive>

# Verzeichnis im Format tar.gz erzeugen.
tar -cvzf ants.tar.gz <source_file_directory>

# tar.gz Verzeichnis entpacken.
tar -xvzf <tar_gz_archive>

################################################
# htaccess

# Rewrite Engine einschalten
<IfModule mod_rewrite.c>
RewriteEngine On
</IfModule>

# Weiterleiten von www auf nicht www
RewriteCond %{HTTP_HOST} ^www\.domain\.tld$ [NC]
RewriteRule ^(.*)$ http://domain.tld/$1 [L,R=301]

# Weiterleiten von http auf https
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{HTTP_HOST}/$1 [R=301,L]