Laravel Nedir? Nasıl Yüklenir?

scrop

Eski üye
Katılım
8 Nis 2022
Mesajlar
127
Tepki
4
Son zamanların en oldukca kullanılan ve en oldukca dört gözle beklenen PHP framework'lerinden olan Laravel ile ilgili hazırladığım bu yazımda, kesinlikle taraftarlık yapmadan Laravel'i anlatmaya çalışacağım. Eğer Laravel dahil bir oldukca değişik PHP framework'ü ile proje geliştirdiğim için bir birlerine olan avantajlarını yada dezavantajlarını oldukça iyi biliyorum. Bundan dolayı yazının başlığına bakıp, ilk bir kaç paragrafı okuyarak yorum meydana getiren arkadaşların, şimdiden asla yorulmaması için bu şekilde bir giriş yapmak istedim. :)

laravel-1.jpg



Ilk olarak Laravel'i birazcık tanıyalım. Nedir bu Laravel? Laravel, oldukça kolay ve anlaşılır bir kod yapısına haiz, ufak çaplı uygulamalardan tutun da gelişmiş uygulamalara kadar ileri düzey proje geliştirmede gereksinimlerimizi karşılayan, MVC yapısına haiz, PHP ve OOP'nin tüm nimetlerinden yararlanan, web uygulamaları geliştirmemizi elde eden açık kaynak kodlu bir PHP framework'üdür. Kendisine "Web sanatçılarının PHP framework'ü" sloganını uygun gören Laravel, bu sloganın hakkını çokça vermektedir. Bunu 2015 ve 2016 yıllarında Github üstünde en oldukca takip edilen PHP framework'ü olmasıyla aslına bakarsanız tescillemiş durumda.

Bir framework seçerken bu framework ile çalışanların çokluğu, aslına bakarsak o framework'ün iyi bulunduğunu kanıtlamasa da, seçmeniz için mühim bir kriter olmalıdır. Zira yaşayabileceğiniz sorunlara cevaplar ararken, popüler bir framework kullanıyorsanız, sonuca erişme süreniz oldukça kısalacaktır. Laravel bu bağlamda Github üstünde de öteki platformlarda da oldukça yüksek popülariteye haiz bir PHP framework'ü olduğundan problem yaşatmayacaktır.

Laravel'in Özellikleri​


Yazımın başlangıcında da belirttiğim şeklinde oldukça kolay bir yapıya haiz olan Laravel, projeleri geliştirme sürenizi ciddi düzeyde kısaltabilir. İçerdiği modüller ve emek harcama yapısı yardımıyla aslına bakarsanız yapmak istediğiniz yada isteyebileceğiniz bir oldukca şey düşünülmüş ve Laravel'in içine dahil edilmiş olacaktır. Örneğin bunlara verebileceğim ilk ve bence oldukça mühim bir bileşen olarn "auth", normalde saatlerde kodlayarak kazanmış olduğunuz kullanıcı sistemi mekanizmasını bir tek bir kaç tıklama ile kurgulamaya yarıyor.

Eloquent

Eloquent yapısı, ORM sistemi üstüne kurulmuş ve etken kayıt mekanizmasıyla çalışan oldukça güzel bir veritabanı sistemidir. Bu sistemde veritabanında oluşturulan tablolar "Model" adında olan obje sınıflarıyla haberleşip birbirleriyle bağlantı kurmaktadır. Bu bağlantı, SQL cümlelerine asla bulaşmadan veritabanı sistemiden bağımsız olarak çalışmamızı sağlamakta. Bu da MySQL ile başladığımız bir projeyi, ilerleyen dönemlerde kolay bir halde PostgreSQL, Oracle, SQLite yada MSSQL'e çevirebileceğimiz anlamına gelmektedir.

Route

Bir framework'te bakacağınız ilk konulardan biri rota yapısı olmalıdır. Laravel'de oldukça gelişmiş bir rota yapısı mevcut. Hangi URL'in hangi methoda gideceğini yada hangi yöntemle gideceğini yada hangi middleware ile çalışacağını kolay bir halde tanımlayabiliyoruz. Bu, post ile erişilen bölgelere get ile erişilmesinin mümkün olmadığı anlamına gelir. Aslına bakarsak bir bakıma bu iyi bir şeydir. Bu sayede bir URL'de birden oldukca method ile değişik işlemler yapabileceğiz. GET, POST, PUT ve DELETE şeklinde methodlar ile kolaylıkla API rotası oluşturarak masaüstü ve mobil uygulamalarımızla tam bir uyum içinde çalışabiliriz.

