您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 
 
 
Daniel b23b824ab3 path fix 9 个月前
..
.ddev base data done including test data 1年前
bin be 1年前
config trips and trip locations 1年前
migrations wip itinerary entries 10 个月前
public removd all migrations and created a single one 11 个月前
src path fix 9 个月前
templates be 1年前
.env be 1年前
.gitignore gitignore 1年前
1deployImaq.sh sh script update 1年前
README.md login fix? 1年前
composer.json excel import 9 个月前
composer.lock excel import 9 个月前
exportApi.sh wip 1年前
symfony.lock bugfix "members" as result of new api platform responses, login, users 1年前

README.md

matsen-tool-be

Most needed commands

ddev exec bin/console make:migration
ddev exec bin/console doctrine:migration:migrate
ddev exec bin/console doctrine:fixtures:load
ddev exec php bin/console doctrine:fixtures:load --append (nur neue Datensaätz, nicht Datenbank löschen!)
ddev exec bin/console make:entity
ddev exec bin/console make:factory
ddev exec php bin/phpunit
ddev exec php bin/phpunit --filter=testPostToCreateNewUserPost

Installation:

gehe ins root Verzeichnis des Projekts und für aus: ddev config

gehe den Installationsprozess durch (3x Enter drücken)

starte danach ddev mit: ddev start

projekt installieren: ddev composer install

Troubleshooting:

Unable to listen on required ports, port 443 is already in use:
-> setze andere Ports in .ddev/config.yaml z.B.
router_http_port: 8080
router_https_port: 8443

- https://stackoverflow.com/questions/76507208/symfony-6-3-migration-causes-problems-with-stateless-authenticators-forcing-requ

Xdebug not working at all:
ddev logs -> xdebug problems? like:
    "NOTICE: PHP message: Xdebug: [Step Debug] Could not connect to debugging client. Tried: 172.27.0.1:9003 (from HTTP_X_FORWARDED_FOR HTTP header), host.docker.internal:9003 (fallback through xdebug.client_host/xdebug.client_port)."

- https://stackoverflow.com/questions/31324981/how-to-access-host-port-from-docker-container/43541732#43541732
-> create folder "php" in ".ddev"-folder, create a file "xdebug.ini" (here could be also a php.ini - settings made override ddev php.ini) and insert this line into xdebug.ini: xdebug.client_host=docker.for.mac.localhost
    -> ddev restart afterwards

Xdebug: When one is not working, use the other.
  xdebug.client_host=host.docker.internal
  ;xdebug.client_host=docker.for.mac.localhost

telnet: Unable to connect to remote host: Connection refused

PHPMyAdmin installieren:

ddev get ddev/ddev-phpmyadmin

ddev restart

Symfony Konsolenbefehle mit Ddev ausführen, z.B.:

ddev exec php bin/console make:migration

Ddev Commands:

ddev describe - zeigt Urls und installierte Komponenten

Xdebug

ddev ssh -> export XDEBUG_CONFIG="idekey=PHPSTORM"
  • Cli Skript xebug läuft nicht korrekt:
    • ddev ssh
    • in Terminal: PHP_IDE_CONFIG="serverName=matsen-tool-be.ddev.site”
    • Servername ist hier konfiguriert:

Symfony:

User with Maker Bundle:

- https://symfonycasts.com/screencast/api-platform/user-entity
ddev composer require maker-bundle --dev
ddev exec bin/console make:user -> erstellt user entity und schreibt in die security.yaml

Entity erzeugen oder erweitern:

ddev exec bin/console make:entity

Foundry fixtures:

ddev exec composer require foundry orm-fixtures --dev
ddev exec bin/console make:factory
ddev exec bin/console doctrine:fixtures:load

Doctrine:

ddev exec bin/console doctrine:database:drop --force
ddev exec bin/console doctrine:database:create

- Testdatenbank anlegen:
    ddev exec bin/console doctrine:database:create --env=test
    ddev exec bin/console doctrine:schema:create --env=test

- Migrations:
ddev exec bin/console make:migration
ddev exec bin/console doctrine:migration:migrate

Profiler

ddev composer require debug

Php Unit

- https://symfony.com/doc/current/testing.html#configuring-a-database-for-tests
Setup:
    # .env.test.local -> "mysql://root:root@db:3306/db?serverVersion=10.4.30-MariaDB-1:10.4.30+maria~ubu2004-log - mariadb.org binary distribution"
        -> this creates a db named db_test (it takes the name of the main database "db" and adds "_test" to its name)
    # Create db and create schema
        php bin/console --env=test doctrine:database:create
        php bin/console --env=test doctrine:schema:create

