選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
FlorianEisenmenger e52dd3a601 fix partner 1日前
.ddev fixed bugs and unit tests 2年前
.docs contacts 2年前
bin initial with ddev 2年前
config config 1年前
export imported data 1年前
migrations imported data 1年前
public fixture data done 2年前
src fix partner 1日前
templates initial with ddev 2年前
tests several things 1年前
translations initial with ddev 2年前
.env imported data 1年前
.env.test initial with ddev 2年前
.gitignore imported data 1年前
1deployMatsenApi.sh deployment changes 1年前
1localdeployMatsenApi.sh g 1年前
README.md readme 1年前
composer.json imported data 1年前
composer.lock imported data 1年前
phpunit.xml.dist first setup wip 2年前
symfony.lock normalization of media object 2年前

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 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/

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

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