<?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/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>https://1manfactory.com/tag/php/</link>
	<description>Stack: Linux, Nginx, MySQL, PHP, Docker, Oracle VM VirtualBox</description>
	<lastBuildDate>Tue, 19 May 2026 16:38:04 +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/tag/php/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<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>Weniger Code, mehr Ursache: Mein Prompt gegen Codex-Overengineering in PHP und Symfony</title>
		<link>https://1manfactory.com/weniger-code-mehr-ursache-mein-prompt-gegen-codex-overengineering-in-php-und-symfony/</link>
		
		<dc:creator><![CDATA[Juergen Schulze]]></dc:creator>
		<pubDate>Wed, 08 Apr 2026 07:58:59 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Agentensteuerung]]></category>
		<category><![CDATA[ai code review]]></category>
		<category><![CDATA[AI Coding Agents]]></category>
		<category><![CDATA[angebercode]]></category>
		<category><![CDATA[bugfixing]]></category>
		<category><![CDATA[Clean Code]]></category>
		<category><![CDATA[Code Review]]></category>
		<category><![CDATA[Codex]]></category>
		<category><![CDATA[codex prompt]]></category>
		<category><![CDATA[Coding Agents]]></category>
		<category><![CDATA[Debugging]]></category>
		<category><![CDATA[defensive programming]]></category>
		<category><![CDATA[early return]]></category>
		<category><![CDATA[enterprise php]]></category>
		<category><![CDATA[exception handling]]></category>
		<category><![CDATA[fail fast]]></category>
		<category><![CDATA[fail fast php]]></category>
		<category><![CDATA[fail fast symfony]]></category>
		<category><![CDATA[fail-fast]]></category>
		<category><![CDATA[guard clauses]]></category>
		<category><![CDATA[harte fehler]]></category>
		<category><![CDATA[keine defaults]]></category>
		<category><![CDATA[keine fallbacks]]></category>
		<category><![CDATA[minimal change]]></category>
		<category><![CDATA[minimal diff]]></category>
		<category><![CDATA[minimal invasive änderungen]]></category>
		<category><![CDATA[openai codex]]></category>
		<category><![CDATA[over engineering]]></category>
		<category><![CDATA[overengineering]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[php bugs]]></category>
		<category><![CDATA[php entwicklung]]></category>
		<category><![CDATA[phpstan]]></category>
		<category><![CDATA[pragmatische softwareentwicklung]]></category>
		<category><![CDATA[produktionscode]]></category>
		<category><![CDATA[prompt engineering]]></category>
		<category><![CDATA[prompt für coding agents]]></category>
		<category><![CDATA[refactoring]]></category>
		<category><![CDATA[robuste software]]></category>
		<category><![CDATA[root cause analyse]]></category>
		<category><![CDATA[root cause debugging]]></category>
		<category><![CDATA[root cause fix]]></category>
		<category><![CDATA[scope drift]]></category>
		<category><![CDATA[senior php entwickler]]></category>
		<category><![CDATA[software wartbarkeit]]></category>
		<category><![CDATA[Softwarearchitektur]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[symfony best practices]]></category>
		<category><![CDATA[symfony bugs]]></category>
		<category><![CDATA[symfony entwicklung]]></category>
		<category><![CDATA[technische präzision]]></category>
		<category><![CDATA[technische Schulden]]></category>
		<category><![CDATA[ternäre hölle]]></category>
		<category><![CDATA[ternäre operatoren]]></category>
		<category><![CDATA[übermäßiges refactoring]]></category>
		<category><![CDATA[wartbarer code]]></category>
		<guid isPermaLink="false">https://1manfactory.com/?p=3850</guid>

					<description><![CDATA[<p>Wer heute mit Coding Agents arbeitet, kennt das Muster. Man meldet einen überschaubaren Fehler, etwa einen falsch gesetzten Regex, einen ungünstigen Vergleich oder einen fehlerhaften Sonderfall im Request-Handling, und bekommt als Antwort eine kleine Architektur-Offensive. Neue Services, neue Helper, neue Abstraktionen, zusätzliche Fallbacks, defensive Defaults, stilles „Reparieren“ ungültiger Zustände. Der eigentliche Fehler ist danach manchmal [&#8230;]</p>
<p>Der Beitrag <a href="https://1manfactory.com/weniger-code-mehr-ursache-mein-prompt-gegen-codex-overengineering-in-php-und-symfony/">Weniger Code, mehr Ursache: Mein Prompt gegen Codex-Overengineering in PHP und Symfony</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>
