<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>PHP Archives - 1manfactory.com - Blog of Jürgen Schulze</title>
	<atom:link href="https://1manfactory.com/category/php/feed/" rel="self" type="application/rss+xml" />
	<link>https://1manfactory.com/category/php/</link>
	<description>Stack: Linux, Nginx, MySQL, PHP, Docker, Oracle VM VirtualBox</description>
	<lastBuildDate>Sun, 21 Jun 2026 09:27:49 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://1manfactory.com/wp-content/uploads/2023/11/cropped-732ac31f-aa8a-4a90-a170-8c717de0966a-32x32.jpg</url>
	<title>PHP Archives - 1manfactory.com - Blog of Jürgen Schulze</title>
	<link>https://1manfactory.com/category/php/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Vom Match zur Maschine: Wie ich Tinder-Kontakte automatisiert importiere, ohne gleich den Autopiloten Amok fahren zu lassen</title>
		<link>https://1manfactory.com/vom-match-zur-maschine-wie-ich-tinder-kontakte-automatisiert-importiere-ohne-gleich-den-autopiloten-amok-fahren-zu-lassen/</link>
		
		<dc:creator><![CDATA[Juergen Schulze]]></dc:creator>
		<pubDate>Sun, 21 Jun 2026 08:57:00 +0000</pubDate>
				<category><![CDATA[Browser]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[KI]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[API Design]]></category>
		<category><![CDATA[asynchrone Jobs]]></category>
		<category><![CDATA[Automatisierung mit Kontrolle]]></category>
		<category><![CDATA[Autopilot]]></category>
		<category><![CDATA[Backend Entwicklung]]></category>
		<category><![CDATA[Background Jobs]]></category>
		<category><![CDATA[Browserautomatisierung]]></category>
		<category><![CDATA[Chromium]]></category>
		<category><![CDATA[Datenimport]]></category>
		<category><![CDATA[Dating App Automatisierung]]></category>
		<category><![CDATA[Dating CRM]]></category>
		<category><![CDATA[Deduplizierung]]></category>
		<category><![CDATA[DOM Analyse]]></category>
		<category><![CDATA[DOM Scraping]]></category>
		<category><![CDATA[DTO]]></category>
		<category><![CDATA[externe IDs]]></category>
		<category><![CDATA[Frontend Entwicklung]]></category>
		<category><![CDATA[Hashing]]></category>
		<category><![CDATA[Idempotenz]]></category>
		<category><![CDATA[Job Queue]]></category>
		<category><![CDATA[KI Workflow]]></category>
		<category><![CDATA[Kontaktimport]]></category>
		<category><![CDATA[Messenger Queue]]></category>
		<category><![CDATA[Nachrichtenimport]]></category>
		<category><![CDATA[OpenAPI]]></category>
		<category><![CDATA[persistente Browser Session]]></category>
		<category><![CDATA[Playwright]]></category>
		<category><![CDATA[Read-only Automation]]></category>
		<category><![CDATA[Session Handling]]></category>
		<category><![CDATA[Social CRM]]></category>
		<category><![CDATA[Soft Delete]]></category>
		<category><![CDATA[softwareentwicklung]]></category>
		<category><![CDATA[Statusmaschine]]></category>
		<category><![CDATA[Symfony Messenger]]></category>
		<category><![CDATA[SyncJob]]></category>
		<category><![CDATA[Systemintegration]]></category>
		<category><![CDATA[technische Architektur]]></category>
		<category><![CDATA[Tinder Automatisierung]]></category>
		<category><![CDATA[UI Automation]]></category>
		<category><![CDATA[VNC]]></category>
		<category><![CDATA[vue]]></category>
		<category><![CDATA[Web Scraping]]></category>
		<category><![CDATA[Workflow Automatisierung]]></category>
		<guid isPermaLink="false">https://1manfactory.com/?p=3991</guid>

					<description><![CDATA[<p>Es gibt Programmierprojekte, die beginnen harmlos. Man möchte „nur mal eben“ ein paar Daten importieren. Danach möchte man „nur kurz“ die Nachrichten historisieren. Dann wäre es „eigentlich praktisch“, wenn neue Kontakte automatisch erkannt würden. Und irgendwann sitzt man vor einer Architektur aus Symfony, Messenger, Playwright, persistenten Browser-Profilen, VNC, DTOs, Statusmaschinen, Job-Queues und fragt sich: War [&#8230;]</p>
<p>Der Beitrag <a href="https://1manfactory.com/vom-match-zur-maschine-wie-ich-tinder-kontakte-automatisiert-importiere-ohne-gleich-den-autopiloten-amok-fahren-zu-lassen/">Vom Match zur Maschine: Wie ich Tinder-Kontakte automatisiert importiere, ohne gleich den Autopiloten Amok fahren zu lassen</a> erschien zuerst auf <a href="https://1manfactory.com">1manfactory.com - Blog of Jürgen Schulze</a>.</p>
]]></description>
		
		
		
			</item>
		<item>
		<title>Mit Codex Agent einen WooCommerce-Shop von Theme-Bloat und SEO-Plugins befreien</title>
		<link>https://1manfactory.com/mit-codex-agent-einen-woocommerce-shop-von-theme-bloat-und-seo-plugins-befreien/</link>
		
		<dc:creator><![CDATA[Juergen Schulze]]></dc:creator>
		<pubDate>Tue, 19 May 2026 16:31:20 +0000</pubDate>
				<category><![CDATA[KI]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[Woocommerce]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Breadcrumbs]]></category>
		<category><![CDATA[Canonical URLs]]></category>
		<category><![CDATA[codex agent]]></category>
		<category><![CDATA[Codex Workflow]]></category>
		<category><![CDATA[Core Web Vitals]]></category>
		<category><![CDATA[Custom Theme]]></category>
		<category><![CDATA[E-Commerce SEO]]></category>
		<category><![CDATA[eigenes SEO Plugin]]></category>
		<category><![CDATA[eigenes WordPress Theme]]></category>
		<category><![CDATA[KI Coding Agent]]></category>
		<category><![CDATA[Meta Descriptions]]></category>
		<category><![CDATA[Meta Titles]]></category>
		<category><![CDATA[Open Graph]]></category>
		<category><![CDATA[openai codex]]></category>
		<category><![CDATA[Plugin Bloat]]></category>
		<category><![CDATA[Produktarchive]]></category>
		<category><![CDATA[Produktseiten]]></category>
		<category><![CDATA[Replatforming]]></category>
		<category><![CDATA[Robots Meta Tags]]></category>
		<category><![CDATA[Rollback Plan]]></category>
		<category><![CDATA[Schema.org]]></category>
		<category><![CDATA[SEO Audit]]></category>
		<category><![CDATA[SEO Automatisierung]]></category>
		<category><![CDATA[SEO Migration]]></category>
		<category><![CDATA[SEO Modul]]></category>
		<category><![CDATA[SEO-Plugins]]></category>
		<category><![CDATA[Shop Optimierung]]></category>
		<category><![CDATA[strukturierte Daten]]></category>
		<category><![CDATA[technische Migration]]></category>
		<category><![CDATA[technisches SEO]]></category>
		<category><![CDATA[Theme Bloat]]></category>
		<category><![CDATA[Theme Entwicklung]]></category>
		<category><![CDATA[Twitter Cards]]></category>
		<category><![CDATA[WooCommerce Checkout]]></category>
		<category><![CDATA[WooCommerce Entwicklung]]></category>
		<category><![CDATA[WooCommerce Optimierung]]></category>
		<category><![CDATA[WooCommerce Performance]]></category>
		<category><![CDATA[WooCommerce Theme]]></category>
		<category><![CDATA[WordPress Automatisierung]]></category>
		<category><![CDATA[WordPress Entwicklung]]></category>
		<category><![CDATA[WordPress Performance]]></category>
		<category><![CDATA[WordPress Plugins reduzieren]]></category>
		<category><![CDATA[WordPress SEO]]></category>
		<category><![CDATA[WordPress Staging]]></category>
		<category><![CDATA[XML Sitemap]]></category>
		<guid isPermaLink="false">https://1manfactory.com/?p=3942</guid>

					<description><![CDATA[<p>WordPress ist nicht mein Problem. WooCommerce ist auch nicht mein Problem. Im Gegenteil: WooCommerce bleibt für meinen Shop weiterhin die richtige Grundlage. Das eigentliche Problem ist der technische Bewuchs, der sich über Jahre um einen Shop herum bildet. Ein Theme hier. Ein SEO-Plugin dort. Dazu Customizer-Einstellungen, Template-Overrides, WooCommerce-Hooks, zusätzliche Optionen, Performance-Schalter, Social-Media-Metadaten, Breadcrumbs, Sitemaps, Schema-Ausgaben [&#8230;]</p>
<p>Der Beitrag <a href="https://1manfactory.com/mit-codex-agent-einen-woocommerce-shop-von-theme-bloat-und-seo-plugins-befreien/">Mit Codex Agent einen WooCommerce-Shop von Theme-Bloat und SEO-Plugins befreien</a> erschien zuerst auf <a href="https://1manfactory.com">1manfactory.com - Blog of Jürgen Schulze</a>.</p>
]]></description>
		
		
		
			</item>
		<item>
		<title>AI-API-Kosten in PHP berechnen: Warum ich `ai-costs` gebaut habe</title>
		<link>https://1manfactory.com/ai-api-kosten-in-php-berechnen-warum-ich-ai-costs-gebaut-habe/</link>
		
		<dc:creator><![CDATA[Juergen Schulze]]></dc:creator>
		<pubDate>Tue, 05 May 2026 07:22:18 +0000</pubDate>
				<category><![CDATA[KI]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[Anthropic]]></category>
		<category><![CDATA[API-Kosten]]></category>
		<category><![CDATA[Billing]]></category>
		<category><![CDATA[Claude]]></category>
		<category><![CDATA[Claude Sonnet]]></category>
		<category><![CDATA[Cost Calculator]]></category>
		<category><![CDATA[Cost Monitoring]]></category>
		<category><![CDATA[Entwickler-Tools]]></category>
		<category><![CDATA[FinOps]]></category>
		<category><![CDATA[Gemini]]></category>
		<category><![CDATA[Gemini 2.5]]></category>
		<category><![CDATA[GPT-5.4]]></category>
		<category><![CDATA[GPT-5.5]]></category>
		<category><![CDATA[kostenberechnung]]></category>
		<category><![CDATA[LLM]]></category>
		<category><![CDATA[Long Context]]></category>
		<category><![CDATA[openai]]></category>
		<category><![CDATA[PHP Library]]></category>
		<category><![CDATA[Prompt Caching]]></category>
		<category><![CDATA[SDK-agnostisch]]></category>
		<category><![CDATA[Tech Blog]]></category>
		<category><![CDATA[Token-Kosten]]></category>
		<category><![CDATA[Usage Tracking]]></category>
		<guid isPermaLink="false">https://1manfactory.com/?p=3863</guid>

					<description><![CDATA[<p>Wer mit OpenAI, Anthropic oder Gemini arbeitet, kennt das Problem: Die eigentliche Modellintegration ist oft schnell gebaut, aber bei den Kosten wird es unübersichtlich. Token-Verbrauch ist je nach Anbieter anders strukturiert, Caching taucht in unterschiedlichen Feldern auf, Zusatzkosten für Tools kommen dazu, und am Ende möchte man trotzdem eine verlässliche Zahl für Monitoring, Reporting oder [&#8230;]</p>
<p>Der Beitrag <a href="https://1manfactory.com/ai-api-kosten-in-php-berechnen-warum-ich-ai-costs-gebaut-habe/">AI-API-Kosten in PHP berechnen: Warum ich `ai-costs` gebaut habe</a> erschien zuerst auf <a href="https://1manfactory.com">1manfactory.com - Blog of Jürgen Schulze</a>.</p>
]]></description>
		
		
		
			</item>
		<item>
		<title>Der Zauberprompt: Wie ich Codex-Agenten zu sauberem, robustem PHP zwinge</title>
		<link>https://1manfactory.com/der-zauberprompt-wie-ich-codex-agenten-zu-sauberem-robustem-php-zwinge/</link>
		
		<dc:creator><![CDATA[Juergen Schulze]]></dc:creator>
		<pubDate>Fri, 27 Feb 2026 16:57:10 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[KI]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[agentic coding]]></category>
		<category><![CDATA[backend development]]></category>
		<category><![CDATA[Code Review]]></category>
		<category><![CDATA[Codex]]></category>
		<category><![CDATA[codex agent]]></category>
		<category><![CDATA[Debugging]]></category>
		<category><![CDATA[defensive programming]]></category>
		<category><![CDATA[input validation]]></category>
		<category><![CDATA[minimal invasive fix]]></category>
		<category><![CDATA[overengineering]]></category>
		<category><![CDATA[PHP 8.2]]></category>
		<category><![CDATA[phpstan]]></category>
		<category><![CDATA[prompt engineering]]></category>
		<category><![CDATA[refactoring]]></category>
		<category><![CDATA[regression]]></category>
		<category><![CDATA[regression testing]]></category>
		<category><![CDATA[reliability]]></category>
		<category><![CDATA[root cause analysis]]></category>
		<category><![CDATA[secure coding]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[software quality]]></category>
		<category><![CDATA[static analysis]]></category>
		<category><![CDATA[strict types]]></category>
		<category><![CDATA[system prompt]]></category>
		<category><![CDATA[type safety]]></category>
		<category><![CDATA[unit tests]]></category>
		<category><![CDATA[zauberprompt]]></category>
		<guid isPermaLink="false">https://1manfactory.com/?p=3825</guid>

					<description><![CDATA[<p>Ich arbeite seit einiger Zeit mit codex.agent beim Programmieren. Das Tempo ist hoch, die Trefferquote oft gut – aber es gibt wiederkehrende Muster, die mich Zeit kosten und im schlimmsten Fall neue Fehler in den Code tragen. Vier Probleme sind bei mir immer wieder aufgetaucht: Codex neigt zu Overengineering. Aus einer kleinen Änderung wird schnell [&#8230;]</p>
<p>Der Beitrag <a href="https://1manfactory.com/der-zauberprompt-wie-ich-codex-agenten-zu-sauberem-robustem-php-zwinge/">Der Zauberprompt: Wie ich Codex-Agenten zu sauberem, robustem PHP zwinge</a> erschien zuerst auf <a href="https://1manfactory.com">1manfactory.com - Blog of Jürgen Schulze</a>.</p>
]]></description>
		
		
		
			</item>
		<item>
		<title>Telegram-Nachrichten mit Symfony: der einfache, robuste Weg</title>
		<link>https://1manfactory.com/telegram-nachrichten-mit-symfony-der-einfache-robuste-weg/</link>
		
		<dc:creator><![CDATA[Juergen Schulze]]></dc:creator>
		<pubDate>Mon, 22 Dec 2025 10:29:24 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[Backend Entwicklung]]></category>
		<category><![CDATA[BotFather]]></category>
		<category><![CDATA[Chat ID]]></category>
		<category><![CDATA[HTTP API]]></category>
		<category><![CDATA[Job Benachrichtigung]]></category>
		<category><![CDATA[Server Monitoring]]></category>
		<category><![CDATA[Symfony HttpClient]]></category>
		<category><![CDATA[Symfony Service]]></category>
		<category><![CDATA[Telegram API]]></category>
		<category><![CDATA[Telegram Benachrichtigungen]]></category>
		<category><![CDATA[Telegram Bot]]></category>
		<category><![CDATA[Telegram Token]]></category>
		<category><![CDATA[Webhooks]]></category>
		<guid isPermaLink="false">https://1manfactory.com/?p=3768</guid>

					<description><![CDATA[<p>Wenn ich in Symfony etwas „einfach nur zuverlässig“ haben will, greife ich ungern zu großen Abstraktionsschichten. Telegram ist ein gutes Beispiel: Die Bot-API ist im Kern ein HTTP-POST. Mehr braucht es nicht. In diesem Artikel halte ich die Lösung absichtlich schlank: Das Ergebnis ist eine kleine Service-Klasse, die ich überall aus meinem Symfony-Projekt heraus verwenden [&#8230;]</p>
<p>Der Beitrag <a href="https://1manfactory.com/telegram-nachrichten-mit-symfony-der-einfache-robuste-weg/">Telegram-Nachrichten mit Symfony: der einfache, robuste Weg</a> erschien zuerst auf <a href="https://1manfactory.com">1manfactory.com - Blog of Jürgen Schulze</a>.</p>
]]></description>
		
		
		
			</item>
	</channel>
</rss>
