{"id":39835,"date":"2026-02-24T12:30:41","date_gmt":"2026-02-24T09:30:41","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/laravel-icin-akici-bir-numberable-api-gelistirdim-sayisal-veri-yonetiminde-yeni-bir-donem-v1-0-0\/"},"modified":"2026-02-24T12:30:41","modified_gmt":"2026-02-24T09:30:41","slug":"laravel-icin-akici-bir-numberable-api-gelistirdim-sayisal-veri-yonetiminde-yeni-bir-donem-v1-0-0","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/laravel-icin-akici-bir-numberable-api-gelistirdim-sayisal-veri-yonetiminde-yeni-bir-donem-v1-0-0\/","title":{"rendered":"Laravel \u0130\u00e7in Ak\u0131c\u0131 Bir Numberable API Geli\u015ftirdim: Say\u0131sal Veri Y\u00f6netiminde Yeni Bir D\u00f6nem (v1.0.0)"},"content":{"rendered":"<h2>Laravel \u0130\u00e7in Ak\u0131c\u0131 Bir Numberable API Geli\u015ftirdim: Say\u0131sal Veri Y\u00f6netiminde Yeni Bir D\u00f6nem (v1.0.0)<\/h2>\n<p>Laravel geli\u015ftiricileri olarak, projelerimizde s\u0131k\u00e7a say\u0131sal verilerle \u00e7al\u0131\u015f\u0131r\u0131z. Fiyat hesaplamalar\u0131, istatistiksel analizler, oranlamalar ve daha bir\u00e7ok senaryoda say\u0131lar hayat\u0131m\u0131z\u0131n vazge\u00e7ilmez bir par\u00e7as\u0131d\u0131r. Ancak, bu say\u0131sal i\u015flemleri y\u00f6netirken kodun okunabilirli\u011fini, bak\u0131m\u0131n\u0131 ve hata potansiyelini d\u00fc\u015f\u00fcnd\u00fc\u011f\u00fcm\u00fczde, mevcut yakla\u015f\u0131mlar\u0131n bazen yetersiz kald\u0131\u011f\u0131n\u0131 fark ettim. \u0130\u015fte tam da bu noktada, Laravel ekosistemine yeni bir soluk getirece\u011fine inand\u0131\u011f\u0131m, ak\u0131c\u0131 bir Numberable API geli\u015ftirdim. Bu makalede, v1.0.0 s\u00fcr\u00fcm\u00fcyle birlikte gelen bu API&#8217;nin ne oldu\u011funu, neden ihtiya\u00e7 duyuldu\u011funu, temel \u00f6zelliklerini ve nas\u0131l kullan\u0131laca\u011f\u0131n\u0131 detayl\u0131 bir \u015fekilde inceleyece\u011fiz.<\/p>\n<h3>Nedir bu Numberable API?<\/h3>\n<p>Numberable API, temel olarak say\u0131sal de\u011ferleri sarmalayan (wrap eden) ve bu de\u011ferler \u00fczerinde bir dizi ak\u0131c\u0131 (fluent) metod zinciriyle i\u015flem yapmay\u0131 sa\u011flayan bir PHP s\u0131n\u0131f\u0131d\u0131r. Laravel&#8217;in <code>Illuminate\\Support\\Stringable<\/code> veya <code>Illuminate\\Support\\Collection<\/code> s\u0131n\u0131flar\u0131na benzer bir mant\u0131kla \u00e7al\u0131\u015f\u0131r; yani, bir say\u0131sal de\u011feri bir nesneye d\u00f6n\u00fc\u015ft\u00fcrerek, \u00fczerinde zincirleme metotlar arac\u0131l\u0131\u011f\u0131yla karma\u015f\u0131k matematiksel ve formatlama i\u015flemlerini kolayca ger\u00e7ekle\u015ftirmenize olanak tan\u0131r.<\/p>\n<h4>Temel Tan\u0131m ve Amac\u0131<\/h4>\n<p>Numberable API&#8217;nin temel amac\u0131, PHP&#8217;nin yerle\u015fik matematiksel fonksiyonlar\u0131n\u0131n veya do\u011frudan operat\u00f6r kullan\u0131mlar\u0131n\u0131n getirdi\u011fi okunabilirlik ve bak\u0131m zorluklar\u0131n\u0131 ortadan kald\u0131rmakt\u0131r. Bir say\u0131y\u0131 <code>Number<\/code> nesnesi i\u00e7ine alarak, <code>add()<\/code>, <code>subtract()<\/code>, <code>multiply()<\/code>, <code>divide()<\/code>, <code>round()<\/code>, <code>format()<\/code> gibi a\u00e7\u0131klay\u0131c\u0131 metotlarla i\u015flem yapman\u0131z\u0131 sa\u011flar. Bu, \u00f6zellikle karma\u015f\u0131k hesaplamalar\u0131n oldu\u011fu yerlerde kodunuzu \u00e7ok daha anla\u015f\u0131l\u0131r ve y\u00f6netilebilir hale getirir.<\/p>\n<h4>Geleneksel Yakla\u015f\u0131mlar ve Zorluklar\u0131<\/h4>\n<p>Geleneksel olarak, Laravel projelerinde say\u0131sal i\u015flemler genellikle do\u011frudan PHP operat\u00f6rleri veya <code>bcmath<\/code>, <code>gmp<\/code> gibi eklentilerle yap\u0131l\u0131r. \u00d6rne\u011fin:<\/p>\n<pre><code class=\"language-php\">$price = 100.50;\n$quantity = 3;\n$discount = 0.15;\n\n$total = ($price * $quantity) * (1 - $discount); \/\/ Karma\u015f\u0131k ve okunmas\u0131 zor\n$taxRate = 0.18;\n$finalPrice = round($total * (1 + $taxRate), 2); \/\/ Zincirleme yok, her ad\u0131m ayr\u0131<\/pre>\n<p><\/code><br \/>\nBu t\u00fcr yakla\u015f\u0131mlar, basit i\u015flemler i\u00e7in yeterli olsa da, daha karma\u015f\u0131k senaryolarda (\u00f6rne\u011fin, birden fazla yuvarlama, formatlama, kar\u015f\u0131la\u015ft\u0131rma ve ko\u015fullu i\u015flem) kodun h\u0131zla i\u00e7inden \u00e7\u0131k\u0131lmaz bir hale gelmesine neden olabilir. Ayr\u0131ca, farkl\u0131 say\u0131 tipleri (integer, float) aras\u0131ndaki d\u00f6n\u00fc\u015f\u00fcmler veya hassasiyet sorunlar\u0131 da ek zorluklar yarat\u0131r.<\/p>\n<h4>Ak\u0131c\u0131 Aray\u00fcz\u00fcn Fark\u0131<\/h4>\n<p>Numberable API, bu zorluklar\u0131 ak\u0131c\u0131 bir aray\u00fczle a\u015far. Her metot, i\u015flem sonucunu yeni bir <code>Number<\/code> nesnesi olarak d\u00f6nd\u00fcrd\u00fc\u011f\u00fc i\u00e7in, istedi\u011finiz kadar i\u015flemi art arda zincirleyebilirsiniz. Bu, kodunuzu daha deklaratif, okunabilir ve \"insan diline\" yak\u0131n hale getirir.<\/p>\n<pre><code class=\"language-php\">use App\\Support\\Number; \/\/ Varsay\u0131msal bir kullan\u0131m\n\n$price = Number::make(100.50);\n$quantity = Number::make(3);\n$discount = Number::make(0.15);\n\n$total = $price->multiply($quantity)->subtractPercentage($discount); \/\/ Daha okunabilir\n$taxRate = Number::make(0.18);\n$finalPrice = $total->addPercentage($taxRate)->round(2)->get(); \/\/ Ak\u0131c\u0131 zincirleme<\/pre>\n<p><\/code><br \/>\nBu \u00f6rnekte g\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi, i\u015flemlerin s\u0131ras\u0131 ve amac\u0131 \u00e7ok daha net bir \u015fekilde ifade edilmi\u015ftir.<\/p>\n<h3>Neden B\u00f6yle Bir API'ye \u0130htiya\u00e7 Duyuldu?<\/h3>\n<p>Numberable API'nin geli\u015ftirilmesinin arkas\u0131nda yatan temel motivasyon, Laravel geli\u015ftiricilerinin g\u00fcnl\u00fck i\u015f ak\u0131\u015flar\u0131n\u0131 iyile\u015ftirmek ve say\u0131sal verilerle \u00e7al\u0131\u015f\u0131rken kar\u015f\u0131la\u015ft\u0131klar\u0131 yayg\u0131n sorunlara zarif bir \u00e7\u00f6z\u00fcm sunmakt\u0131r.<\/p>\n<h4>Kod Okunabilirli\u011fi ve Bak\u0131m Kolayl\u0131\u011f\u0131<\/h4>\n<p>En b\u00fcy\u00fck avantajlardan biri, kodun okunabilirli\u011findeki art\u0131\u015ft\u0131r. <code>Number::make(10)->add(5)->multiply(2)->divide(3)->round(0)->get()<\/code> gibi bir ifade, <code>round((10 + 5) * 2 \/ 3)<\/code> ifadesinden \u00e7ok daha sezgiseldir. Her metot, ne yapt\u0131\u011f\u0131n\u0131 a\u00e7\u0131k\u00e7a belirtir ve bu da yeni bir geli\u015ftiricinin kodu anlamas\u0131n\u0131 kolayla\u015ft\u0131r\u0131r. Bak\u0131m a\u00e7\u0131s\u0131ndan da, bir hatay\u0131 ay\u0131klamak veya bir hesaplama mant\u0131\u011f\u0131n\u0131 de\u011fi\u015ftirmek, zincirdeki belirli bir metodu bulup de\u011fi\u015ftirmek kadar basittir.<\/p>\n<h4>Tip G\u00fcvenli\u011fi ve Hata Azaltma<\/h4>\n<p>PHP dinamik bir dil oldu\u011fu i\u00e7in, bazen de\u011fi\u015fkenlerin tipini g\u00f6zden ka\u00e7\u0131rmak kolay olabilir. Say\u0131sal i\u015flemler s\u0131ras\u0131nda bir string'in veya null de\u011ferin araya kar\u0131\u015fmas\u0131 beklenmedik hatalara yol a\u00e7abilir. Numberable API, i\u00e7erideki de\u011feri her zaman bir say\u0131 olarak tutarak bu t\u00fcr tip g\u00fcvenli\u011fi sorunlar\u0131n\u0131 minimize eder. Ayr\u0131ca, \u00f6zel metotlar sayesinde (\u00f6rne\u011fin <code>isPositive()<\/code>, <code>isNegative()<\/code>), ko\u015fullu kontrolleri daha g\u00fcvenli bir \u015fekilde yapabilirsiniz.<\/p>\n<h4>Tekrar Eden \u0130\u015flemlerden Kurtulma<\/h4>\n<p>Bir\u00e7ok projede, belirli say\u0131sal formatlama veya hesaplama kal\u0131plar\u0131 tekrar eder. \u00d6rne\u011fin, her zaman iki ondal\u0131k basama\u011fa yuvarlamak veya belirli bir para birimi format\u0131nda \u00e7\u0131kt\u0131 almak. Numberable API, bu t\u00fcr tekrar eden mant\u0131\u011f\u0131 bir kez yaz\u0131p bir metot olarak kullanman\u0131z\u0131 sa\u011flar. Hatta, Laravel'in makro \u00f6zelli\u011fi sayesinde kendi \u00f6zel metotlar\u0131n\u0131z\u0131 kolayca ekleyebilirsiniz, bu da kod tekrar\u0131n\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde azalt\u0131r.<\/p>\n<h3>Temel \u00d6zellikler ve Avantajlar<\/h3>\n<p>Numberable API, geni\u015f bir yelpazede say\u0131sal i\u015flem yetenekleri sunar. \u0130\u015fte baz\u0131 \u00f6ne \u00e7\u0131kan \u00f6zellikler ve sa\u011flad\u0131\u011f\u0131 avantajlar:<\/p>\n<h4>Matematiksel \u0130\u015flemler<\/h4>\n<p>API, temel matematiksel i\u015flemleri ak\u0131c\u0131 bir \u015fekilde ger\u00e7ekle\u015ftirmenizi sa\u011flar:<\/p>\n<ul>\n<li><code>add(value)<\/code>: Say\u0131ya de\u011fer ekler.<\/li>\n<li><code>subtract(value)<\/code>: Say\u0131dan de\u011fer \u00e7\u0131kar\u0131r.<\/li>\n<li><code>multiply(value)<\/code>: Say\u0131y\u0131 de\u011ferle \u00e7arpar.<\/li>\n<li><code>divide(value)<\/code>: Say\u0131y\u0131 de\u011fere b\u00f6ler.<\/li>\n<li><code>mod(value)<\/code>: Mod\u00fcl\u00fcs (kalan) i\u015flemini yapar.<\/li>\n<li><code>power(exponent)<\/code>: Say\u0131n\u0131n \u00fcss\u00fcn\u00fc al\u0131r.<\/li>\n<li><code>abs()<\/code>: Say\u0131n\u0131n mutlak de\u011ferini al\u0131r.<\/li>\n<li><code>negate()<\/code>: Say\u0131n\u0131n i\u015faretini tersine \u00e7evirir.<\/li>\n<\/ul>\n<pre><code class=\"language-php\">use App\\Support\\Number;\n\n$result = Number::make(100)\n                ->add(50)       \/\/ 150\n                ->multiply(2)   \/\/ 300\n                ->divide(3)     \/\/ 100\n                ->negate()      \/\/ -100\n                ->abs()         \/\/ 100\n                ->get();        \/\/ 100<\/pre>\n<p><\/code><\/p>\n<h4>Formatlama ve Yuvarlama<\/h4>\n<p>Say\u0131lar\u0131 belirli bir formata sokmak veya yuvarlamak, finansal uygulamalarda ve raporlamada kritik \u00f6neme sahiptir.<\/p>\n<ul>\n<li><code>round(precision, mode)<\/code>: Say\u0131y\u0131 belirli bir hassasiyete yuvarlar. (PHP'nin <code>round()<\/code> modlar\u0131n\u0131 destekler.)<\/li>\n<li><code>floor()<\/code>: Say\u0131y\u0131 a\u015fa\u011f\u0131 yuvarlar.<\/li>\n<li><code>ceil()<\/code>: Say\u0131y\u0131 yukar\u0131 yuvarlar.<\/li>\n<li><code>format(decimals, decimal_separator, thousands_separator)<\/code>: Say\u0131y\u0131 belirli bir formata g\u00f6re string olarak d\u00f6nd\u00fcr\u00fcr.<\/li>\n<li><code>toCurrency(currency_symbol, decimals, decimal_separator, thousands_separator)<\/code>: Say\u0131y\u0131 para birimi format\u0131nda d\u00f6nd\u00fcr\u00fcr.<\/li>\n<\/ul>\n<pre><code class=\"language-php\">use App\\Support\\Number;\n\n$price = Number::make(1234.5678);\n\necho $price->round(2)->get();              \/\/ 1234.57\necho $price->floor()->get();               \/\/ 1234\necho $price->format(2, ',', '.')->get();   \/\/ 1.234,57\necho $price->toCurrency('\u20ac', 2, ',', '.')->get(); \/\/ \u20ac 1.234,57<\/pre>\n<p><\/code><\/p>\n<h4>Kar\u015f\u0131la\u015ft\u0131rma ve Kontroller<\/h4>\n<p>Say\u0131sal de\u011ferleri kar\u015f\u0131la\u015ft\u0131rmak veya belirli ko\u015fullar\u0131 kontrol etmek i\u00e7in metotlar:<\/p>\n<ul>\n<li><code>equals(value)<\/code>: De\u011ferin mevcut say\u0131ya e\u015fit olup olmad\u0131\u011f\u0131n\u0131 kontrol eder.<\/li>\n<li><code>greaterThan(value)<\/code>: Mevcut say\u0131n\u0131n de\u011ferden b\u00fcy\u00fck olup olmad\u0131\u011f\u0131n\u0131 kontrol eder.<\/li>\n<li><code>lessThan(value)<\/code>: Mevcut say\u0131n\u0131n de\u011ferden k\u00fc\u00e7\u00fck olup olmad\u0131\u011f\u0131n\u0131 kontrol eder.<\/li>\n<li><code>isPositive()<\/code>: Say\u0131n\u0131n pozitif olup olmad\u0131\u011f\u0131n\u0131 kontrol eder.<\/li>\n<li><code>isNegative()<\/code>: Say\u0131n\u0131n negatif olup olmad\u0131\u011f\u0131n\u0131 kontrol eder.<\/li>\n<li><code>isZero()<\/code>: Say\u0131n\u0131n s\u0131f\u0131r olup olmad\u0131\u011f\u0131n\u0131 kontrol eder.<\/li>\n<li><code>isBetween(min, max)<\/code>: Say\u0131n\u0131n belirli bir aral\u0131kta olup olmad\u0131\u011f\u0131n\u0131 kontrol eder.<\/li>\n<\/ul>\n<pre><code class=\"language-php\">use App\\Support\\Number;\n\n$value = Number::make(10);\n\nif ($value->greaterThan(5)->and($value->lessThan(15))) {\n    echo \"Say\u0131 5 ile 15 aras\u0131ndad\u0131r.\";\n}\n\nif ($value->isPositive()->and($value->equals(10))) {\n    echo \"Say\u0131 pozitif ve 10'a e\u015fittir.\";\n}<\/pre>\n<p><\/code><\/p>\n<h4>Zincirleme Metotlar (Method Chaining)<\/h4>\n<p>En b\u00fcy\u00fck avantajlardan biri, t\u00fcm bu metotlar\u0131n birbirine zincirlenebilmesidir. Bu, karma\u015f\u0131k hesaplamalar\u0131 tek bir sat\u0131rda, okunabilir bir \u015fekilde ifade etmenizi sa\u011flar. Her metot, yeni bir <code>Number<\/code> nesnesi d\u00f6nd\u00fcrd\u00fc\u011f\u00fc i\u00e7in, orijinal de\u011feriniz de\u011fi\u015fmez (immutability).<\/p>\n<h3>Nas\u0131l Kullan\u0131l\u0131r? Kurulum ve \u0130lk Ad\u0131mlar<\/h3>\n<p>Numberable API'yi Laravel projenize dahil etmek ve kullanmaya ba\u015flamak olduk\u00e7a basittir.<\/p>\n<h4>Kurulum (Composer)<\/h4>\n<p>\u00d6ncelikle, Composer arac\u0131l\u0131\u011f\u0131yla paketi projenize eklemeniz gerekmektedir. (Paket ad\u0131 varsay\u0131msal olarak <code>your-vendor\/numberable<\/code> olarak belirtilmi\u015ftir. Ger\u00e7ek paket ad\u0131 yay\u0131nland\u0131\u011f\u0131nda farkl\u0131l\u0131k g\u00f6sterebilir.)<\/p>\n<pre><code class=\"language-bash\">composer require your-vendor\/numberable<\/pre>\n<p><\/code><br \/>\nBu komut, paketi projenizin <code>vendor<\/code> dizinine indirecek ve otomatik y\u00fckleme mekanizmas\u0131n\u0131 ayarlayacakt\u0131r.<\/p>\n<h4>Temel Kullan\u0131m \u00d6rnekleri<\/h4>\n<p>Paket kurulduktan sonra, <code>Number<\/code> s\u0131n\u0131f\u0131n\u0131 kullanarak say\u0131sal i\u015flemlerinize ba\u015flayabilirsiniz.<\/p>\n<pre><code class=\"language-php\"><?php\n\nnamespace App\\Http\\Controllers;\n\nuse App\\Support\\Number; \/\/ Varsay\u0131msal namespace\n\nclass ProductController extends Controller\n{\n    public function calculatePrice()\n    {\n        $basePrice = Number::make(99.99);\n        $taxRate = Number::make(0.18); \/\/ %18 KDV\n        $discount = Number::make(0.10); \/\/ %10 indirim\n\n        $finalPrice = $basePrice\n                        ->addPercentage($taxRate)   \/\/ KDV ekle\n                        ->subtractPercentage($discount) \/\/ \u0130ndirim uygula\n                        ->round(2)                  \/\/ 2 ondal\u0131k basama\u011fa yuvarla\n                        ->get();                    \/\/ Son de\u011feri al\n\n        \/\/ E\u011fer Numberable API'nizde addPercentage ve subtractPercentage yoksa, \u015f\u00f6yle de yapabilirsiniz:\n        \/\/ $finalPrice = $basePrice\n        \/\/                 ->multiply(Number::make(1)->add($taxRate))\n        \/\/                 ->multiply(Number::make(1)->subtract($discount))\n        \/\/                 ->round(2)\n        \/\/                 ->get();\n\n        return view('product.show', ['price' => $finalPrice]);\n    }\n}<\/pre>\n<p><\/code><br \/>\n<code>make()<\/code> statik metodu, bir say\u0131sal de\u011feri <code>Number<\/code> nesnesine d\u00f6n\u00fc\u015ft\u00fcrmek i\u00e7in kullan\u0131l\u0131r. \u0130\u015flemler bittikten sonra, <code>get()<\/code> metodu ile nihai say\u0131sal de\u011fere ula\u015fabilirsiniz.<\/p>\n<h4>Farkl\u0131 Say\u0131 Tipleriyle \u00c7al\u0131\u015fma<\/h4>\n<p>Numberable API, <code>int<\/code>, <code>float<\/code> ve hatta say\u0131sal olarak yorumlanabilecek <code>string<\/code> de\u011ferleri ile sorunsuz bir \u015fekilde \u00e7al\u0131\u015fabilir. Dahili olarak, hassasiyet gerektiren durumlarda <code>bcmath<\/code> veya benzeri k\u00fct\u00fcphaneleri kullanarak do\u011fru sonu\u00e7lar elde etmeyi hedefler.<\/p>\n<pre><code class=\"language-php\">use App\\Support\\Number;\n\n$integer = Number::make(10);\n$float = Number::make(10.5);\n$string = Number::make(\"20.75\");\n\n$sum = $integer->add($float)->add($string)->get(); \/\/ 10 + 10.5 + 20.75 = 41.25<\/pre>\n<p><\/code><\/p>\n<h3>Geli\u015fmi\u015f Kullan\u0131m ve \u00d6zelle\u015ftirme<\/h3>\n<p>Numberable API, sadece temel i\u015flemlerle s\u0131n\u0131rl\u0131 kalmay\u0131p, projenizin \u00f6zel ihtiya\u00e7lar\u0131na g\u00f6re geni\u015fletilebilir ve \u00f6zelle\u015ftirilebilir.<\/p>\n<h4>Makrolar ile Geni\u015fletme<\/h4>\n<p>Laravel'in g\u00fc\u00e7l\u00fc makro \u00f6zelli\u011fi sayesinde, <code>Number<\/code> s\u0131n\u0131f\u0131na kendi \u00f6zel metotlar\u0131n\u0131z\u0131 ekleyebilirsiniz. Bu, projenize \u00f6zg\u00fc, s\u0131k kullan\u0131lan karma\u015f\u0131k hesaplama mant\u0131klar\u0131n\u0131 tek bir metot alt\u0131nda toplayarak kod tekrar\u0131n\u0131 \u00f6nlemenizi sa\u011flar.<br \/>\n\u00d6rne\u011fin, bir \u00fcr\u00fcn\u00fcn KDV dahil fiyat\u0131n\u0131 hesaplayan bir makro ekleyelim:<\/p>\n<pre><code class=\"language-php\">\/\/ AppServiceProvider.php i\u00e7inde veya ayr\u0131 bir servis sa\u011flay\u0131c\u0131da\nuse App\\Support\\Number;\nuse Illuminate\\Support\\Str;\n\npublic function boot()\n{\n    Number::macro('addVat', function (float $vatRate = 0.18) {\n        \/\/ 'this' anahtar kelimesi Number nesnesini temsil eder\n        return $this->multiply(1 + $vatRate);\n    });\n\n    Number::macro('toWords', function () {\n        \/\/ Say\u0131y\u0131 yaz\u0131ya \u00e7eviren karma\u015f\u0131k bir mant\u0131k varsayal\u0131m\n        \/\/ Bu \u00f6rnekte sadece basit bir placeholder kullan\u0131lm\u0131\u015ft\u0131r.\n        return Str::title($this->get() . \" TL\");\n    });\n}<\/pre>\n<p><\/code><br \/>\nArt\u0131k bu makrolar\u0131 do\u011frudan <code>Number<\/code> nesnesi \u00fczerinde kullanabilirsiniz:<\/p>\n<pre><code class=\"language-php\">use App\\Support\\Number;\n\n$price = Number::make(100);\necho $price->addVat(0.20)->round(2)->get(); \/\/ 120.00\necho $price->addVat()->toWords()->get(); \/\/ Y\u00fcz On Sekiz Tl (varsay\u0131msal)<\/pre>\n<p><\/code><\/p>\n<h4>\u00d6zel Formatlama Se\u00e7enekleri<\/h4>\n<p><code>format()<\/code> metodu, ondal\u0131k ay\u0131r\u0131c\u0131, binlik ay\u0131r\u0131c\u0131 ve ondal\u0131k basamak say\u0131s\u0131 gibi parametrelerle esnek formatlama se\u00e7enekleri sunar. Bu, farkl\u0131 b\u00f6lgesel formatlara veya \u00f6zel raporlama gereksinimlerine uyum sa\u011flaman\u0131za olanak tan\u0131r.<\/p>\n<pre><code class=\"language-php\">use App\\Support\\Number;\n\n$value = Number::make(1234567.8912);\n\necho $value->format(2, '.', ',')->get(); \/\/ 1,234,567.89 (ABD format\u0131)\necho $value->format(2, ',', '.')->get(); \/\/ 1.234.567,89 (TR format\u0131)<\/pre>\n<p><\/code><\/p>\n<h4>Laravel Ekosistemiyle Entegrasyon<\/h4>\n<p>Numberable API, Laravel'in di\u011fer bile\u015fenleriyle de kolayca entegre edilebilir. \u00d6rne\u011fin, Eloquent modellerinizdeki accessor'lar veya mutator'lar arac\u0131l\u0131\u011f\u0131yla veritaban\u0131ndan gelen say\u0131sal verileri otomatik olarak <code>Number<\/code> nesnelerine d\u00f6n\u00fc\u015ft\u00fcrebilir veya kaydetmeden \u00f6nce formatlayabilirsiniz.<\/p>\n<pre><code class=\"language-php\">\/\/ App\\Models\\Product.php\nnamespace App\\Models;\n\nuse Illuminate\\Database\\Eloquent\\Model;\nuse App\\Support\\Number;\n\nclass Product extends Model\n{\n    \/\/ ...\n\n    public function getPriceAttribute($value)\n    {\n        return Number::make($value);\n    }\n\n    public function setPriceAttribute($value)\n    {\n        \/\/ E\u011fer Number nesnesi geliyorsa get() ile de\u011feri al\n        $this->attributes['price'] = $value instanceof Number ? $value->get() : $value;\n    }\n}\n\n\/\/ Kullan\u0131m\n$product = Product::find(1);\n$newPrice = $product->price->add(10)->round(2)->get(); \/\/ price art\u0131k bir Number nesnesi\n$product->price = $newPrice;\n$product->save();<\/pre>\n<p><\/code><\/p>\n<h3>Perde Arkas\u0131: Tasar\u0131m Prensipleri<\/h3>\n<p>Numberable API'yi geli\u015ftirirken, sadece i\u015flevsellik de\u011fil, ayn\u0131 zamanda sa\u011flam bir mimari ve iyi tasar\u0131m prensipleri de g\u00f6z \u00f6n\u00fcnde bulunduruldu.<\/p>\n<h4>Immutability (De\u011fi\u015fmezlik)<\/h4>\n<p>Numberable API'nin temel tasar\u0131m prensiplerinden biri de\u011fi\u015fmezliktir (immutability). Bir <code>Number<\/code> nesnesi olu\u015fturulduktan sonra, \u00fczerinde yap\u0131lan hi\u00e7bir i\u015flem orijinal nesnenin de\u011ferini de\u011fi\u015ftirmez. Bunun yerine, her metot, yap\u0131lan i\u015flemin sonucunu i\u00e7eren *yeni bir <code>Number<\/code> nesnesi* d\u00f6nd\u00fcr\u00fcr. Bu yakla\u015f\u0131m\u0131n bir\u00e7ok avantaj\u0131 vard\u0131r:<\/p>\n<ul>\n<li><strong>\u00d6ng\u00f6r\u00fclebilirlik:<\/strong> Kodunuzun her zaman beklenen \u015fekilde davranmas\u0131n\u0131 sa\u011flar, yan etkileri ortadan kald\u0131r\u0131r.<\/li>\n<li><strong>G\u00fcvenilirlik:<\/strong> Birden fazla yerde ayn\u0131 <code>Number<\/code> nesnesini kullan\u0131rken, bir yerdeki de\u011fi\u015fikli\u011fin ba\u015fka bir yeri etkileme riski ortadan kalkar.<\/li>\n<li><strong>Hata Ay\u0131klama Kolayl\u0131\u011f\u0131:<\/strong> Her ad\u0131mda yeni bir nesne d\u00f6nd\u00fc\u011f\u00fc i\u00e7in, bir hatan\u0131n nerede meydana geldi\u011fini izlemek daha kolayd\u0131r.<\/li>\n<\/ul>\n<h4>Ak\u0131c\u0131 Aray\u00fcz Tasar\u0131m\u0131<\/h4>\n<p>API'nin \"ak\u0131c\u0131\" olmas\u0131, metot zincirleme yetene\u011fi anlam\u0131na gelir. Bu, her metodun kendisini (<code>$this<\/code>) d\u00f6nd\u00fcrmesiyle sa\u011flan\u0131r. Bu tasar\u0131m deseni, kodun daha do\u011fal, okunabilir ve \"hikaye anlat\u0131r\" gibi olmas\u0131n\u0131 sa\u011flar. Laravel'in <code>Collection<\/code> ve <code>Stringable<\/code> s\u0131n\u0131flar\u0131 da ayn\u0131 deseni kullan\u0131r, bu da Numberable API'nin Laravel ekosistemine do\u011fal bir \u015fekilde uyum sa\u011flamas\u0131na yard\u0131mc\u0131 olur.<\/p>\n<h4>Performans ve Optimizasyon<\/h4>\n<p>Say\u0131sal i\u015flemlerin performans\u0131, \u00f6zellikle b\u00fcy\u00fck veri k\u00fcmeleriyle \u00e7al\u0131\u015f\u0131rken kritik olabilir. Numberable API, dahili olarak PHP'nin yerle\u015fik say\u0131sal tiplerini kullan\u0131r ve gerekti\u011finde <code>bcmath<\/code> gibi hassas matematik k\u00fct\u00fcphanelerinden faydalan\u0131r. Ama\u00e7, hem do\u011fruluktan \u00f6d\u00fcn vermemek hem de gereksiz yere performans d\u00fc\u015f\u00fc\u015f\u00fcne yol a\u00e7mamakt\u0131r. \u00c7o\u011fu durumda, bir <code>Number<\/code> nesnesi kullanman\u0131n do\u011frudan PHP operat\u00f6rlerini kullanmaya g\u00f6re ihmal edilebilir bir performans fark\u0131 yaratmas\u0131 beklenir. Ancak, performans\u0131n kritik oldu\u011fu ve milyonlarca i\u015flem yap\u0131lan senaryolarda, do\u011frudan operat\u00f6r kullan\u0131m\u0131 hala en h\u0131zl\u0131 yol olabilir. Bu t\u00fcr durumlarda, Numberable API'nin sa\u011flad\u0131\u011f\u0131 okunabilirlik ve bak\u0131m kolayl\u0131\u011f\u0131 ile performans aras\u0131ndaki dengeyi de\u011ferlendirmek \u00f6nemlidir.<\/p>\n<h3>Gelecek Planlar\u0131 ve Topluluk<\/h3>\n<p>Numberable API'nin v1.0.0 s\u00fcr\u00fcm\u00fc, sa\u011flam bir temel sunsa da, gelecekteki geli\u015ftirmeler i\u00e7in bir\u00e7ok potansiyel bar\u0131nd\u0131r\u0131yor.<\/p>\n<h4>Yakla\u015fan \u00d6zellikler<\/h4>\n<p>Gelecek s\u00fcr\u00fcmlerde eklenmesi planlanan baz\u0131 \u00f6zellikler \u015funlard\u0131r:<\/p>\n<ul>\n<li><strong>Para Birimi Y\u00f6netimi:<\/strong> Farkl\u0131 para birimleri aras\u0131nda d\u00f6n\u00fc\u015f\u00fcm, kur hesaplamalar\u0131 ve para birimine \u00f6zel formatlama.<\/li>\n<li><strong>\u0130statistiksel Fonksiyonlar:<\/strong> Ortalama, medyan, standart sapma gibi temel istatistiksel hesaplamalar.<\/li>\n<li><strong>Daha Geli\u015fmi\u015f Matematiksel Fonksiyonlar:<\/strong> Logaritma, trigonometrik fonksiyonlar gibi daha karma\u015f\u0131k matematiksel i\u015flemler.<\/li>\n<li><strong>Uluslararas\u0131la\u015ft\u0131rma (i18n) Deste\u011fi:<\/strong> <code>NumberFormatter<\/code> gibi PHP'nin yerle\u015fik ara\u00e7lar\u0131n\u0131 kullanarak daha esnek uluslararas\u0131 say\u0131 formatlama.<\/li>\n<li><strong>JSON Serile\u015ftirme:<\/strong> <code>Number<\/code> nesnelerinin do\u011frudan JSON'a serile\u015ftirilebilmesi.<\/li>\n<\/ul>\n<h4>Katk\u0131da Bulunma Yollar\u0131<\/h4>\n<p>Bu proje, a\u00e7\u0131k kaynak toplulu\u011funun g\u00fcc\u00fcne inanarak geli\u015ftirilmi\u015ftir. Geli\u015ftirmelere katk\u0131da bulunmak isteyen herkesi GitHub deposuna bekliyorum. Hata raporlar\u0131, yeni \u00f6zellik \u00f6nerileri, dok\u00fcmantasyon iyile\u015ftirmeleri veya do\u011frudan kod katk\u0131lar\u0131, projenin daha iyiye gitmesi i\u00e7in \u00e7ok de\u011ferlidir. Projenin GitHub linkini yak\u0131nda duyuraca\u011f\u0131m.<\/p>\n<h4>Geri Bildirim ve Destek<\/h4>\n<p>Numberable API'yi kullanan geli\u015ftiricilerden gelecek her t\u00fcrl\u00fc geri bildirim \u00e7ok k\u0131ymetlidir. Kar\u015f\u0131la\u015ft\u0131\u011f\u0131n\u0131z sorunlar, be\u011fendi\u011finiz veya be\u011fenmedi\u011finiz y\u00f6nler, eksik buldu\u011funuz \u00f6zellikler veya iyile\u015ftirme \u00f6nerileri i\u00e7in l\u00fctfen benimle ileti\u015fime ge\u00e7mekten \u00e7ekinmeyin. Geri bildirimleriniz, API'nin gelecekteki yol haritas\u0131n\u0131 \u015fekillendirmede \u00f6nemli bir rol oynayacakt\u0131r.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Laravel i\u00e7in geli\u015ftirdi\u011fim bu ak\u0131c\u0131 Numberable API (v1.0.0), say\u0131sal verilerle \u00e7al\u0131\u015fmay\u0131 daha keyifli, g\u00fcvenli ve verimli hale getirmeyi hedefliyor. Kod okunabilirli\u011fini art\u0131rmas\u0131, bak\u0131m maliyetlerini d\u00fc\u015f\u00fcrmesi ve hata potansiyelini azaltmas\u0131yla, \u00f6zellikle finans, e-ticaret ve raporlama gibi say\u0131sal i\u015flemlerin yo\u011fun oldu\u011fu projelerde geli\u015ftiricilere b\u00fcy\u00fck kolayl\u0131klar sa\u011flayacakt\u0131r. Laravel'in ak\u0131c\u0131 aray\u00fcz gelene\u011fini say\u0131sal d\u00fcnyaya ta\u015f\u0131yan bu paket, modern PHP uygulamalar\u0131nda say\u0131sal veri y\u00f6netiminde yeni bir standart belirlemeye adayd\u0131r. Projelerinizde deneyerek geri bildirimlerinizi payla\u015fman\u0131z\u0131 d\u00f6rt g\u00f6zle bekliyorum!<\/p>\n<h3>SSS (S\u0131k Sorulan Sorular)<\/h3>\n<h4>S1: Neden do\u011frudan PHP'nin matematik fonksiyonlar\u0131n\u0131 kullanm\u0131yorum?<\/h4>\n<p>Do\u011frudan PHP fonksiyonlar\u0131 basit i\u015flemler i\u00e7in yeterli olsa da, Numberable API daha karma\u015f\u0131k, zincirleme i\u015flemlerde kod okunabilirli\u011fini ve bak\u0131m kolayl\u0131\u011f\u0131n\u0131 art\u0131r\u0131r. Ayr\u0131ca, tip g\u00fcvenli\u011fi ve hata azaltma konusunda ek avantajlar sunar. Her metot, ne yapt\u0131\u011f\u0131n\u0131 a\u00e7\u0131k\u00e7a belirtti\u011fi i\u00e7in kodunuz daha sezgisel hale gelir.<\/p>\n<h4>S2: Performans etkisi var m\u0131?<\/h4>\n<p>Evet, her nesne olu\u015fturma ve metot \u00e7a\u011fr\u0131s\u0131, do\u011frudan operat\u00f6r kullan\u0131m\u0131na g\u00f6re k\u00fc\u00e7\u00fck bir performans y\u00fck\u00fc getirir. Ancak, modern PHP yorumlay\u0131c\u0131lar\u0131 ve Numberable API'nin optimize edilmi\u015f yap\u0131s\u0131 sayesinde, bu fark \u00e7o\u011fu uygulama i\u00e7in ihmal edilebilir d\u00fczeydedir. Performans\u0131n milisaniyelerle \u00f6l\u00e7\u00fcld\u00fc\u011f\u00fc ve milyonlarca i\u015flemin yap\u0131ld\u0131\u011f\u0131 \u00e7ok yo\u011fun senaryolarda, do\u011frudan operat\u00f6r kullan\u0131m\u0131 hala tercih edilebilir.<\/p>\n<h4>S3: Hangi say\u0131 tiplerini destekliyor?<\/h4>\n<p>Numberable API, PHP'nin <code>int<\/code>, <code>float<\/code> ve say\u0131sal olarak yorumlanabilen <code>string<\/code> tiplerini destekler. Dahili olarak, hassasiyet gerektiren durumlarda <code>bcmath<\/code> gibi k\u00fct\u00fcphanelerden faydalanarak do\u011fru sonu\u00e7lar elde etmeyi ama\u00e7lar.<\/p>\n<h4>S4: Laravel d\u0131\u015f\u0131nda kullanabilir miyim?<\/h4>\n<p>Evet, Numberable API Laravel'den ba\u011f\u0131ms\u0131z bir PHP paketidir. Herhangi bir PHP projesinde Composer arac\u0131l\u0131\u011f\u0131yla kurup kullanabilirsiniz. Laravel'in makro \u00f6zelli\u011fi gibi baz\u0131 entegrasyonlar Laravel'e \u00f6zg\u00fc olsa da, temel i\u015flevsellik t\u00fcm PHP projelerinde mevcuttur.<\/p>\n<h4>S5: Nereden katk\u0131da bulunabilirim veya destek alabilirim?<\/h4>\n<p>Projenin GitHub deposu \u00fczerinden hata raporlar\u0131 a\u00e7abilir, yeni \u00f6zellik \u00f6nerilerinde bulunabilir veya do\u011frudan kod katk\u0131s\u0131 sa\u011flayabilirsiniz. Ayr\u0131ca, geri bildirimleriniz ve sorular\u0131n\u0131z i\u00e7in benimle do\u011frudan ileti\u015fime ge\u00e7ebilirsiniz. GitHub linki ve ileti\u015fim kanallar\u0131 yak\u0131nda duyurulacakt\u0131r.<\/p>\n","protected":false},"excerpt":{"rendered":"Laravel \u0130\u00e7in Ak\u0131c\u0131 Bir Numberable API Geli\u015ftirdim: Say\u0131sal Veri Y\u00f6netiminde Yeni Bir D\u00f6nem (v1.","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[133],"tags":[],"class_list":{"0":"post-39835","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-php","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Laravel \u0130\u00e7in Ak\u0131c\u0131 Bir Numberable API Geli\u015ftirdim: Say\u0131sal Veri Y\u00f6netiminde Yeni Bir D\u00f6nem (v1.0.0) - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/laravel-icin-akici-bir-numberable-api-gelistirdim-sayisal-veri-yonetiminde-yeni-bir-donem-v1-0-0\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Laravel \u0130\u00e7in Ak\u0131c\u0131 Bir Numberable API Geli\u015ftirdim: Say\u0131sal Veri Y\u00f6netiminde Yeni Bir D\u00f6nem (v1.0.0)\" \/>\n<meta property=\"og:description\" content=\"Laravel \u0130\u00e7in Ak\u0131c\u0131 Bir Numberable API Geli\u015ftirdim: Say\u0131sal Veri Y\u00f6netiminde Yeni Bir D\u00f6nem (v1.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/laravel-icin-akici-bir-numberable-api-gelistirdim-sayisal-veri-yonetiminde-yeni-bir-donem-v1-0-0\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-24T09:30:41+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/laravel-icin-akici-bir-numberable-api-gelistirdim-sayisal-veri-yonetiminde-yeni-bir-donem-v1-0-0\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/laravel-icin-akici-bir-numberable-api-gelistirdim-sayisal-veri-yonetiminde-yeni-bir-donem-v1-0-0\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Laravel \u0130\u00e7in Ak\u0131c\u0131 Bir Numberable API Geli\u015ftirdim: Say\u0131sal Veri Y\u00f6netiminde Yeni Bir D\u00f6nem (v1.0.0)\",\"datePublished\":\"2026-02-24T09:30:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/laravel-icin-akici-bir-numberable-api-gelistirdim-sayisal-veri-yonetiminde-yeni-bir-donem-v1-0-0\/\"},\"wordCount\":2434,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"PHP\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/laravel-icin-akici-bir-numberable-api-gelistirdim-sayisal-veri-yonetiminde-yeni-bir-donem-v1-0-0\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/laravel-icin-akici-bir-numberable-api-gelistirdim-sayisal-veri-yonetiminde-yeni-bir-donem-v1-0-0\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/laravel-icin-akici-bir-numberable-api-gelistirdim-sayisal-veri-yonetiminde-yeni-bir-donem-v1-0-0\/\",\"name\":\"Laravel \u0130\u00e7in Ak\u0131c\u0131 Bir Numberable API Geli\u015ftirdim: Say\u0131sal Veri Y\u00f6netiminde Yeni Bir D\u00f6nem (v1.0.0) - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-02-24T09:30:41+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/laravel-icin-akici-bir-numberable-api-gelistirdim-sayisal-veri-yonetiminde-yeni-bir-donem-v1-0-0\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/laravel-icin-akici-bir-numberable-api-gelistirdim-sayisal-veri-yonetiminde-yeni-bir-donem-v1-0-0\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/laravel-icin-akici-bir-numberable-api-gelistirdim-sayisal-veri-yonetiminde-yeni-bir-donem-v1-0-0\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Laravel \u0130\u00e7in Ak\u0131c\u0131 Bir Numberable API Geli\u015ftirdim: Say\u0131sal Veri Y\u00f6netiminde Yeni Bir D\u00f6nem (v1.0.0)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Laravel \u0130\u00e7in Ak\u0131c\u0131 Bir Numberable API Geli\u015ftirdim: Say\u0131sal Veri Y\u00f6netiminde Yeni Bir D\u00f6nem (v1.0.0) - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/laravel-icin-akici-bir-numberable-api-gelistirdim-sayisal-veri-yonetiminde-yeni-bir-donem-v1-0-0\/","og_locale":"tr_TR","og_type":"article","og_title":"Laravel \u0130\u00e7in Ak\u0131c\u0131 Bir Numberable API Geli\u015ftirdim: Say\u0131sal Veri Y\u00f6netiminde Yeni Bir D\u00f6nem (v1.0.0)","og_description":"Laravel \u0130\u00e7in Ak\u0131c\u0131 Bir Numberable API Geli\u015ftirdim: Say\u0131sal Veri Y\u00f6netiminde Yeni Bir D\u00f6nem (v1.","og_url":"https:\/\/fatihsoysal.com\/blog\/laravel-icin-akici-bir-numberable-api-gelistirdim-sayisal-veri-yonetiminde-yeni-bir-donem-v1-0-0\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-02-24T09:30:41+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"7 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/laravel-icin-akici-bir-numberable-api-gelistirdim-sayisal-veri-yonetiminde-yeni-bir-donem-v1-0-0\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/laravel-icin-akici-bir-numberable-api-gelistirdim-sayisal-veri-yonetiminde-yeni-bir-donem-v1-0-0\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Laravel \u0130\u00e7in Ak\u0131c\u0131 Bir Numberable API Geli\u015ftirdim: Say\u0131sal Veri Y\u00f6netiminde Yeni Bir D\u00f6nem (v1.0.0)","datePublished":"2026-02-24T09:30:41+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/laravel-icin-akici-bir-numberable-api-gelistirdim-sayisal-veri-yonetiminde-yeni-bir-donem-v1-0-0\/"},"wordCount":2434,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["PHP"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/laravel-icin-akici-bir-numberable-api-gelistirdim-sayisal-veri-yonetiminde-yeni-bir-donem-v1-0-0\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/laravel-icin-akici-bir-numberable-api-gelistirdim-sayisal-veri-yonetiminde-yeni-bir-donem-v1-0-0\/","url":"https:\/\/fatihsoysal.com\/blog\/laravel-icin-akici-bir-numberable-api-gelistirdim-sayisal-veri-yonetiminde-yeni-bir-donem-v1-0-0\/","name":"Laravel \u0130\u00e7in Ak\u0131c\u0131 Bir Numberable API Geli\u015ftirdim: Say\u0131sal Veri Y\u00f6netiminde Yeni Bir D\u00f6nem (v1.0.0) - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-02-24T09:30:41+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/laravel-icin-akici-bir-numberable-api-gelistirdim-sayisal-veri-yonetiminde-yeni-bir-donem-v1-0-0\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/laravel-icin-akici-bir-numberable-api-gelistirdim-sayisal-veri-yonetiminde-yeni-bir-donem-v1-0-0\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/laravel-icin-akici-bir-numberable-api-gelistirdim-sayisal-veri-yonetiminde-yeni-bir-donem-v1-0-0\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Laravel \u0130\u00e7in Ak\u0131c\u0131 Bir Numberable API Geli\u015ftirdim: Say\u0131sal Veri Y\u00f6netiminde Yeni Bir D\u00f6nem (v1.0.0)"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/39835","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=39835"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/39835\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=39835"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=39835"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=39835"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}