Blade Engine

Laravel, View yapısı olarak Blade Engine kullanmaktadır. Genel olarak framework'lerde MVC yapısı ile kod geliştirdiğimiz süre Controller kısmında işlediğimiz veriyi View kısmına da göndererek kullanabiliriz. Bu yapılarda array tercih edilse de, echo yada foreach şeklinde methodlar içinde blade syntax'ları kullanılır. Bu kullanım şekliyle Laravel'in cache sistemi projenizi hızlandırırken, sizde neyin nerede bulunduğunu bileceksiniz.

Migrations

Migrate sistemi, Laravel'de veritabanınız için tablo oluşturabileceğiniz, bu tablolardaki işlemleri geri alabileceğiniz, öteki bir tabirle versiyonlama şeklinde de çalıştırabileceğiniz oldukça başarıya ulaşmış bir sistemdir. Bu sistem yardımıyla veritabanlarınızı oluştururken herhangi bir veritabanı arayüzüne gerek kalmadan kolaylıkla veritabanı tablolarınızı oluşturup, bu tarz şeyleri veritabanlarınıza migrate edebileceksiniz.

Unit Kontrol

Genel anlamda biz yazılımcıların üşendiği fakat çoklu geliştirilen ve birden oldukca çalışanın beraber geliştirdiği projelerde kullanılması ihtiyaç duyulan mühim bir kontrol yapısıdır. Projelerimizin daima aynı neticeleri vermesini denetim edebileceğimiz testleri oluşturup, artisan komut satırıyla çalıştırabileceğimiz bir özelliktir.

Pagination

Eloquent yapını kullanarak oldukca kolay bir halde çalıştığımız sayfalar için bir sayfalama özelliği geliştirebiliyoruz. Bu özelliğin düzenlenebilen yapısı, standart olarak Bootstrap ile kodlanmış şekilde gelmektedir.

Performans

Laravel, performansa son aşama ehemmiyet veren bir framework. Bu bağlamda ihtiva ettiği bir oldukca performans arttırıcı bileşen ile öne çıkmaktadır. Oldukça verimli bir halde çalışan cache sistemi ve kolay bağlantı kurabileceğimiz Redis, Laravel'in içinde mevcut. Bunun yanı sıra yüksek I/O (input/output) işlemleri içeren yada işlem süresi uzun sistemler için bir Queue (kuyruk) sistemi de mevcut. Symsfony kütüphanesini temel alan Laravel, performans anlamında bir oldukca açığı gidermiş, açık kaynaklı oluşundan dolayı yazılımcıların katkısıyla oldukça gelişmiş ve gelişmekte olan bir sistemdir. Bundan dolayıdır ki her geçen gün Laravel'in performansı artmaktadır.

Biçim Doğrulama

Bunu nerede ise her yazılımcı yapmış yada yapmayı düşünmüştür. Geliştirdiğiniz projelerde bilhassa PHP alt yapılı projelerde doğrulama işlemleri kimi zaman sıkıntılı olabiliyor. Aslına bakarsak sıkıntıdan oldukca, fazla süre ayırmak gerekiyor desek daha doğru olacaktır. Zira bir biçim doğrulama işlemi için seçeneklerin çokluğu, bu iş için ayıracağımız zamanı direkt etkiliyor. Fakat Laravel, bunu da bizim için düşünmüş ve bir oldukca değişik veri türünün veritabanında bir karşılığı olup olmadığına bakıp, bizlere bir netice veriyor. Böylece en küçük bir kod dahi yazmadan saniyeler içinde biçim doğrulama işlemi yapabiliyoruz.

Multi Language (Çoklu Dil)

Laravel'in iyi olduğu öteki bir sistem, çoklu dil sistemidir. Oldukça kolay bir fonksiyon yapısına haiz Laravel ile çoklu dilde projeler geliştirebilirsiniz. Her dil için bir klasör bulundurarak validation şeklinde yapıları oldukca kısa sürülerde tüm dillere uyarlayabilirsiniz.

Mail & Broadcasting

