{"id":2539,"date":"2023-10-30T18:27:29","date_gmt":"2023-10-30T15:27:29","guid":{"rendered":"https:\/\/guven.atbakan.com\/blog\/?p=2539"},"modified":"2023-10-30T18:27:30","modified_gmt":"2023-10-30T15:27:30","slug":"laravel-bir-web-frameworkten-daha-fazlasi","status":"publish","type":"post","link":"https:\/\/guven.atbakan.com\/blog\/tr\/laravel-bir-web-frameworkten-daha-fazlasi\/","title":{"rendered":"Laravel: Bir web framework\u2019ten daha fazlas\u0131"},"content":{"rendered":"<div class=\"er qa qb qc qd\">\n<div class=\"ab cm\">\n<div class=\"fg bg fh fi fj fk\">\n<p id=\"ef74\" class=\"pw-post-body-paragraph tv tw qf kp b tx ty tz ua ub uc ud ue jz uf ug uh ke ui uj uk kj ul um un uo er bj\" data-selectable-paragraph=\"\">Son 10 y\u0131l i\u00e7erisinde PHP\u2019nin ve toplulu\u011funun geldi\u011fi noktada \u00e7ok \u00f6nemli bir pay\u0131 olan Laravel\u2019i yeterince \u00f6vmedi\u011fimizi farkettim ve bunun \u00fczerine bu yaz\u0131ya ba\u015flama karar\u0131 ald\u0131m.<\/p>\n<p id=\"1389\" class=\"pw-post-body-paragraph tv tw qf kp b tx ty tz ua ub uc ud ue jz uf ug uh ke ui uj uk kj ul um un uo er bj\" data-selectable-paragraph=\"\">Yaz\u0131ya ba\u015flamadan \u00f6nce Laravel\u2019in \u00e7\u0131kt\u0131\u011f\u0131 y\u0131llardaki ekosistemden ve mevcut durumundan bahsetmeyi d\u00fc\u015f\u00fcnd\u00fcm. Ancak do\u011frudan Laravel\u2019in neden bug\u00fcn \u00e7ok iyi bir konumda oldu\u011fundan ve \u00e7ok sevildi\u011finden bahsetmek ve framework\u00fcn yeteneklerini aktarmak daha iyi olacakt\u0131r.<\/p>\n<p id=\"27a4\" class=\"pw-post-body-paragraph tv tw qf kp b tx ty tz ua ub uc ud ue jz uf ug uh ke ui uj uk kj ul um un uo er bj\" data-selectable-paragraph=\"\">\u0130\u015fte ba\u015fl\u0131yoruz\u2026<\/p>\n<p id=\"24e8\" class=\"pw-post-body-paragraph tv tw qf kp b tx ty tz ua ub uc ud ue jz uf ug uh ke ui uj uk kj ul um un uo er bj\" data-selectable-paragraph=\"\">\u015eunu s\u00f6ylemekte hi\u00e7 bir sak\u0131nca yok. Laravel, PHP\u2019nin k\u00f6t\u00fc rep\u00fctasyonunu silen, onu tekrar eski g\u00fcnlerine d\u00f6nd\u00fcren, dil de\u011fi\u015ftirme arefesindeki ki\u015fileri tekrar PHP\u2019ye ba\u011flayan frameworkt\u00fcr. Laravel\u2019in yan\u0131na sa\u011flam bir altyap\u0131 sunan Symfony\u2019i ve game changer olan Composer\u2019\u0131 da dahil edebiliriz.<\/p>\n<p id=\"f494\" class=\"pw-post-body-paragraph tv tw qf kp b tx ty tz ua ub uc ud ue jz uf ug uh ke ui uj uk kj ul um un uo er bj\" data-selectable-paragraph=\"\">Ge\u00e7ti\u011fimiz y\u0131llarda Laravel bir web framework olmaktan \u00f6teye ge\u00e7ti, bir ekosistem halini ald\u0131. Neden bu kadar \u00e7ok sevildi ve b\u00fcy\u00fck bir ekosistem olabilmesinin yolu a\u00e7\u0131ld\u0131 sorusunun verilebilecek tek bir yan\u0131t\u0131 var: <strong class=\"kp jo\">\u201cdeveloper friendly\u201d<\/strong> olmas\u0131. Yaz\u0131l\u0131m geli\u015ftirirken keyif almak, h\u0131zl\u0131 geli\u015ftirme yapmak, problemlere kolay \u00e7\u00f6z\u00fcmler bulmak ve \u201csevilmeyen\u201d dayatmalar\u0131n olmamas\u0131 bir developer i\u00e7in en \u00f6nemli konular\u0131n ba\u015f\u0131nda geliyor. Laravel tam olarak bu konuda ilk g\u00fcnden itibaren a\u00e7\u0131k ara \u00f6ne \u00e7\u0131kt\u0131. Peki buna nereden ba\u015flad\u0131? <strong class=\"kp jo\">D\u00f6k\u00fcmantasyon!<\/strong> Evet arkada\u015flar, iyi bir d\u00f6k\u00fcmantasyon yaz\u0131l\u0131m\u0131n her alan\u0131nda en \u00f6nemli konulardan birisidir. Laravel d\u00f6k\u00fcmantasyonu, teknik \u00f6zelliklerden ziyade framework\u00fcn yetenekleri ve kullan\u0131m\u0131 ile ilgili developer friendly bir yakla\u015f\u0131m sergiliyor. \u00d6zellikle \u00e7\u0131kt\u0131\u011f\u0131 d\u00f6nemde a\u00e7\u0131k ara bir fark yaratt\u0131. Framework yap\u0131s\u0131n\u0131 h\u0131zl\u0131 aktarmas\u0131, \u00f6zelliklerin kullan\u0131m\u0131 ile ilgili kolay bilgiler vermesi insanlar\u0131n \u00e7ok h\u0131zl\u0131 adapte olabilmesini sa\u011flad\u0131. Yani d\u00f6k\u00fcman yaz\u0131n, hatta document-driven-development yap\u0131n diyen insanlar bo\u015fa konu\u015fmuyor.<\/p>\n<p id=\"ef11\" class=\"pw-post-body-paragraph tv tw qf kp b tx ty tz ua ub uc ud ue jz uf ug uh ke ui uj uk kj ul um un uo er bj\" data-selectable-paragraph=\"\">D\u00f6k\u00fcmantasyon son kullan\u0131c\u0131ya g\u00f6r\u00fcnen k\u0131s\u0131m asl\u0131nda. Bunun arkas\u0131nda Laravel\u2019i bu kadar iyi yapan \u015fey, detaylara verdi\u011fi \u00f6nem ve her\u015feyin minimal olmas\u0131. Kodu kolay ve h\u0131zl\u0131 yazman\u0131z i\u00e7in f\u0131rsat sa\u011fl\u0131yor, bunu te\u015fvik ediyor. Yani burada bir felsefe var.<\/p>\n<p id=\"92a4\" class=\"pw-post-body-paragraph tv tw qf kp b tx ty tz ua ub uc ud ue jz uf ug uh ke ui uj uk kj ul um un uo er bj\" data-selectable-paragraph=\"\">Laravel y\u0131llar i\u00e7erisinde ciddi bi\u00e7imde kabuk de\u011fi\u015ftirdi. Benim ilk kulland\u0131\u011f\u0131m 4.2 versiyonu ile 10.x versiyonu aras\u0131nda ciddi farklar var. Bunun alt\u0131nda yatan sebep bu minimalizm ve sadelik aray\u0131\u015f\u0131. \u0130ster yaz\u0131l\u0131m \u00fcr\u00fcn\u00fc yap\u0131n isterseniz bir oyun geli\u015ftirin, hedef kitlenizi ne kadar mutlu ederseniz o kadar \u00e7ok kullan\u0131c\u0131 edinirsiniz. Developer\u0131 mutlu etmenin yolu ise, kod yazarken her\u015feyi kolayla\u015ft\u0131rmak ve her konuya bir \u00e7\u00f6z\u00fcm bulunabilmesi. D\u00f6k\u00fcmantasyon ve felsefe konusunda biraz fazla yazd\u0131\u011f\u0131m\u0131 farkettim. Ama ger\u00e7ekten bu temel felsefe t\u00fcm konular\u0131 iyi anlamda etkiliyor.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"ab cm up uq ml ur\" role=\"separator\">\n<hr \/>\n<\/div>\n<div class=\"er qa qb qc qd\">\n<div class=\"ab cm\">\n<div class=\"fg bg fh fi fj fk\">\n<p id=\"860f\" class=\"pw-post-body-paragraph tv tw qf kp b tx ty tz ua ub uc ud ue jz uf ug uh ke ui uj uk kj ul um un uo er bj\" data-selectable-paragraph=\"\">\u0130\u015fin teknik taraf\u0131na indi\u011fimizde, bizi \u00e7ok g\u00fczel \u00f6zellikler kar\u015f\u0131l\u0131yor. \u201cBir web framework\u2019te neler olmal\u0131?\u201d sorusunu biraz irdeleyerek bu \u00f6zelliklerin neler oldu\u011funu k\u0131sa k\u0131sa tan\u0131tabiliriz. \u0130yi bir routing yap\u0131s\u0131, veritaban\u0131 ba\u011flant\u0131s\u0131, form yap\u0131lar\u0131, template motoru, authentication, belki dahili cache yap\u0131s\u0131 i\u015fin ba\u015f\u0131nda gelir. Laravel bunlar\u0131n hepsini bize fazlas\u0131yla sa\u011fl\u0131yor! Bu yaz\u0131mda kod \u00f6rnekleri olmayacak ama her bir konu i\u00e7in d\u00f6k\u00fcmantasyonu linklendirece\u011fim. H\u0131zl\u0131ca bir g\u00f6z atarak, her\u015feyin ne kadar kolay oldu\u011funu siz de g\u00f6rebilirsiniz.<\/p>\n<p id=\"3391\" class=\"pw-post-body-paragraph tv tw qf kp b tx ty tz ua ub uc ud ue jz uf ug uh ke ui uj uk kj ul um un uo er bj\" data-selectable-paragraph=\"\"><a class=\"af uv\" href=\"https:\/\/laravel.com\/docs\/10.x\/routing\" target=\"_blank\" rel=\"noopener ugc nofollow\">Routing<\/a> yap\u0131s\u0131 olduk\u00e7a basit ve \u00e7ok fazla \u00f6zellik bar\u0131nd\u0131r\u0131yor. \u00c7ok kolay bi\u00e7imde url yap\u0131s\u0131n\u0131 t\u00fcm detaylar\u0131yla olu\u015fturabiliyorsunuz. Bunu pek tabii controller mimarisi ve <a class=\"af uv\" href=\"https:\/\/laravel.com\/docs\/10.x\/blade\" target=\"_blank\" rel=\"noopener ugc nofollow\">Blade template motoru<\/a> takip ediyor. HTTP Kernel i\u00e7erisinde dahili gelen <a class=\"af uv\" href=\"https:\/\/laravel.com\/docs\/10.x\/middleware\" target=\"_blank\" rel=\"noopener ugc nofollow\">Middleware<\/a> yap\u0131s\u0131, bir\u00e7ok konuyu \u00f6nden kurgulaman\u0131z\u0131 ve \u00e7\u00f6zmenizi sa\u011fl\u0131yor. Veritaban\u0131 k\u0131sm\u0131nda ise <a class=\"af uv\" href=\"https:\/\/laravel.com\/docs\/10.x\/eloquent\" target=\"_blank\" rel=\"noopener ugc nofollow\">Eloquent ORM<\/a> -abartarak s\u00f6yl\u00fcyorum- en iyi active record uygulamalar\u0131ndan bir tanesi. S\u0131n\u0131rs\u0131z say\u0131da \u00f6zelli\u011fi oldu\u011funa yemin edebilirim ama ispat edemem (Matematik mezunu oldu\u011fum i\u00e7in). Eloquent ORM\u2019i \u00e7ok basit bir <a class=\"af uv\" href=\"https:\/\/laravel.com\/docs\/10.x\/migrations\" target=\"_blank\" rel=\"noopener ugc nofollow\">Migration<\/a> yap\u0131s\u0131 destekliyor. B\u00f6ylece veritaban\u0131 de\u011fi\u015fikliklerini de g\u00fczelce ger\u00e7ekle\u015ftirebiliyor ve takip edebiliyorsunuz.<\/p>\n<p id=\"dec3\" class=\"pw-post-body-paragraph tv tw qf kp b tx ty tz ua ub uc ud ue jz uf ug uh ke ui uj uk kj ul um un uo er bj\" data-selectable-paragraph=\"\">Laravel <a class=\"af uv\" href=\"https:\/\/laravel.com\/docs\/10.x\/authentication\" target=\"_blank\" rel=\"noopener ugc nofollow\">Authentication<\/a>, \u015fu ana kadar kulland\u0131\u011f\u0131m en basit sistem olabilir. \u0130ster session ile olsun, ister stateless; \u00e7ok kolay bi\u00e7imde bunlar\u0131 sa\u011flayabiliyorsunuz. Haz\u0131r session demi\u015fken, <a class=\"af uv\" href=\"https:\/\/laravel.com\/docs\/10.x\/session\" target=\"_blank\" rel=\"noopener ugc nofollow\">Session<\/a> ve <a class=\"af uv\" href=\"https:\/\/laravel.com\/docs\/10.x\/responses#attaching-cookies-to-responses\" target=\"_blank\" rel=\"noopener ugc nofollow\">Cookie<\/a> y\u00f6netimi i\u00e7in de \u00e7ok basit kullan\u0131mlar\u0131 mevcut. Session ve cookie default olarak <a class=\"af uv\" href=\"https:\/\/laravel.com\/docs\/10.x\/encryption\" target=\"_blank\" rel=\"noopener ugc nofollow\">Encryption<\/a> k\u00fct\u00fcphanesinden destek al\u0131yor ve g\u00fcvenlik konusunda bir\u00e7ok \u015feyi ba\u015ftan hallediyor. Encryption k\u00fct\u00fcphanesini sistemin genelinde kullanabiliyorsunuz. \u0130sterseniz URL yap\u0131s\u0131nda encryption kullan\u0131n, isterseniz veritaban\u0131ndaki verilerinizde. Sadece birka\u00e7 sat\u0131r kod ile kolayca bunu sa\u011flayabilirsiniz. Eloquent i\u00e7in encrpytion uygulayaca\u011f\u0131n\u0131z kolon i\u00e7in \u201cencrypted\u201d castingi uygulaman\u0131z yeterli olacakt\u0131r. Authentication taraf\u0131na d\u00f6necek olursak, API geli\u015ftirenler i\u00e7in basit\u00e7e <a class=\"af uv\" href=\"https:\/\/laravel.com\/docs\/10.x\/passport\" target=\"_blank\" rel=\"noopener ugc nofollow\">Passport<\/a> ile OAuth2 entegrasyonu yapabilirsiniz. Yok, OAuth2 bizim i\u00e7in fazla olur derseniz, <a class=\"af uv\" href=\"https:\/\/laravel.com\/docs\/10.x\/sanctum\" target=\"_blank\" rel=\"noopener ugc nofollow\">Sanctum<\/a> ile kolayca API Token kullanabilir hale geliyorsunuz. <a class=\"af uv\" href=\"https:\/\/laravel.com\/docs\/10.x\/socialite\" target=\"_blank\" rel=\"noopener ugc nofollow\">Socialite<\/a> paketiyle Google, Facebook gibi bir\u00e7ok login y\u00f6ntemini kolayca entegre edebiliyorsunuz. \u00d6zellikle startuplar i\u00e7in h\u0131zl\u0131 bir \u015fekilde entegrasyonlar yapman\u0131n ne kadar \u00f6nemli oldu\u011funu tahmin edebiliyorsunuzdur.<\/p>\n<p id=\"a5b6\" class=\"pw-post-body-paragraph tv tw qf kp b tx ty tz ua ub uc ud ue jz uf ug uh ke ui uj uk kj ul um un uo er bj\" data-selectable-paragraph=\"\">Authentication ile <a class=\"af uv\" href=\"https:\/\/laravel.com\/docs\/10.x\/authorization\" target=\"_blank\" rel=\"noopener ugc nofollow\">Authorization<\/a> b\u00f6l\u00fcnmez bir b\u00fct\u00fcnd\u00fcr bence. Laravel bunu temelden sa\u011fl\u0131yor ve Authorization\u2019u \u00e7ok \u00f6nemli bir noktaya yerle\u015ftiriyor. \u00c7ok kolay ve kullan\u0131\u015fl\u0131 oldu\u011funu s\u00f6ylememe gerek yok. Frameworkteki t\u00fcm sistemlerle kolayca entegre edilebiliyor. Middleware, controller, form request nerede kulland\u0131\u011f\u0131n\u0131z hi\u00e7 farketmez. Form request demi\u015fken\u2026 Request yap\u0131s\u0131na kolayca dahil edilebilen m\u00fckemmel ve bir di\u011fer sonsuz \u00f6zellikli <a class=\"af uv\" href=\"https:\/\/laravel.com\/docs\/10.x\/validation\" target=\"_blank\" rel=\"noopener ugc nofollow\">Validation<\/a> k\u00fct\u00fcphanesine mutlaka bir g\u00f6z at\u0131n. Farkl\u0131 bir framework kullan\u0131yorsan\u0131z e\u011fer eminim bu basitli\u011fi isteyeceksinizdir.<\/p>\n<p id=\"fd81\" class=\"pw-post-body-paragraph tv tw qf kp b tx ty tz ua ub uc ud ue jz uf ug uh ke ui uj uk kj ul um un uo er bj\" data-selectable-paragraph=\"\">Yine \u00e7ok g\u00fc\u00e7l\u00fc bir <a class=\"af uv\" href=\"https:\/\/laravel.com\/docs\/10.x\/cache\" target=\"_blank\" rel=\"noopener ugc nofollow\">Cache<\/a> k\u00fct\u00fcphanesi framework i\u00e7erisinde geliyor. <a class=\"af uv\" href=\"https:\/\/laravel.com\/docs\/10.x\/mail\" target=\"_blank\" rel=\"noopener ugc nofollow\">E-mail<\/a> g\u00f6nderimleri ise inan\u0131lmaz kolay. E-mailleri \u201c<a class=\"af uv\" href=\"https:\/\/laravel.com\/docs\/10.x\/notifications\" target=\"_blank\" rel=\"noopener ugc nofollow\">Notification<\/a>\u201d olarak kurgulay\u0131p, \u00e7ok daha fazla yetenek kazand\u0131rabiliyorsunuz. \u00d6rne\u011fin bir e-mail g\u00f6nderirken yan\u0131nda bir push notification g\u00f6nderebiliyor ya da Slack\u2019e bir mesaj yazd\u0131rabiliyorsunuz. Tabi e-mail olmak zorunda de\u011fil, do\u011frudan bir notification kurgulay\u0131p farkl\u0131 farkl\u0131 kanallara bunu farkl\u0131 kurallarda g\u00f6nderebiliyorsunuz. <a class=\"af uv\" href=\"https:\/\/laravel.com\/docs\/10.x\/filesystem\" target=\"_blank\" rel=\"noopener ugc nofollow\">Storage<\/a> taraf\u0131 da \u00e7ok g\u00fc\u00e7l\u00fc. Filesystem, AWS, Azure vb. hi\u00e7 farketmez, dosyalar\u0131n\u0131z\u0131 y\u00fckleme ve eri\u015fim i\u015flemi \u00e7ok kolay. Dahili olarak signed-url destekliyor. T\u00fcm bu ayarlar\u0131 <a class=\"af uv\" href=\"https:\/\/laravel.com\/docs\/10.x\/configuration\" target=\"_blank\" rel=\"noopener ugc nofollow\">Config<\/a> yap\u0131s\u0131 i\u00e7erisinde yapabiliyorsunuz. <code class=\"ef uw ux uy uz b\">.env<\/code> kullan\u0131m\u0131 default olarak geliyor.<\/p>\n<p id=\"fb4d\" class=\"pw-post-body-paragraph tv tw qf kp b tx ty tz ua ub uc ud ue jz uf ug uh ke ui uj uk kj ul um un uo er bj\" data-selectable-paragraph=\"\">Sistemde dahili olarak gelen <a class=\"af uv\" href=\"https:\/\/laravel.com\/docs\/10.x\/queues\" target=\"_blank\" rel=\"noopener ugc nofollow\">Queue<\/a> yap\u0131s\u0131, i\u015fleri asenkron olarak \u00e7al\u0131\u015ft\u0131rman\u0131za olanak sa\u011fl\u0131yor. Bu yap\u0131 da Redis, SQS, Beanstalk, Rabbitmq gibi arac\u0131larla kolayca \u00e7al\u0131\u015fabiliyor. Bunun \u00fczerine daha \u00f6nce Laravel T\u00fcrkiye\u2019de detayl\u0131 bir sunum yapm\u0131\u015ft\u0131m, \u015furadan izleyebilirsiniz: <a class=\"af uv\" href=\"https:\/\/www.youtube.com\/watch?v=PfiVaxZMXUI\" target=\"_blank\" rel=\"noopener ugc nofollow\">https:\/\/www.youtube.com\/watch?v=PfiVaxZMXUI<\/a><\/p>\n<p id=\"2189\" class=\"pw-post-body-paragraph tv tw qf kp b tx ty tz ua ub uc ud ue jz uf ug uh ke ui uj uk kj ul um un uo er bj\" data-selectable-paragraph=\"\"><a class=\"af uv\" href=\"https:\/\/laravel.com\/docs\/10.x\/testing\" target=\"_blank\" rel=\"noopener ugc nofollow\">Test<\/a> yazmak genelde yaz\u0131l\u0131mc\u0131lar\u0131n \u00f6teledi\u011fi bir konu fakat Laravel bu ortam\u0131 yine elegant bir bi\u00e7imde bize sa\u011fl\u0131yor. \u0130ster unit test, ister functional test, ister browser test yaz\u0131n; yazmamak i\u00e7in tek bahaneniz istememi\u015f olman\u0131zd\u0131r. \u00c7i\u00e7ek gibi testler yazacaks\u0131n\u0131z \ud83c\udf38<\/p>\n<p id=\"e2da\" class=\"pw-post-body-paragraph tv tw qf kp b tx ty tz ua ub uc ud ue jz uf ug uh ke ui uj uk kj ul um un uo er bj\" data-selectable-paragraph=\"\">Daha anlatacak \u00e7ok \u00f6zellik var asl\u0131nda. Her bir ba\u015fl\u0131k alt\u0131nda da onlarca anlat\u0131labilecek konu var. Direkt Laravel taraf\u0131ndan sa\u011flanan ve i\u015fleri kolayla\u015ft\u0131ran bir\u00e7ok paket ve \u00f6zellik var. Bu konular\u0131 sonraki yaz\u0131larda de\u011finmek i\u00e7in \u00fczere b\u0131rak\u0131yorum. Console application yap\u0131s\u0131, debugging i\u00e7in sa\u011flanan ara\u00e7lar, local geli\u015ftirme ortamlar\u0131, starter kitler, frontend taraf\u0131ndaki i\u015fleri kolayla\u015ft\u0131r\u0131c\u0131 k\u00fct\u00fcphaneler\u2026 Hepsi framework taraf\u0131ndan size haz\u0131r olarak sa\u011flan\u0131yor. \u0130\u015fte bu y\u00fczden yaz\u0131n\u0131n ba\u015f\u0131nda bir web framework\u2019ten daha fazlas\u0131 dedim.<\/p>\n<p id=\"e840\" class=\"pw-post-body-paragraph tv tw qf kp b tx ty tz ua ub uc ud ue jz uf ug uh ke ui uj uk kj ul um un uo er bj\" data-selectable-paragraph=\"\">Yaz\u0131y\u0131 bitirirken, t\u00fcm bunlar\u0131n alt\u0131nda g\u00fc\u00e7l\u00fc bir <a class=\"af uv\" href=\"https:\/\/laravel.com\/docs\/10.x\/container\" target=\"_blank\" rel=\"noopener ugc nofollow\">Service Container<\/a> yap\u0131s\u0131 ve <a class=\"af uv\" href=\"https:\/\/laravel.com\/docs\/10.x\/events\" target=\"_blank\" rel=\"noopener ugc nofollow\">Event Listener<\/a> mimarisi oldu\u011funu da belirteyim. Bir sonraki yaz\u0131da kalan k\u0131s\u0131mlara biraz daha e\u011filece\u011fim ve burada bahsetti\u011fim konular\u0131 daha da detayland\u0131raca\u011f\u0131m.<\/p>\n<p id=\"a603\" class=\"pw-post-body-paragraph tv tw qf kp b tx ty tz ua ub uc ud ue jz uf ug uh ke ui uj uk kj ul um un uo er bj\" data-selectable-paragraph=\"\">Neden Laravel \u00e7ok sevildi sorusunun yan\u0131t\u0131 bu anlatt\u0131\u011f\u0131m konularda gizli. Hem developer friendly hem de ihtiyac\u0131n\u0131z olabilecek her\u015feyi kendi i\u00e7erisinde \u00e7\u00f6z\u00fcyor. \u00c7\u00f6zmedi\u011fi noktada \u00e7ok b\u00fcy\u00fck bir topluluk deste\u011fi var. Laravel \u00f6v\u00fclmeyi sonuna kadar hakediyor.<\/p>\n<p id=\"6e89\" class=\"pw-post-body-paragraph tv tw qf kp b tx ty tz ua ub uc ud ue jz uf ug uh ke ui uj uk kj ul um un uo er bj\" data-selectable-paragraph=\"\"><strong class=\"kp jo\">Baz\u0131 Notlar:<\/strong><\/p>\n<ul class=\"\">\n<li id=\"fa49\" class=\"tv tw qf kp b tx ty tz ua ub uc ud ue jz va ug uh ke vb uj uk kj vc um un uo vd ve vf bj\" data-selectable-paragraph=\"\">Bu yaz\u0131 \u00fczerine <a class=\"af uv\" href=\"https:\/\/kommunity.com\/laravel-turkiye\" target=\"_blank\" rel=\"noopener ugc nofollow\">Laravel T\u00fcrkiye<\/a> toplulu\u011fundan tan\u0131d\u0131\u011f\u0131m Emre Dipi ile konu\u015furken, daha \u00f6nce buna benzer bir yaz\u0131 yazd\u0131\u011f\u0131n\u0131 belirtti. 2020 y\u0131l\u0131n\u0131n sonlar\u0131na do\u011fru yazd\u0131\u011f\u0131 yaz\u0131y\u0131 \u015furaya ili\u015ftiriyorum: <a class=\"af uv\" href=\"https:\/\/spider.web.tr\/post\/80_neden-laravel\" target=\"_blank\" rel=\"noopener ugc nofollow\">https:\/\/spider.web.tr\/post\/80_neden-laravel<\/a><br \/>\n2 yaz\u0131 aras\u0131nda benzerlikler var. En \u00f6nemli konu, ikimizin de \u201ckolay \u00f6\u011frenme\u201d ve d\u00f6k\u00fcmantasyon konular\u0131n\u0131 \u00f6n plana \u00e7\u0131kartmas\u0131. G\u00f6z atmaya de\u011fer bir yaz\u0131.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Son 10 y\u0131l i\u00e7erisinde PHP\u2019nin ve toplulu\u011funun geldi\u011fi noktada \u00e7ok \u00f6nemli bir pay\u0131 olan Laravel\u2019i yeterince \u00f6vmedi\u011fimizi farkettim ve bunun \u00fczerine bu yaz\u0131ya ba\u015flama karar\u0131 ald\u0131m. Yaz\u0131ya ba\u015flamadan \u00f6nce Laravel\u2019in \u00e7\u0131kt\u0131\u011f\u0131 y\u0131llardaki ekosistemden ve mevcut durumundan bahsetmeyi d\u00fc\u015f\u00fcnd\u00fcm. Ancak do\u011frudan Laravel\u2019in neden bug\u00fcn \u00e7ok iyi bir konumda oldu\u011fundan ve \u00e7ok sevildi\u011finden bahsetmek ve framework\u00fcn yeteneklerini [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[4],"tags":[345],"class_list":["post-2539","post","type-post","status-publish","format-standard","hentry","category-yazilim","tag-laravel"],"blocksy_meta":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_likes_enabled":true,"jetpack-related-posts":[],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/guven.atbakan.com\/blog\/wp-json\/wp\/v2\/posts\/2539","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/guven.atbakan.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/guven.atbakan.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/guven.atbakan.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/guven.atbakan.com\/blog\/wp-json\/wp\/v2\/comments?post=2539"}],"version-history":[{"count":2,"href":"https:\/\/guven.atbakan.com\/blog\/wp-json\/wp\/v2\/posts\/2539\/revisions"}],"predecessor-version":[{"id":2541,"href":"https:\/\/guven.atbakan.com\/blog\/wp-json\/wp\/v2\/posts\/2539\/revisions\/2541"}],"wp:attachment":[{"href":"https:\/\/guven.atbakan.com\/blog\/wp-json\/wp\/v2\/media?parent=2539"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/guven.atbakan.com\/blog\/wp-json\/wp\/v2\/categories?post=2539"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/guven.atbakan.com\/blog\/wp-json\/wp\/v2\/tags?post=2539"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}