<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[CodeIgniter Forums - All Forums]]></title>
		<link>https://forum.codeigniter.com/</link>
		<description><![CDATA[CodeIgniter Forums - https://forum.codeigniter.com]]></description>
		<pubDate>Wed, 12 Aug 2026 01:16:13 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[API with OAuth2: Recommended extension? Examples?]]></title>
			<link>https://forum.codeigniter.com/showthread.php?tid=94362</link>
			<pubDate>Mon, 10 Aug 2026 10:51:21 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.codeigniter.com/member.php?action=profile&uid=185215">mark_orion</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.codeigniter.com/showthread.php?tid=94362</guid>
			<description><![CDATA[I am in the process of creating an API that uses OAuth2 authentication. What are the recommended extensions? And where can I probably find example code for using OAuth2 for an API?]]></description>
			<content:encoded><![CDATA[I am in the process of creating an API that uses OAuth2 authentication. What are the recommended extensions? And where can I probably find example code for using OAuth2 for an API?]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[How should I structure an API for saving player progress in CodeIgniter?]]></title>
			<link>https://forum.codeigniter.com/showthread.php?tid=94356</link>
			<pubDate>Sat, 08 Aug 2026 17:53:18 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.codeigniter.com/member.php?action=profile&uid=242874">tahirmehmoodkhokhar786</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.codeigniter.com/showthread.php?tid=94356</guid>
			<description><![CDATA[I'm working on a small gaming project with a web backend built in CodeIgniter. The game needs to send things like player progress, unlocked levels, scores, and settings to the server so they can be restored if the player changes devices.<br />
I'm currently thinking about separating the API endpoints for authentication, player profiles, and game progress, but I'm unsure how much logic should stay in the controllers versus being handled by models or separate service classes.<br />
For those who have built APIs for games or other applications with frequently updated user data, what structure has worked well for you in CodeIgniter?<br />
I'm particularly interested in avoiding overly complicated controllers while keeping the API easy to maintain as the project grows.]]></description>
			<content:encoded><![CDATA[I'm working on a small gaming project with a web backend built in CodeIgniter. The game needs to send things like player progress, unlocked levels, scores, and settings to the server so they can be restored if the player changes devices.<br />
I'm currently thinking about separating the API endpoints for authentication, player profiles, and game progress, but I'm unsure how much logic should stay in the controllers versus being handled by models or separate service classes.<br />
For those who have built APIs for games or other applications with frequently updated user data, what structure has worked well for you in CodeIgniter?<br />
I'm particularly interested in avoiding overly complicated controllers while keeping the API easy to maintain as the project grows.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Passkeys Explained Simply]]></title>
			<link>https://forum.codeigniter.com/showthread.php?tid=94351</link>
			<pubDate>Wed, 05 Aug 2026 14:56:22 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.codeigniter.com/member.php?action=profile&uid=75">InsiteFX</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.codeigniter.com/showthread.php?tid=94351</guid>
			<description><![CDATA[<a href="https://dev.to/thomasbnt/passkeys-explained-simply-52jk?" target="_blank" rel="noopener" class="mycode_url">Passkeys Explained Simply</a>]]></description>
			<content:encoded><![CDATA[<a href="https://dev.to/thomasbnt/passkeys-explained-simply-52jk?" target="_blank" rel="noopener" class="mycode_url">Passkeys Explained Simply</a>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Settings v2.4.0 Released]]></title>
			<link>https://forum.codeigniter.com/showthread.php?tid=94335</link>
			<pubDate>Thu, 30 Jul 2026 16:24:23 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.codeigniter.com/member.php?action=profile&uid=23">michalsn</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.codeigniter.com/showthread.php?tid=94335</guid>
			<description><![CDATA[<span style="font-size: 20pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">CodeIgniter Settings v2.4.0 Released</span></span><br />
<br />
We are happy to announce the release of <span style="font-weight: bold;" class="mycode_b">CodeIgniter Settings v2.4.0</span> for CodeIgniter 4.<br />
<br />
This release introduces batch setting operations through the new <span style="font-style: italic;" class="mycode_i">getMany()</span>, <span style="font-style: italic;" class="mycode_i">setMany()</span>, and <span style="font-style: italic;" class="mycode_i">forgetMany()</span> APIs. It also fixes issues with deferred database writes and setting value persistence on SQL Server.<br />
<br />
See the release notes for details:<br />
<a href="https://github.com/codeigniter4/settings/releases/tag/v2.4.0" target="_blank" rel="noopener" class="mycode_url">https://github.com/codeigniter4/settings...tag/v2.4.0</a><br />
<br />
Full changelog:<br />
<a href="https://github.com/codeigniter4/settings/compare/v2.3.0...v2.4.0" target="_blank" rel="noopener" class="mycode_url">https://github.com/codeigniter4/settings...0...v2.4.0</a><br />
<br />
Documentation:<br />
<a href="https://settings.codeigniter.com" target="_blank" rel="noopener" class="mycode_url">https://settings.codeigniter.com</a><br />
<br />
CodeIgniter Settings provides persistent, strongly typed application settings for CodeIgniter 4, with support for multiple storage handlers and runtime overrides.<br />
<br />
We would also like to welcome <span style="font-weight: bold;" class="mycode_b">@memleakd</span>, who made their first contribution to the project in this release.]]></description>
			<content:encoded><![CDATA[<span style="font-size: 20pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">CodeIgniter Settings v2.4.0 Released</span></span><br />
<br />
We are happy to announce the release of <span style="font-weight: bold;" class="mycode_b">CodeIgniter Settings v2.4.0</span> for CodeIgniter 4.<br />
<br />
This release introduces batch setting operations through the new <span style="font-style: italic;" class="mycode_i">getMany()</span>, <span style="font-style: italic;" class="mycode_i">setMany()</span>, and <span style="font-style: italic;" class="mycode_i">forgetMany()</span> APIs. It also fixes issues with deferred database writes and setting value persistence on SQL Server.<br />
<br />
See the release notes for details:<br />
<a href="https://github.com/codeigniter4/settings/releases/tag/v2.4.0" target="_blank" rel="noopener" class="mycode_url">https://github.com/codeigniter4/settings...tag/v2.4.0</a><br />
<br />
Full changelog:<br />
<a href="https://github.com/codeigniter4/settings/compare/v2.3.0...v2.4.0" target="_blank" rel="noopener" class="mycode_url">https://github.com/codeigniter4/settings...0...v2.4.0</a><br />
<br />
Documentation:<br />
<a href="https://settings.codeigniter.com" target="_blank" rel="noopener" class="mycode_url">https://settings.codeigniter.com</a><br />
<br />
CodeIgniter Settings provides persistent, strongly typed application settings for CodeIgniter 4, with support for multiple storage handlers and runtime overrides.<br />
<br />
We would also like to welcome <span style="font-weight: bold;" class="mycode_b">@memleakd</span>, who made their first contribution to the project in this release.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[CodeIgniter 4: Best Way to Organize Large Projects?]]></title>
			<link>https://forum.codeigniter.com/showthread.php?tid=94332</link>
			<pubDate>Thu, 30 Jul 2026 11:40:56 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.codeigniter.com/member.php?action=profile&uid=248908">vanshika</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.codeigniter.com/showthread.php?tid=94332</guid>
			<description><![CDATA[Hi everyone,<br />
I'm currently building a medium-sized application using CodeIgniter 4, and as the project grows I'm trying to keep the codebase clean and maintainable.<br />
I'd like to know what folder structure and architecture experienced CodeIgniter developers prefer for larger applications.<br />
A few questions I have are:<ul class="mycode_list"><li>Do you keep business logic only inside Models, or do you create a separate Services layer? <br />
</li>
<li>How do you organize reusable helper functions? <br />
</li>
<li>Is it recommended to use Repository or Service classes in CodeIgniter 4? <br />
</li>
<li>How do you structure controllers when there are many modules? <br />
</li>
<li>What practices have helped you keep projects maintainable over time? <br />
</li>
</ul>
I'm looking for suggestions based on real-world experience rather than just the documentation.<br />
Thanks in advance!]]></description>
			<content:encoded><![CDATA[Hi everyone,<br />
I'm currently building a medium-sized application using CodeIgniter 4, and as the project grows I'm trying to keep the codebase clean and maintainable.<br />
I'd like to know what folder structure and architecture experienced CodeIgniter developers prefer for larger applications.<br />
A few questions I have are:<ul class="mycode_list"><li>Do you keep business logic only inside Models, or do you create a separate Services layer? <br />
</li>
<li>How do you organize reusable helper functions? <br />
</li>
<li>Is it recommended to use Repository or Service classes in CodeIgniter 4? <br />
</li>
<li>How do you structure controllers when there are many modules? <br />
</li>
<li>What practices have helped you keep projects maintainable over time? <br />
</li>
</ul>
I'm looking for suggestions based on real-world experience rather than just the documentation.<br />
Thanks in advance!]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Nextgen CI Datagrid with Ai, Master-detail, Export etc]]></title>
			<link>https://forum.codeigniter.com/showthread.php?tid=94323</link>
			<pubDate>Thu, 30 Jul 2026 01:25:05 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.codeigniter.com/member.php?action=profile&uid=248807">azghanvi</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.codeigniter.com/showthread.php?tid=94323</guid>
			<description><![CDATA[Hi all,<br />
Ii wanted to share a package gridphp/ci4-starter<br />
CodeIgniter-4 application starter pre-configured with GridPHP low-code DataGrid designed for building lightning-fast CRUD, DB admin panels, CRMs &amp; backoffice tools. It generates fully interactive, mobile-ready CRUDs from db tables of MySQL, PostgreSQL/Supabase, Oracle &amp; SQLServer.<br />
<br />
GitHub: <a href="https://github.com/gridphp/ci4-starter" target="_blank" rel="noopener" class="mycode_url">https://github.com/gridphp/ci4-starter</a><br />
Composer: <a href="http://packagist.org/packages/gridphp/ci4-starter" target="_blank" rel="noopener" class="mycode_url">http://packagist.org/packages/gridphp/ci4-starter</a>]]></description>
			<content:encoded><![CDATA[Hi all,<br />
Ii wanted to share a package gridphp/ci4-starter<br />
CodeIgniter-4 application starter pre-configured with GridPHP low-code DataGrid designed for building lightning-fast CRUD, DB admin panels, CRMs &amp; backoffice tools. It generates fully interactive, mobile-ready CRUDs from db tables of MySQL, PostgreSQL/Supabase, Oracle &amp; SQLServer.<br />
<br />
GitHub: <a href="https://github.com/gridphp/ci4-starter" target="_blank" rel="noopener" class="mycode_url">https://github.com/gridphp/ci4-starter</a><br />
Composer: <a href="http://packagist.org/packages/gridphp/ci4-starter" target="_blank" rel="noopener" class="mycode_url">http://packagist.org/packages/gridphp/ci4-starter</a>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Performance Issue in a  PHP Website]]></title>
			<link>https://forum.codeigniter.com/showthread.php?tid=94322</link>
			<pubDate>Wed, 29 Jul 2026 09:10:42 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.codeigniter.com/member.php?action=profile&uid=35121">deicool</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.codeigniter.com/showthread.php?tid=94322</guid>
			<description><![CDATA[Hello<br />
<br />
There is a PHP wesbite which serves 3 pages (home, login, meeting). home and meeting page is of images and login is a database transaction.<br />
Tested the website for 1000 concurrent users (100tps). The database page login does well, the problem is with serving images (10+ second response times)<br />
System: t3.medium aws server, ubuntu 20, apache mpmevent, php 7, mysql 5, jmeter.<br />
<br />
Any ideas?]]></description>
			<content:encoded><![CDATA[Hello<br />
<br />
There is a PHP wesbite which serves 3 pages (home, login, meeting). home and meeting page is of images and login is a database transaction.<br />
Tested the website for 1000 concurrent users (100tps). The database page login does well, the problem is with serving images (10+ second response times)<br />
System: t3.medium aws server, ubuntu 20, apache mpmevent, php 7, mysql 5, jmeter.<br />
<br />
Any ideas?]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[The Dirty Secret Behind AI Agents (Demo ?)]]></title>
			<link>https://forum.codeigniter.com/showthread.php?tid=94311</link>
			<pubDate>Fri, 24 Jul 2026 18:22:41 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.codeigniter.com/member.php?action=profile&uid=75">InsiteFX</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.codeigniter.com/showthread.php?tid=94311</guid>
			<description><![CDATA[<a href="https://dev.to/sylwia-lask/the-dirty-secret-behind-ai-agents-demo--273d" target="_blank" rel="noopener" class="mycode_url">The Dirty Secret Behind AI Agents (Demo ?)</a>]]></description>
			<content:encoded><![CDATA[<a href="https://dev.to/sylwia-lask/the-dirty-secret-behind-ai-agents-demo--273d" target="_blank" rel="noopener" class="mycode_url">The Dirty Secret Behind AI Agents (Demo ?)</a>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Queue v1.0.1 Released]]></title>
			<link>https://forum.codeigniter.com/showthread.php?tid=94305</link>
			<pubDate>Fri, 24 Jul 2026 07:36:52 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.codeigniter.com/member.php?action=profile&uid=23">michalsn</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.codeigniter.com/showthread.php?tid=94305</guid>
			<description><![CDATA[<span style="font-size: 20pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">CodeIgniter Queue v1.0.1 Released</span></span><br />
<br />
We are happy to announce the release of <span style="font-weight: bold;" class="mycode_b">CodeIgniter Queue v1.0.1</span> for CodeIgniter 4.<br />
<br />
This patch release improves the reliability of database-backed queues by fixing SQLite3 queue pop atomicity and hardening queue priority ordering.<br />
<br />
See the release notes for details:<br />
<a href="https://github.com/codeigniter4/queue/releases/tag/v1.0.1" target="_blank" rel="noopener" class="mycode_url">https://github.com/codeigniter4/queue/re...tag/v1.0.1</a><br />
<br />
Full changelog:<br />
<a href="https://github.com/codeigniter4/queue/compare/v1.0.0...v1.0.1" target="_blank" rel="noopener" class="mycode_url">https://github.com/codeigniter4/queue/co...0...v1.0.1</a><br />
<br />
Documentation:<br />
<a href="https://queue.codeigniter.com" target="_blank" rel="noopener" class="mycode_url">https://queue.codeigniter.com</a><br />
<br />
CodeIgniter Queue is a queue library for CodeIgniter 4 that helps run background jobs in a simple and production-friendly way.]]></description>
			<content:encoded><![CDATA[<span style="font-size: 20pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">CodeIgniter Queue v1.0.1 Released</span></span><br />
<br />
We are happy to announce the release of <span style="font-weight: bold;" class="mycode_b">CodeIgniter Queue v1.0.1</span> for CodeIgniter 4.<br />
<br />
This patch release improves the reliability of database-backed queues by fixing SQLite3 queue pop atomicity and hardening queue priority ordering.<br />
<br />
See the release notes for details:<br />
<a href="https://github.com/codeigniter4/queue/releases/tag/v1.0.1" target="_blank" rel="noopener" class="mycode_url">https://github.com/codeigniter4/queue/re...tag/v1.0.1</a><br />
<br />
Full changelog:<br />
<a href="https://github.com/codeigniter4/queue/compare/v1.0.0...v1.0.1" target="_blank" rel="noopener" class="mycode_url">https://github.com/codeigniter4/queue/co...0...v1.0.1</a><br />
<br />
Documentation:<br />
<a href="https://queue.codeigniter.com" target="_blank" rel="noopener" class="mycode_url">https://queue.codeigniter.com</a><br />
<br />
CodeIgniter Queue is a queue library for CodeIgniter 4 that helps run background jobs in a simple and production-friendly way.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Shield v1.4.0 Released]]></title>
			<link>https://forum.codeigniter.com/showthread.php?tid=94303</link>
			<pubDate>Thu, 23 Jul 2026 16:13:38 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.codeigniter.com/member.php?action=profile&uid=23">michalsn</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.codeigniter.com/showthread.php?tid=94303</guid>
			<description><![CDATA[<span style="font-size: 20pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">CodeIgniter Shield v1.4.0 Released</span></span><br />
<br />
<span style="font-size: 13pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Key Improvements</span></span><br />
<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Conditional Authentication Actions</span> - Authentication actions can now be enabled conditionally, providing more control over when individual actions are available.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">More Flexible Authentication Routes</span> - A new <span style="font-style: italic;" class="mycode_i">only</span> option allows applications to register only selected authentication routes.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Hierarchical Permission Wildcards</span> - Permission checks now support wildcards across hierarchical permission names.<br />
</li>
</ul>
<br />
<span style="font-size: 13pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Bug Fixes</span></span><br />
<ul class="mycode_list"><li>Magic links now correctly require the configured login actions.<br />
</li>
<li>Fixed an issue where refreshing a remember-me token could fail when using <br />
<span style="font-style: italic;" class="mycode_i">loginView()</span><br />
.<br />
</li>
</ul>
<br />
<span style="font-size: 13pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">New Contributors</span></span><br />
<br />
We would like to welcome the following first-time contributors:<br />
<ul class="mycode_list"><li>@<a id="mention_82634" href="member.php?action=profile&amp;uid=82634" class="mentionme_mention" title="Dimtrovich's profile">Dimtrovich</a><br />
</li>
<li>@memleakd<br />
</li>
<li>@tomatlscomm<br />
</li>
</ul>
<br />
See the release notes for details:<br />
<a href="https://github.com/codeigniter4/shield/releases/tag/v1.4.0" target="_blank" rel="noopener" class="mycode_url">https://github.com/codeigniter4/shield/r...tag/v1.4.0</a><br />
<br />
Full changelog:<br />
<a href="https://github.com/codeigniter4/shield/compare/v1.3.0...v1.4.0" target="_blank" rel="noopener" class="mycode_url">https://github.com/codeigniter4/shield/c...0...v1.4.0</a><br />
<br />
Shield is the official authentication and authorization framework for CodeIgniter 4.<br />
<br />
See <a href="https://shield.codeigniter.com/" target="_blank" rel="noopener" class="mycode_url">https://shield.codeigniter.com/</a>]]></description>
			<content:encoded><![CDATA[<span style="font-size: 20pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">CodeIgniter Shield v1.4.0 Released</span></span><br />
<br />
<span style="font-size: 13pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Key Improvements</span></span><br />
<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Conditional Authentication Actions</span> - Authentication actions can now be enabled conditionally, providing more control over when individual actions are available.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">More Flexible Authentication Routes</span> - A new <span style="font-style: italic;" class="mycode_i">only</span> option allows applications to register only selected authentication routes.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Hierarchical Permission Wildcards</span> - Permission checks now support wildcards across hierarchical permission names.<br />
</li>
</ul>
<br />
<span style="font-size: 13pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Bug Fixes</span></span><br />
<ul class="mycode_list"><li>Magic links now correctly require the configured login actions.<br />
</li>
<li>Fixed an issue where refreshing a remember-me token could fail when using <br />
<span style="font-style: italic;" class="mycode_i">loginView()</span><br />
.<br />
</li>
</ul>
<br />
<span style="font-size: 13pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">New Contributors</span></span><br />
<br />
We would like to welcome the following first-time contributors:<br />
<ul class="mycode_list"><li>@<a id="mention_82634" href="member.php?action=profile&amp;uid=82634" class="mentionme_mention" title="Dimtrovich's profile">Dimtrovich</a><br />
</li>
<li>@memleakd<br />
</li>
<li>@tomatlscomm<br />
</li>
</ul>
<br />
See the release notes for details:<br />
<a href="https://github.com/codeigniter4/shield/releases/tag/v1.4.0" target="_blank" rel="noopener" class="mycode_url">https://github.com/codeigniter4/shield/r...tag/v1.4.0</a><br />
<br />
Full changelog:<br />
<a href="https://github.com/codeigniter4/shield/compare/v1.3.0...v1.4.0" target="_blank" rel="noopener" class="mycode_url">https://github.com/codeigniter4/shield/c...0...v1.4.0</a><br />
<br />
Shield is the official authentication and authorization framework for CodeIgniter 4.<br />
<br />
See <a href="https://shield.codeigniter.com/" target="_blank" rel="noopener" class="mycode_url">https://shield.codeigniter.com/</a>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[I Reviewed the 6 Best PHP Web Frameworks on G2 for 2026]]></title>
			<link>https://forum.codeigniter.com/showthread.php?tid=94294</link>
			<pubDate>Fri, 17 Jul 2026 23:36:09 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.codeigniter.com/member.php?action=profile&uid=9440">php_rocs</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.codeigniter.com/showthread.php?tid=94294</guid>
			<description><![CDATA[A nice read: <a href="https://learn.g2.com/best-php-web-frameworks" target="_blank" rel="noopener" class="mycode_url">https://learn.g2.com/best-php-web-frameworks</a>]]></description>
			<content:encoded><![CDATA[A nice read: <a href="https://learn.g2.com/best-php-web-frameworks" target="_blank" rel="noopener" class="mycode_url">https://learn.g2.com/best-php-web-frameworks</a>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[spark function generate-schema already exist ?]]></title>
			<link>https://forum.codeigniter.com/showthread.php?tid=94292</link>
			<pubDate>Thu, 16 Jul 2026 15:15:25 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.codeigniter.com/member.php?action=profile&uid=247035">geirea</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.codeigniter.com/showthread.php?tid=94292</guid>
			<description><![CDATA[I saw a need for generating a complete sqlite schema, a copy of the production schema of the MariaDB for the phpunit testing framework.<br />
I didn't find any already existing solution for this.<br />
<br />
I created a generate-schema function which generates an output in <br />
php spark tests:generate-schema &lt;sql-file&gt; --output ../tests/_support/Database/Generated/JuryTestTables.php<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>&lt;?php<br />
        // --- ci_sessions ---<br />
        &#36;this-&gt;forge-&gt;addField([<br />
            'id'        =&gt; ['type' =&gt; 'VARCHAR', 'constraint' =&gt; 128],<br />
            'ip_address' =&gt; ['type' =&gt; 'VARCHAR', 'constraint' =&gt; 45],<br />
            'timestamp'  =&gt; ['type' =&gt; 'DATETIME', 'default' =&gt; new &#92;CodeIgniter&#92;Database&#92;RawSql('CURRENT_TIMESTAMP')],<br />
            'data'      =&gt; ['type' =&gt; 'BLOB'],<br />
        ]);<br />
        // &#36;this-&gt;forge-&gt;addKey('timestamp');<br />
        &#36;this-&gt;forge-&gt;createTable('ci_sessions', true);<br />
        // --- gx_app_config_options ---<br />
        &#36;this-&gt;forge-&gt;addField([<br />
            'key'        =&gt; ['type' =&gt; 'VARCHAR', 'constraint' =&gt; 255],<br />
            'value'      =&gt; ['type' =&gt; 'TEXT'],<br />
            'category_id' =&gt; ['type' =&gt; 'INT', 'default' =&gt; 1],<br />
        ]);<br />
        &#36;this-&gt;forge-&gt;addPrimaryKey('key');<br />
<br />
The code is included in the Migrations, - and loaded upon bootstrapping the phpunit.</code></div></div><div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>    public function up(): void<br />
    {<br />
        &#36;generatedFile = __DIR__ . '/../Generated/JuryTestTables.php';<br />
<br />
Is this something I only see a need for?<br />
<br />
Geir</code></div></div>]]></description>
			<content:encoded><![CDATA[I saw a need for generating a complete sqlite schema, a copy of the production schema of the MariaDB for the phpunit testing framework.<br />
I didn't find any already existing solution for this.<br />
<br />
I created a generate-schema function which generates an output in <br />
php spark tests:generate-schema &lt;sql-file&gt; --output ../tests/_support/Database/Generated/JuryTestTables.php<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>&lt;?php<br />
        // --- ci_sessions ---<br />
        &#36;this-&gt;forge-&gt;addField([<br />
            'id'        =&gt; ['type' =&gt; 'VARCHAR', 'constraint' =&gt; 128],<br />
            'ip_address' =&gt; ['type' =&gt; 'VARCHAR', 'constraint' =&gt; 45],<br />
            'timestamp'  =&gt; ['type' =&gt; 'DATETIME', 'default' =&gt; new &#92;CodeIgniter&#92;Database&#92;RawSql('CURRENT_TIMESTAMP')],<br />
            'data'      =&gt; ['type' =&gt; 'BLOB'],<br />
        ]);<br />
        // &#36;this-&gt;forge-&gt;addKey('timestamp');<br />
        &#36;this-&gt;forge-&gt;createTable('ci_sessions', true);<br />
        // --- gx_app_config_options ---<br />
        &#36;this-&gt;forge-&gt;addField([<br />
            'key'        =&gt; ['type' =&gt; 'VARCHAR', 'constraint' =&gt; 255],<br />
            'value'      =&gt; ['type' =&gt; 'TEXT'],<br />
            'category_id' =&gt; ['type' =&gt; 'INT', 'default' =&gt; 1],<br />
        ]);<br />
        &#36;this-&gt;forge-&gt;addPrimaryKey('key');<br />
<br />
The code is included in the Migrations, - and loaded upon bootstrapping the phpunit.</code></div></div><div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>    public function up(): void<br />
    {<br />
        &#36;generatedFile = __DIR__ . '/../Generated/JuryTestTables.php';<br />
<br />
Is this something I only see a need for?<br />
<br />
Geir</code></div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Docs on autopilot:]]></title>
			<link>https://forum.codeigniter.com/showthread.php?tid=94272</link>
			<pubDate>Sat, 11 Jul 2026 14:35:42 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.codeigniter.com/member.php?action=profile&uid=75">InsiteFX</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.codeigniter.com/showthread.php?tid=94272</guid>
			<description><![CDATA[<a href="https://www.mintlify.com/blog/docs-on-autopilot?utm_source=google&amp;utm_medium=paid-search&amp;utm_campaign=23920154307&amp;utm_adgroup=198869858522&amp;utm_term=&amp;utm_device=m&amp;utm_matchtype=&amp;utm_content=DGIA-1&amp;gad_source=1&amp;gad_campaignid=23920154307&amp;gbraid=0AAAAA-bNEg7ciphJHYEp5gU2gbxiQxOGQ&amp;gclid=CjwKCAjw08fSBhA7EiwAfbQTsHHfze9-aHW61LuWEXoTSxc-1gRSkXUPCwijmuhG7cEboJRrb8KMMxoCjM8QAvD_BwE" target="_blank" rel="noopener" class="mycode_url">Docs on autopilot: From zero to self-maintaining with Mintlify</a>]]></description>
			<content:encoded><![CDATA[<a href="https://www.mintlify.com/blog/docs-on-autopilot?utm_source=google&amp;utm_medium=paid-search&amp;utm_campaign=23920154307&amp;utm_adgroup=198869858522&amp;utm_term=&amp;utm_device=m&amp;utm_matchtype=&amp;utm_content=DGIA-1&amp;gad_source=1&amp;gad_campaignid=23920154307&amp;gbraid=0AAAAA-bNEg7ciphJHYEp5gU2gbxiQxOGQ&amp;gclid=CjwKCAjw08fSBhA7EiwAfbQTsHHfze9-aHW61LuWEXoTSxc-1gRSkXUPCwijmuhG7cEboJRrb8KMMxoCjM8QAvD_BwE" target="_blank" rel="noopener" class="mycode_url">Docs on autopilot: From zero to self-maintaining with Mintlify</a>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[A PRACTICAL GUIDE TO AI AGENTS]]></title>
			<link>https://forum.codeigniter.com/showthread.php?tid=94270</link>
			<pubDate>Thu, 09 Jul 2026 18:05:11 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.codeigniter.com/member.php?action=profile&uid=75">InsiteFX</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.codeigniter.com/showthread.php?tid=94270</guid>
			<description><![CDATA[<a href="https://www.snowflake.com/resource/a-practical-guide-to-ai-agents/?utm_source=gda&amp;utm_medium=display&amp;utm_campaign=na-us-en-pros-display-gda-evg-audience-look-dsci&amp;utm_content=gda-dgimage-evg-eb-a-practical-guide-to-ai-agents&amp;utm_term=m---782587507864&amp;gad_source=1&amp;gad_campaignid=23230782388&amp;gbraid=0AAAAADCzRJXex3oAqa9CswheCGusDzdGi&amp;gclid=Cj0KCQjwjb3SBhDgARIsAMKiWzjdc6dlv-SxOROUx-ojawrK88nZySwOYiDJ89IAqsN6pWBX00E76_EaAlLcEALw_wcB" target="_blank" rel="noopener" class="mycode_url">Snowflake, A PRACTICAL GUIDE TO AI AGENTS</a>]]></description>
			<content:encoded><![CDATA[<a href="https://www.snowflake.com/resource/a-practical-guide-to-ai-agents/?utm_source=gda&amp;utm_medium=display&amp;utm_campaign=na-us-en-pros-display-gda-evg-audience-look-dsci&amp;utm_content=gda-dgimage-evg-eb-a-practical-guide-to-ai-agents&amp;utm_term=m---782587507864&amp;gad_source=1&amp;gad_campaignid=23230782388&amp;gbraid=0AAAAADCzRJXex3oAqa9CswheCGusDzdGi&amp;gclid=Cj0KCQjwjb3SBhDgARIsAMKiWzjdc6dlv-SxOROUx-ojawrK88nZySwOYiDJ89IAqsN6pWBX00E76_EaAlLcEALw_wcB" target="_blank" rel="noopener" class="mycode_url">Snowflake, A PRACTICAL GUIDE TO AI AGENTS</a>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[PHP Is Better Than JavaScript, And I Don't Care If This Starts A Fight]]></title>
			<link>https://forum.codeigniter.com/showthread.php?tid=94266</link>
			<pubDate>Thu, 09 Jul 2026 03:38:50 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.codeigniter.com/member.php?action=profile&uid=9440">php_rocs</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.codeigniter.com/showthread.php?tid=94266</guid>
			<description><![CDATA[Interesting perspective (DEV.TO): <a href="https://dev.to/p4nd3m1c/php-is-better-than-javascript-and-i-dont-care-if-this-starts-a-fight-36d0" target="_blank" rel="noopener" class="mycode_url">https://dev.to/p4nd3m1c/php-is-better-th...fight-36d0</a>]]></description>
			<content:encoded><![CDATA[Interesting perspective (DEV.TO): <a href="https://dev.to/p4nd3m1c/php-is-better-than-javascript-and-i-dont-care-if-this-starts-a-fight-36d0" target="_blank" rel="noopener" class="mycode_url">https://dev.to/p4nd3m1c/php-is-better-th...fight-36d0</a>]]></content:encoded>
		</item>
	</channel>
</rss>