susi.dev
https://susi.dev/blog
Personal site and blog of Susien-us[email protected] (Susi)[email protected] (Susi)Wed, 08 Nov 2023 00:00:00 GMThttps://susi.dev/blog/local-development-with-traefik-mkcertLocal (PHP) Development with HTTPS, Traefik, mkcert and Docker
https://susi.dev/blog/local-development-with-traefik-mkcert
Discover Traefik and mkcert setup for HTTPS and local development. Configure Traefik, generate SSL certs, and manage (PHP) projects efficiently.Wed, 08 Nov 2023 00:00:00 GMT[email protected] (Susi)dockertraefikmkcerthttpshttps://susi.dev/blog/sentry-typo3Sentry & TYPO3
https://susi.dev/blog/sentry-typo3
Integrate Sentry with TYPO3 for real-time error tracking and performance monitoring: installation, configuration, and best practices.Fri, 04 Aug 2023 00:00:00 GMT[email protected] (Susi)sentrytypo3phpmonitoringerror trackinghttps://susi.dev/blog/add-navigation-icons-to-typo3Add Navigation Icons to TYPO3
https://susi.dev/blog/add-navigation-icons-to-typo3
Navigation icons can be a great addition to your TYPO3 website, providing a visual representation of different pages in the navigation menu.Tue, 01 Aug 2023 00:00:00 GMT[email protected] (Susi)typo3navigationiconstcaphphttps://susi.dev/blog/setting-up-persistent-local-volumes-on-docker-desktop-kubernetes-wsl2-or-macSetting Up Persistent Local Volumes on Docker Desktop Kubernetes (WSL2 or Mac)
https://susi.dev/blog/setting-up-persistent-local-volumes-on-docker-desktop-kubernetes-wsl2-or-mac
Set up persistent local volumes on Docker Desktop’s Kubernetes (WSL2 or Mac). Create PV/PVC, bind to a path, and keep data across pod restarts.Fri, 21 Jul 2023 00:00:00 GMT[email protected] (Susi)kubernetesdocker-desktopwsl2macpersistent-volumesdockerhttps://susi.dev/blog/use-gitlab-typo3-project-templateUse GitLab TYPO3 Project Template
https://susi.dev/blog/use-gitlab-typo3-project-template
GitLab provides a TYPO3 project template. Learn how to start a new project from it, run it locally with Docker, and leverage built-in CI.Fri, 16 Dec 2022 00:00:00 GMT[email protected] (Susi)gitlabtypo3templatecidockerhttps://susi.dev/blog/change-docroot-of-ddev-based-typo3Change document root of DDEV based TYPO3
https://susi.dev/blog/change-docroot-of-ddev-based-typo3
How to change the docroot of a TYPO3 composer-based install while using DDEV — switch from public to html and adjust DDEV settings.Fri, 25 Mar 2022 00:00:00 GMT[email protected] (Susi)ddevtypo3composerdocroothttps://susi.dev/blog/ddev-shopware-6Installing / Developing Shopware 6 with DDEV
https://susi.dev/blog/ddev-shopware-6
Complete guide to set up Shopware 6 on DDEV: installation, Elasticsearch, storefront/administration build & watch, HTTPS/ports, and useful tips.Tue, 08 Feb 2022 00:00:00 GMT[email protected] (Susi)ddevshopwaredockerhttps://susi.dev/blog/typo3-cli-command-extbase-data-import-validationTYPO3 CLI/Symfony Command, Extbase Data Import & Validation
https://susi.dev/blog/typo3-cli-command-extbase-data-import-validation
Use a TYPO3 Symfony Console command to import data, validate entities via Extbase, and persist them with your Extbase repository.Sun, 06 Feb 2022 00:00:00 GMT[email protected] (Susi)typo3extbaseclisymfonyvalidationhttps://susi.dev/blog/structure-symfony-dependency-injection-yamlImport / Structure Symfony Service Definition YAML Files (e.g. in TYPO3)
https://susi.dev/blog/structure-symfony-dependency-injection-yaml
Import definitions from separate Symfony Dependency Injection YAML files to keep services.yaml small and maintainable (works well in TYPO3 projects).Sat, 22 Jan 2022 00:00:00 GMT[email protected] (Susi)symfonyyamldependency-injectiontypo3serviceshttps://susi.dev/blog/typo3-symfony-encore-tailwindTYPO3, Symfony Encore, Webpack & Tailwind CSS
https://susi.dev/blog/typo3-symfony-encore-tailwind
Build a TYPO3 website with Tailwind CSS and Symfony Encore/Webpack: install, configure, and integrate assets in Fluid templates.Sat, 01 Jan 2022 00:00:00 GMT[email protected] (Susi)typo3symfonyencorewebpacktailwind-csshttps://susi.dev/blog/create-typo3-backend-moduleTYPO3 Backend Module Essentials
https://susi.dev/blog/create-typo3-backend-module
TYPO3 Backend Module Registration — how to register a custom TYPO3 backend module, render it with Fluid templates and register custom icons or CSS.Wed, 15 Dec 2021 00:00:00 GMT[email protected] (Susi)typo3backendmodulefluidphphttps://susi.dev/blog/ddev-xdebug-troubleshootingDDEV Xdebug Troubleshooting
https://susi.dev/blog/ddev-xdebug-troubleshooting
Fixing Xdebug step debugging in DDEV when the client can’t connect on port 9003, especially on WSL2 and PHPStorm.Fri, 26 Nov 2021 00:00:00 GMT[email protected] (Susi)ddevxdebugphpstormdockerwsl2https://susi.dev/blog/auto-language-detectionTYPO3: Autolanguage detection with PSR-15
https://susi.dev/blog/auto-language-detection
Implement automatic language detection in TYPO3 using a PSR-15 middleware that redirects users based on Accept-Language or custom logic.Sat, 20 Nov 2021 00:00:00 GMT[email protected] (Susi)typo3psr-15middlewarei18nlanguage detectionhttps://susi.dev/blog/fluid-locale-awareLocale-aware formatting in Fluid
https://susi.dev/blog/fluid-locale-aware
Format dates, numbers, and currencies locale-aware in TYPO3 Fluid templates.Sat, 20 Nov 2021 00:00:00 GMT[email protected] (Susi)typo3fluidlocalizationi18nhttps://susi.dev/blog/fully-integrate-ddev-and-phpstorm-including-unit-tests-with-coverage-update-2021Fully integrate DDEV and PhpStorm (incl. unit tests with coverage) — Update 2021
https://susi.dev/blog/fully-integrate-ddev-and-phpstorm-including-unit-tests-with-coverage-update-2021
Run tests with coverage and debug inside DDEV from PhpStorm: interpreters, path mappings, Xdebug, and PHPUnit config.Sat, 20 Nov 2021 00:00:00 GMT[email protected] (Susi)ddevphpstormxdebugcoveragephpunithttps://susi.dev/blog/php-8-on-wsl2-ubuntuCompile PHP8 on Windows WSL2 Ubuntu
https://susi.dev/blog/php-8-on-wsl2-ubuntu
Build (and alternatively install) PHP 8 on WSL2 Ubuntu: prerequisites, configure flags, make install, switching versions, and troubleshooting.Sat, 20 Nov 2021 00:00:00 GMT[email protected] (Susi)phpwsl2ubuntubuildcompilehttps://susi.dev/blog/php-performance-over-timePHP Performance Over Time
https://susi.dev/blog/php-performance-over-time
A look at PHP performance evolution across versions based on common micro-benchmarks and real-world tasks.Sat, 20 Nov 2021 00:00:00 GMT[email protected] (Susi)phpperformancebenchmarkshttps://susi.dev/blog/php8-benchmark-jit-symfonyPHP 8 JIT Benchmarks (Symfony context)
https://susi.dev/blog/php8-benchmark-jit-symfony
Exploring PHP 8’s JIT impact in a Symfony-style workload: expectations vs. reality.Sat, 20 Nov 2021 00:00:00 GMT[email protected] (Susi)php8jitsymfonyperformancehttps://susi.dev/blog/phpdbg-for-coverageGenerate Code Coverage with native PHP Debugger (no Xdebug required)
https://susi.dev/blog/phpdbg-for-coverage
Use phpdbg to generate PHPUnit coverage without Xdebug – faster startup, simple CI usage, and easy IDE integration.Sat, 20 Nov 2021 00:00:00 GMT[email protected] (Susi)phpcoveragephpdbgphpunitcihttps://susi.dev/blog/typo3-cropvariantsTYPO3: Using image crop variants with focus and cover areas
https://susi.dev/blog/typo3-cropvariants
Configure and use TYPO3 image crop variants (focus/cover areas) in TCA and Fluid to deliver correctly cropped/responsive images.Sat, 20 Nov 2021 00:00:00 GMT[email protected] (Susi)frontendintegrationtypo3https://susi.dev/blog/typo3-extend-configuration-moduleTYPO3: Extending the configuration module
https://susi.dev/blog/typo3-extend-configuration-module
Extend the TYPO3 Configuration backend module to expose custom settings, readers, or debug info for your extensions.Sat, 20 Nov 2021 00:00:00 GMT[email protected] (Susi)typo3phphttps://susi.dev/blog/typo3-tests-php8Run TYPO3 Tests with PHP8
https://susi.dev/blog/typo3-tests-php8
Run TYPO3 core/extension tests with PHP 8 locally: requirements, Composer constraints, and invoking the test runner.Sat, 20 Nov 2021 00:00:00 GMT[email protected] (Susi)typo3phptestinghttps://susi.dev/blog/typo3-tree-data-providerTYPO3 TCA Tree with non-database items
https://susi.dev/blog/typo3-tree-data-provider
Provide a TCA tree (renderType=selectTree) backed by a custom data provider (non‑DB source) for configuration-like selections.Sat, 20 Nov 2021 00:00:00 GMT[email protected] (Susi)typo3phpintegrationhttps://susi.dev/blog/typo3-symfony-debugTYPO3 <3 Symfony: dump() + dd()
https://susi.dev/blog/typo3-symfony-debug
Use Symfony VarDumper’s dump()/dd() effectively in TYPO3 for quick, readable debugging in CLI and backend contexts.Fri, 19 Nov 2021 00:00:00 GMT[email protected] (Susi)typo3symfonyphphttps://susi.dev/blog/useful-commandsUseful Commands
https://susi.dev/blog/useful-commands
Handy Bash and SQL snippets I reach for regularly: search/replace, one‑liners, and maintenance helpers.Fri, 19 Nov 2021 00:00:00 GMT[email protected] (Susi)toolsproductivityhttps://susi.dev/blog/prometheus-grafana-loki-with-docker-composePrometheus + Grafana + Loki with docker-compose
https://susi.dev/blog/prometheus-grafana-loki-with-docker-compose
Spin up a local observability stack (Prometheus for metrics, Loki for logs, Grafana for dashboards) using docker-compose with minimal configs.Thu, 18 Nov 2021 00:00:00 GMT[email protected] (Susi)dockerprometheusgrafanalokiobservabilitylogsmetricshttps://susi.dev/blog/typo3-psr15-middleware-add-headerPSR-15 Middleware: Add custom header in TYPO3
https://susi.dev/blog/typo3-psr15-middleware-add-header
Small PSR‑15 middleware example for TYPO3: register a middleware that appends a custom HTTP response header.Thu, 18 Nov 2021 00:00:00 GMT[email protected] (Susi)typo3psr-15middlewarephphttps://susi.dev/blog/create-date-table-in-microsoft-power-biCreate Date Table in Microsoft Power BI
https://susi.dev/blog/create-date-table-in-microsoft-power-bi
Create a reusable custom date table in Power BI using Power Query (M) with fiscal year support and handy helper columns.Wed, 21 Jul 2021 00:00:00 GMT[email protected] (Susi)power bimdate tablepower queryhttps://susi.dev/blog/mock-http-api-responses-with-guzzle-psr-18-psr-7Mock HTTP API Responses with Guzzle (PSR-18/PSR-7)
https://susi.dev/blog/mock-http-api-responses-with-guzzle-psr-18-psr-7
Mock HTTP responses and verify requests in unit tests using Guzzle’s MockHandler and History middleware with PSR-18/PSR-7 clients.Sun, 16 May 2021 00:00:00 GMT[email protected] (Susi)integrationphpguzzlepsr-18psr-7testinghttps://susi.dev/blog/promtail-pipeline-for-caddy-logsPromtail Pipeline for Caddy Logs
https://susi.dev/blog/promtail-pipeline-for-caddy-logs
Ingest Caddy access logs with Promtail: configure scrape job, parse logfmt/json, extract labels and fields, and forward to Loki/Grafana.Thu, 15 Apr 2021 00:00:00 GMT[email protected] (Susi)integrationmonitoringhttps://susi.dev/blog/typo3-fluid-paginateTYPO3: Migrate Fluid pagination widget to paginator API
https://susi.dev/blog/typo3-fluid-paginate
TYPO3 v10 deprecated and v11 removed Fluid widgets. Replace the Fluid pagination widget with the native Paginator API introduced in TYPO3 10.2.Sun, 15 Nov 2020 00:00:00 GMT[email protected] (Susi)typo3phpfrontendhttps://susi.dev/blog/supervisor-ddevSupervisor / "Pseudo Cron Jobs" in DDEV
https://susi.dev/blog/supervisor-ddev
Use the built-in supervisord in DDEV to run long-running workers (e.g. Symfony Messenger) and emulate cron-like intervals for TYPO3 Scheduler without extra services.Fri, 30 Oct 2020 00:00:00 GMT[email protected] (Susi)ddevsymfonytypo3https://susi.dev/blog/composer2-perfComposer 2 performance tests – Shopware & TYPO3
https://susi.dev/blog/composer2-perf
Measuring Composer 2 vs. Composer 1.10 on real projects (Shopware 6 and TYPO3) — setup, commands, and the impact on day‑to‑day DX.Wed, 28 Oct 2020 00:00:00 GMT[email protected] (Susi)integrationshopwaretypo3performancebenchmarkscomposerhttps://susi.dev/blog/hcaptchaA quick look at hCaptcha - I am human!
https://susi.dev/blog/hcaptcha
Overview of hCaptcha, key settings, integrations (Laravel, Symfony), and how to use it in TYPO3 via an EXT:form element.Sun, 25 Oct 2020 00:00:00 GMT[email protected] (Susi)hcaptchacaptchafrontendintegrationsymfonytypo3https://susi.dev/blog/phpstan-phpstorm-proIntegrating PHPStan in PhpStorm / PHPStan Pro
https://susi.dev/blog/phpstan-phpstorm-pro
Install and configure PHPStan for your project and wire it into PhpStorm – including baselines, framework stubs, and running inside Docker/DDEV.Sun, 18 Oct 2020 00:00:00 GMT[email protected] (Susi)phpstanphpstormstatic-analysisqualityddevdockerhttps://susi.dev/blog/typo3-coverage-dbg-phpstormTYPO3 test coverage in under 2 minutes with PhpStorm + phpdbg
https://susi.dev/blog/typo3-coverage-dbg-phpstorm
Generate fast code coverage for TYPO3 (or any PHP project) using phpdbg — run from PhpStorm or CLI without Xdebug, with tips for setup and troubleshooting.Sun, 27 Sep 2020 00:00:00 GMT[email protected] (Susi)typo3phpphpdbgcoveragephpunitphpstormhttps://susi.dev/blog/twig-migrate-transchoiceTwig: Migrate transchoice to trans with ICU messages
https://susi.dev/blog/twig-migrate-transchoice
How to migrate from Twig's deprecated transchoice to trans using ICU messages: rename files, rewrite messages, pass variables, and register ICU resources.Sun, 30 Aug 2020 00:00:00 GMT[email protected] (Susi)integrationsymfonytwigi18nhttps://susi.dev/blog/ddev-phpstorm-integrationFully integrate DDEV and PhpStorm – including Unit Tests with Coverage
https://susi.dev/blog/ddev-phpstorm-integration
Configure PhpStorm to run everything inside DDEV: CLI/Composer, PHPUnit with coverage, debugging (Xdebug), and quality tools – fully integrated.Sat, 22 Aug 2020 00:00:00 GMT[email protected] (Susi)ddevphpstormdockerxdebugphpunitcoveragehttps://susi.dev/blog/swagger-shopware-storeapiWorkaround: Working Swagger Docs for Store API in Shopware 6
https://susi.dev/blog/swagger-shopware-storeapi
Enable the Swagger UI for Shopware 6 Store API in dev/test despite CSP blocks by adjusting DI parameters; plus tips for mocking with Prism.Fri, 24 Jul 2020 00:00:00 GMT[email protected] (Susi)shopwarehttps://susi.dev/blog/dev-env-2020My 2020 Dev Environment
https://susi.dev/blog/dev-env-2020
A snapshot of my 2020 development environment: IDEs, terminals, tooling, and quality-of-life tweaks.Wed, 01 Jan 2020 00:00:00 GMT[email protected] (Susi)dev environmenttoolsproductivityhttps://susi.dev/blog/prism-ckeditor-typo3Prism, CKEditor, TYPO3
https://susi.dev/blog/prism-ckeditor-typo3
Add syntax highlighting with Prism.js to TYPO3/CKEditor: include assets, configure CKEditor, and render highlighted code blocks.Sun, 16 Sep 2018 00:00:00 GMT[email protected] (Susi)typo3ckeditorprismsyntax-highlightingjavascripthttps://susi.dev/blog/typo3-bootstrap-4-webpackTYPO3, Bootstrap 4 & Webpack
https://susi.dev/blog/typo3-bootstrap-4-webpack
Wire Bootstrap 4 into a TYPO3 site package and bundle assets with Webpack: project structure, configs, and Fluid integration.Sun, 16 Sep 2018 00:00:00 GMT[email protected] (Susi)typo3frontendwebpackbootstrap