- https://symfonycasts.com/screencast/api-platform-security/test-setup
ddev composer require test -> testpack incl. phpunit
ddev composer require zenstruck/browser --dev -> browser test package to imporve testing
    -> add extension to phpunit.xml.dist
            <extensions>
                <extension class="Zenstruck\Browser\Test\BrowserExtension" />
            </extensions>

ddev exec php bin/phpunit --filter=testPostToCreateNewUserPost

ddev composer require --dev mtdowling/jmespath.php

Api Platform

- https://api-platform.com/docs/core/dto/
- https://api-platform.com/docs/distribution/
- https://api-platform.com/docs/core/extending/

Installation: ddev composer require api

Micro Mapper: ddev composer require symfonycasts/micro-mapper

Vich Uploader bundle: ddev composer require vich/uploader-bundle

Foundry: composer require --dev foundry orm-fixtures

Ausführen, um openApi.yaml und openApi.json zu generieren:
- cd export
- php exportApi.php
openApi.yaml und openApi.json in Frontend-Projekt (root) kopieren

Lexik JWT

- https://symfony.com/bundles/LexikJWTAuthenticationBundle/current/index.html
- Nur bei NEU Installation:
    - php bin/console lexik:jwt:generate-keypair

- Open Api export:
    ddev exec bin/console api:openapi:export --yaml >> openapi.yaml
- File Uploading:
    https://api-platform.com/docs/core/file-upload/
    https://github.com/dustin10/VichUploaderBundle/blob/master/docs/index.md

- TOKEN auf Terminal generieren: bin/console lexik:jwt:generate-token {user-email}

List Routes and Service Tags

- ddev exec bin/console debug:router
- ddev exec bin/console debug:container

Constraints

- https://symfony.com/doc/current/validation.html

LIVE DEPLOYMENT

- URL is https://matsen.spawntree.de
- Clear DB: https://spawntree.de:8443
- Run shell script in: /var/www/vhosts/spawntree.de/matsen-api.spawntree.de/httpdocs
- (If JWT PEM files don't exist in /config/jwt: bin/console lexik:jwt:generate-keypair)
- Frontend: ng build --configuration=development --aot
- Delete all files in /matsen.spawntree.de/matsen-tool/browser via FTP
- Copy content of /matsen-tool/dist/matsen-tool/browser into /matsen.spawntree.de/matsen-tool/browser

Gecko Firefox driver

- WICHTIG: chmod +x .ddev/post-start.sh (die Datei muss ausführbar sein)
- beim live deployment muss der driver per Linux installiert werden

- manuell mit ddev ssh:
    sudo apt-get install -y firefox-esr

    wget -q https://github.com/mozilla/geckodriver/releases/download/v$GECKODRIVER_VERSION/geckodriver-v$GECKODRIVER_VERSION-linux64.tar.gz \
    && tar -xzf geckodriver-v$GECKODRIVER_VERSION-linux64.tar.gz -C /usr/local/bin \
    && rm geckodriver-v$GECKODRIVER_VERSION-linux64.tar.gz \
    && chmod +x /usr/local/bin/geckodriver

Nord vpn

- https://support.nordvpn.com/hc/de/articles/20398283005457-Installation-und-Gebrauch-von-NordVPN-unter-RHEL-und-CentOS-Linux

apache 403 beim sortieren nach “profile”

Ja, wenn Sie Plesk verwenden, gibt es tatsächlich Möglichkeiten, Whitelist-Regeln für ModSecurity einzurichten. Hier sind die Schritte, die Sie in Plesk unternehmen können:

Öffnen Sie das Plesk Control Panel.
Navigieren Sie zu "Websites & Domains" und wählen Sie die betroffene Domain aus.
Suchen Sie nach "Apache & nginx Settings" oder "Web-Server-Einstellungen" (je nach Ihrer Plesk-Version).
Scrollen Sie nach unten zum Abschnitt "Additional Apache directives" oder "Zusätzliche Apache-Direktiven".
Hier können Sie benutzerdefinierte Apache-Konfigurationen hinzufügen, einschließlich ModSecurity-Regeln.
Fügen Sie eine Whitelist-Regel wie folgt hinzu:

<IfModule mod_security2.c>
  SecRule REQUEST_URI "^/api/game_accounts" \
    "id:1000,\
    phase:1,\
    pass,\
    nolog,\
    ctl:ruleRemoveById=210580"
</IfModule>