<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Php on Blogfolio Najib</title>
		<link>https://najib.id/tags/php/</link>
		<description>Recent content in Php on Blogfolio Najib</description>
		<generator>Hugo</generator>
		<language>id-ID</language>
		
		
		
			<copyright>This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.</copyright>
		
		
			<lastBuildDate>Thu, 04 Jun 2026 13:12:35 +0700</lastBuildDate>
		
			<atom:link href="https://najib.id/tags/php/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Best Practice Membangun API di Laravel dan Go: Catatan dari Proyek Nyata</title>
				<link>https://najib.id/writing/2026/laravel-go-api-best-practice/</link>
				<pubDate>Thu, 07 May 2026 10:28:00 +0700</pubDate>
				<guid>https://najib.id/writing/2026/laravel-go-api-best-practice/</guid>
				<description>&lt;p&gt;Di proyek migrasi PHP ke Go yang saya kerjakan, ada &lt;em&gt;phase&lt;/em&gt; di mana saya harus &lt;em&gt;audit&lt;/em&gt; semua &lt;em&gt;route&lt;/em&gt; dan &lt;em&gt;controller&lt;/em&gt; yang sudah ada. Tujuannya sederhana: sebelum migrasi, harus pahami dulu &lt;em&gt;pattern&lt;/em&gt; apa yang sudah bagus dan mana yang harus ditinggalkan. Hasilnya? &lt;em&gt;Yah&lt;/em&gt;, cukup&amp;hellip; &lt;em&gt;enlightening&lt;/em&gt; hahaha.&lt;/p&gt;&#xA;&lt;p&gt;Proyek ini punya profil seperti ini:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;460+ route&lt;/strong&gt; di &lt;code&gt;api.php&lt;/code&gt;&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;58 controller&lt;/strong&gt; dengan berbagai ukuran dan &lt;em&gt;pattern&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;5 auth guard&lt;/strong&gt;: &lt;code&gt;user-api&lt;/code&gt;, &lt;code&gt;partner-api&lt;/code&gt;, &lt;code&gt;open-api&lt;/code&gt;, &lt;code&gt;open-api-limited&lt;/code&gt;, &lt;code&gt;tms-api&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Rate limiting&lt;/strong&gt; yang bervariasi: dari 3/menit sampai 100/menit&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Artikel ini bukan tutorial &lt;em&gt;&amp;ldquo;cara bikin API&amp;rdquo;&lt;/em&gt;. Ini catatan &lt;em&gt;pattern&lt;/em&gt; dan &lt;em&gt;anti-pattern&lt;/em&gt; yang saya temukan, plus bagaimana &lt;em&gt;pattern&lt;/em&gt; yang sama diimplementasi di Go. Jadi kalau kamu lagi &lt;em&gt;migrate&lt;/em&gt; atau mulai proyek baru, &lt;em&gt;hopefully&lt;/em&gt; bisa &lt;em&gt;skip&lt;/em&gt; beberapa kesalahan yang sudah saya temukan hehe~&lt;/p&gt;</description>
			</item>
			<item>
				<title>Migrasi Legacy PHP ke Go: Kenapa, Bagaimana, dan Pelajarannya</title>
				<link>https://najib.id/writing/2026/legacy-php-to-go-migration/</link>
				<pubDate>Sat, 04 Apr 2026 00:00:00 +0000</pubDate>
				<guid>https://najib.id/writing/2026/legacy-php-to-go-migration/</guid>
				<description>&lt;p&gt;Saya pernah berada di posisi di mana &lt;em&gt;codebase&lt;/em&gt; PHP sudah &lt;em&gt;kepenuhan&lt;/em&gt;, fitur baru makin susah ditambah, &lt;em&gt;bug&lt;/em&gt; makin sering muncul, dan setiap deploy terasa seperti melempar koin. Bukan karena PHP jelek, tapi karena sistem yang dibangun bertahun-tahun tanpa arsitektur yang jelas akhirnya &lt;em&gt;menyusahkan&lt;/em&gt; dirinya sendiri. Pernah waktu itu sampai harus &lt;em&gt;rollback&lt;/em&gt; tiga kali dalam sehari gara-gara &lt;em&gt;deploy&lt;/em&gt; yang harusnya &lt;em&gt;simple&lt;/em&gt;. &lt;em&gt;Stress level&lt;/em&gt;-nya&amp;hellip; &lt;em&gt;hadeh&lt;/em&gt;, jangan ditanya hahaha.&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;Nganu&lt;/em&gt;, jadi tulisan ini bukan &lt;em&gt;&amp;ldquo;Go lebih baik dari PHP&amp;rdquo;&lt;/em&gt; atau &lt;em&gt;&amp;ldquo;PHP sudah mati&amp;rdquo;&lt;/em&gt;. Bukan. Tulisan ini catatan pengalaman saya melakukan migrasi sistem backend dari PHP (CodeIgniter 3 dan Laravel) ke Go, berdasarkan proyek nyata yang saya kerjakan. Bukan tutorial, bukan juga propaganda. Cuma catatan pribadi aja, siapa tahu ada yang lagi ngalamin hal serupa dan bisa ambil pelajaran dari kesalahan-kesalahan saya hehe~&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