İçinde bulunan SwiftMailer ile her sistem üstüne kolaylıkla mail atabilir yada Mailgun şeklinde sistemlerin paketleri ile API üstünden maillerinizi atabilirsiniz. Bunun yanı sıra önceleri sıkıntılı olan Broadcast sistemi, Laravel'in 5.3 sürümüyle artık stabil hale geldi. Bu sistem yardımıyla kolaylıkla telefonlara bildirim atabilir, SMS sistemlerini kullanarak SMS gönderebilir yada Slack şeklinde 3. parti uygulamalara veri gönderebilirsiniz.

Buraya kadar Laravel'in öne çıkan bazı özelliklerinden bahsetmeye çalıştım. Fakat aslına bakarsak Laravel buraya sığdırdığımız bir kaç maddeden oldukca daha fazlasına haiz. Ben bir framework seçerken ilk olarak o framework'ün topluluğuna bir bakarım. Şu demek oluyor ki o framework'ü ne kadar şahıs kullanıyor? Başım sıkıştığında yardım alabilecek miyim? Danışabileceğim, değişik örnekler yada çözümler bulabilecek miyim? Bu soruların cevapları beni geliştirdiğim projeye nazaran framework seçiminde yönlendiriyor. Laravel, bu bağlamda oldukça geniş bir kullanım kitlesine haiz olduğundan, derhal her türlü sıkıntınızı internette kolay bir kaç arama ile bulabilrsiniz. Eğer ben Laravel'de karşılaşıpta yanıtını bulamadığım bir soruna denk gelmedim. Fazlaca süratli büyüyen topluluğu ile Laravel, her ne kadar genç bir framework sayılsa da her türlü sorununuzu fazla zaman harcamadan çözebileceğiniz bir framework'tür.

Şimdi sıra bu muhteşem PHP framework'ünü iyi mi yükleyeceğimize geldi. Laravel'in bir kaç değişik yüklenme yöntemi var, ben size en kolay olanları anlatacağım.

Laravel Kurulumu​


Düzgüsel şartlarda Laravel, oldukça kolay bir halde kurulabiliyor. Kuruluma başlamadan ilkin SSH üstünden sunucumuza bağlanıp, derhal aşağıdaki komut satırını çalıştırarak Laravel'in bileşenlerini yüklüyoruz.

composer [COLOR=rgb(0, 119, 170)]globalrequire[/COLOR] laravel[COLOR=rgb(85, 85, 85)]/[/COLOR]installer

Arkasından Laravel'i oluşturmak istediğimiz dizine giderek yada hangi dizinseydek orayı tanım edecek şekilde aşağıdaki satırı çalıştırıyoruz.

laravel [COLOR=rgb(0, 119, 170)]new[/COLOR]kurulacak-dizin

Bu komut satırı bazı durumlarda çalışmazsa, alternatif olarak şu komutu da deneyebilirsiniz:

composer create[COLOR=rgb(85, 85, 85)]-[/COLOR]project [COLOR=rgb(85, 85, 85)]--[/COLOR]prefer[COLOR=rgb(85, 85, 85)]-[/COLOR]dist laravel[COLOR=rgb(85, 85, 85)]/[/COLOR]laravel kurulacak-dizin

Bu işlemden sonrasında Laravel, bir kaç dakika süresince belirtmiş olduğunuz dizine, emek vermesi için gereksinim duyulan tüm dosyaları kuracaktır. Detaylı bilgiye gerekseme duyarsanız buradan Laravel'in resmi sitesine ulaşabilirsiniz.

Kurulum işlemlerinizden sonrasında fark edeceğiniz şeklinde Laravel, güvenlik sebebiyle public_html'in altında çalışmıyor. Hatta neredeyse tüm dosyaları yayıncının göreceği klasör yapısının haricinde tutuyor. Laravel'in gösterim klasörü "public"tir. Bundan dolayı Virtual Host ayalarımızdan gösterim dizinini "public_html"den "public"e çevirmemiz gerekiyor. Bu sayede üst düzey güvenlik önlemleri almaya çalışan Laravel'in, duyarlı veriler içeren .env şeklinde dosyalara erişimi engellemesi umut ediliyor.

Netice olarak Laravel, şundan iyi bundan iyi demeyeceğim doğal olarak ki, bu sebeple bu sonucu vermek hem size hemde geliştirdiğiniz projeye bağlıdır. Fakat Laravel, en iyi PHP framework'lerinden biridir demeden de geçemeyeceğim.
 
Üst Alt