Giriş Yap / Kayıt Ol

Laravel Nedir? Nasıl Yüklenir?

Tarih: 22 Temmuz 2019   Kategori: Programlama   Yazar: Sinan  |  1666 kez okundu

Son zamanların en çok kullanılan ve en çok merak edilen PHP framework'lerinden olan Laravel ile ilgili hazırladığım bu yazımda, kesinlikle taraftarlık yapmadan Laravel'i anlatmaya çalışacağım. Şayet Laravel dahil bir çok farklı PHP framework'ü ile proje geliştirdiğim için bir birlerine olan avantajlarını veya dezavantajlarını oldukça iyi biliyorum. Bundan dolayı yazının başlığına bakıp, ilk bir kaç paragrafı okuyarak yorum yapan arkadaşların, şimdiden hiç yorulmaması için böyle bir giriş yapmak istedim. :)

Öncelikle Laravel'i biraz tanıyalım. Nedir bu Laravel? Laravel, oldukça basit ve anlaşılır bir kod yapısına sahip, küçük çaplı uygulamalardan tutun da gelişmiş uygulamalara kadar ileri düzey proje geliştirmede ihtiyaçlarımızı karşılayan, MVC yapısına sahip, PHP ve OOP'nin tüm nimetlerinden yararlanan, web uygulamaları geliştirmemizi sağlayan 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 üzerinde en çok takip edilen PHP framework'ü olmasıyla zaten tescillemiş durumda.

Bir framework seçerken bu framework ile çalışanların çokluğu, aslında o framework'ün iyi olduğunu kanıtlamasa da, seçmeniz için önemli bir kriter olmalıdır. Çünkü yaşayabileceğiniz sorunlara cevaplar ararken, popüler bir framework kullanıyorsanız, sonuca ulaşma süreniz oldukça kısalacaktır. Laravel bu bağlamda Github üzerinde de diğer platformlarda da oldukça yüksek popülariteye sahip bir PHP framework'ü olduğu için sorun yaşatmayacaktır.

Laravel'in Özellikleri

Yazımın başında da belirttiğim gibi oldukça basit bir yapıya sahip olan Laravel, projeleri geliştirme sürenizi ciddi düzeyde kısaltabilir. İçerdiği modüller ve çalışma yapısı sayesinde zaten yapmak istediğiniz veya isteyebileceğiniz bir çok şey düşünülmüş ve Laravel'in içerisine dahil edilmiş olacaktır. Mesela bunlara verebileceğim ilk ve bence oldukça önemli bir bileşen olarn "auth", normalde saatlerde kodlayarak elde ettiğiniz kullanıcı sistemi mekanizmasını sadece bir kaç tıklama ile kurgulamaya yarıyor.

Eloquent

Eloquent yapısı, ORM sistemi üzerine kurulmuş ve aktif kayıt mekanizmasıyla çalışan oldukça güzel bir veritabanı sistemidir. Bu sistemde veritabanında oluşturulan tablolar "Model" adı verilen obje sınıflarıyla haberleşip birbirleriyle bağlantı kurmaktadır. Bu bağlantı, SQL cümlelerine hiç 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 şekilde PostgreSQL, Oracle, SQLite veya 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 veya hangi yöntemle gideceğini veya hangi middleware ile çalışacağını kolay bir şekilde tanımlayabiliyoruz. Bu, post ile erişilen yerlere get ile erişilmesinin mümkün olmadığı anlamına gelir. Aslında bir bakıma bu iyi bir şeydir. Bu sayede bir URL'de birden çok method ile farklı işlemler yapabileceğiz. GET, POST, PUT ve DELETE gibi 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 zaman Controller kısmında işlediğimiz veriyi View kısmına da göndererek kullanabiliriz. Bu yapılarda array tercih edilse de, echo veya foreach gibi 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 olduğunu bileceksiniz.

Migrations

Migrate sistemi, Laravel'de veritabanınız için tablo oluşturabileceğiniz, bu tablolardaki işlemleri geri alabileceğiniz, diğer bir tabirle versiyonlama gibi de çalıştırabileceğiniz oldukça başarılı bir sistemdir. Bu sistem sayesinde veritabanlarınızı oluştururken herhangi bir veritabanı arayüzüne ihtiyaç duymadan kolaylıkla veritabanı tablolarınızı oluşturup, bunları veritabanlarınıza migrate edebileceksiniz.

Unit Test

Genelde biz yazılımcıların üşendiği ama çoklu geliştirilen ve birden çok çalışanın birlikte geliştirdiği projelerde kullanılması gereken önemli bir test yapısıdır. Projelerimizin her zaman aynı sonuçları vermesini kontrol edebileceğimiz testleri oluşturup, artisan komut satırıyla çalıştırabileceğimiz bir özelliktir.

Pagination

Eloquent yapını kullanarak çok kolay bir şekilde ç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 derece önem veren bir framework. Bu bağlamda içerdiği bir çok performans arttırıcı bileşen ile öne çıkmaktadır. Oldukça verimli bir şekilde çalışan cache sistemi ve kolay bağlantı kurabileceğimiz Redis, Laravel'in içerisinde mevcut. Bunun yanı sıra yüksek I/O (input/output) işlemleri içeren veya 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 çok 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.

Form Doğrulama

Bunu hemen hemen her yazılımcı yapmış veya yapmayı düşünmüştür. Geliştirdiğiniz projelerde özellikle PHP alt yapılı projelerde doğrulama işlemleri bazen sıkıntılı olabiliyor. Aslında sıkıntıdan çok, fazla zaman ayırmak gerekiyor desek daha doğru olacaktır. Çünkü bir form doğrulama işlemi için seçeneklerin çokluğu, bu iş için ayıracağımız zamanı doğrudan etkiliyor. Fakat Laravel, bunu da bizim için düşünmüş ve bir çok farklı veri türünün veritabanında bir karşılığı olup olmadığına bakıp, bize bir sonuç veriyor. Böylece en ufak bir kod dahi yazmadan saniyeler içerisinde form doğrulama işlemi yapabiliyoruz.

Multi Language (Çoklu Dil)

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

Mail & Broadcasting

İçinde bulunan SwiftMailer ile her sistem üzerine kolaylıkla mail atabilir veya Mailgun gibi sistemlerin paketleri ile API üzerinden 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 sayesinde kolaylıkla telefonlara bildirim atabilir, SMS sistemlerini kullanarak SMS gönderebilir veya Slack gibi 3. parti uygulamalara veri gönderebilirsiniz.

Buraya kadar Laravel'in öne çıkan bazı özelliklerinden bahsetmeye çalıştım. Ama aslında Laravel buraya sığdırdığımız bir kaç maddeden çok daha fazlasına sahip. Ben bir framework seçerken öncelikle o framework'ün topluluğuna bir bakarım. Yani o framework'ü ne kadar kişi kullanıyor? Başım sıkıştığında yardım alabilecek miyim? Danışabileceğim, farklı örnekler veya çözümler bulabilecek miyim? Bu soruların cevapları beni geliştirdiğim projeye göre framework seçiminde yönlendiriyor. Laravel, bu bağlamda oldukça geniş bir kullanım kitlesine sahip olduğu için, hemen her türlü sıkıntınızı internette basit bir kaç arama ile bulabilrsiniz. Şayet ben Laravel'de karşılaşıpta cevabını bulamadığım bir soruna denk gelmedim. Çok hızlı büyüyen topluluğu ile Laravel, her ne kadar genç bir framework sayılsa da her türlü sorununuzu fazla vakit harcamadan çözebileceğiniz bir framework'tür.

Şimdi sıra bu mükemmel PHP framework'ünü nasıl yükleyeceğimize geldi. Laravel'in bir kaç farklı yüklenme yöntemi var, ben size en kolay olanları anlatacağım.

Laravel Kurulumu

Normal şartlarda Laravel, oldukça basit bir şekilde kurulabiliyor. Kuruluma başlamadan önce SSH üzerinden sunucumuza bağlanıp, hemen aşağıdaki komut satırını çalıştırarak Laravel'in bileşenlerini yüklüyoruz.

composer global require laravel/installer

Ardından Laravel'i kurmak istediğimiz dizine giderek veya hangi dizinseydek orayı tarif edecek şekilde aşağıdaki satırı çalıştırıyoruz.

laravel new kurulacak-dizin

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

composer create-project --prefer-dist laravel/laravel kurulacak-dizin

Bu işlemden sonra Laravel, bir kaç dakika boyunca belirtmiş olduğunuz dizine, çalışması için ihtiyaç duyulan tüm dosyaları kuracaktır. Detaylı bilgiye ihtiyaç duyarsanız buradan Laravel'in resmi sitesine ulaşabilirsiniz.

Kurulum işlemlerinizden sonra fark edeceğiniz gibi 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 dışında tutuyor. Laravel'in yayın klasörü "public"tir. Bundan dolayı Virtual Host ayalarımızdan yayın dizinini "public_html"den "public"e çevirmemiz gerekiyor. Bu sayede üst düzey güvenlik önlemleri almaya çalışan Laravel'in, hassas veriler içeren .env gibi dosyalara erişimi engellemesi bekleniyor.

Sonuç olarak Laravel, şundan iyi bundan iyi demeyeceğim tabi ki, çünkü bu kararı 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.

12 Yorum
ishana avatar
ishana • 3 hafta önce
giriş seviyesinde herhangi bir programlama dilinin bilinmesi veya öğrenilmesi yeterli olsa da daha ileri seviyede laravel, Symfony gibi bir framework un da bilinmesi oldukça faydalı olacaktır.
yazılım biliminde insanların daha nitelikli, görseli daha güzel projeler üretebilmesi adına daha az kod yazmalarına yardımcı olan bu frameworklerin de yeterli olmadığı durumlar olabiliyor.
yazınız oldukça açıklayıcı olmuş. teşekkürler.
EfeCetin avatar
EfeCetin • 3 hafta önce
Yii Framework'ü de bekliyoruz smile O da çok güzel bir frameworke benziyor .
hasanablak avatar
hasanablak • 2 hafta önce
2017 yılında bitirme projesini saf php olarak kodlayarak yapmaya çalışmış, 2018 yılında "ben yazılımcı olmak istemiyorum!" diyerek yazılımdan elimi ayağımı çekmiştim. Daha sonrasında Laravel ile tanıştım, Laravel; php de yapmak istediklerinizi sınırlandırmadan kullanım kolaylığı ve proje büyüdükçe de hız kesmeden devam etme imkanı sağlıyor. JavaScript/Jquery ile aram çok kötüyken Laravel; web sitesi geliştirmem için benden o kadar az zaman istedi ki arta kalan zamanda Javascript üzerinde çalıştım şimdi elimde ikinci bir altın bileziğim var smile
theharunuysal avatar
theharunuysal • 1 hafta önce
Yorumun etkiledi beni, videoscript.gq şuan burada kurulu bir script yazdım ben şuan laravel araştırıyorum tamamını saf php ile yazdım yönetim panelini falan yazarken baya zaman harcadım ayrıca php de tam bilmiyorum ama tam soğudum çünkü düşündüğümde Facebook gibi bir site yapmak için herhalde 4-5 yıl yazmam gerekecek smile Laravel araştırıyorum beni heyecanlandırdı açıkcası umarım aynısını yaşarım.
MasterKazanç avatar
MasterKazanç • 3 hafta önce
Elinize sağlık harika bir içerik. Sizin laravelden sonraki favoriniz hangisi? Laravelden sonra nette codeigniter ve phalcon da oldukça popüler görünüyor. Framework'u projeye göre belirlerken hangi unsurları göz önünde bulunduruyorsunuz acaba? ve laravel her zaman yeterli olur mu? Yani diğerlerinden geri kalır yanları var mıdır?
Pawn avatar
Pawn • 3 hafta önce
Şahsen ben kendi yorumumu yapayım.
Laravel araştırmalarıma göre yeterli olur fakat en az 2 frameworke daha hakim olunması gerektiğini düşünüyorum. Özellikle projeden projeye göre kullanmanız gereken frameworkü iyi seçebilmek gerekiyor.
Bu arada internetteki çoğu iş ilanında Laravel şart koşuluyor.
Sinan avatar
SinanEDİTÖR • 3 hafta önce
Laravel'den sonra Symfony ilk tercihim olurdu. Aslında bakarsanız Laravel'de temelinde bir çok Symfony kütüphanesi kullanıyor. Fakat kullanıcı deneyimi Laravel'de daha iyi olduğu ve kod karmaşası daha az olduğu için, e birde topluluk açısından bakıldığında çok daha fazla kişinin kullanmasından dolayı sorunları daha hızlı çözebildiğim için Laravel ilk tercihim oluyor. Üçüncü sıraya ise Codeigniter'ı koyabilirim. Aslında bir yazımda Laravel ve Codeigniter arasındaki farkları uzun uzun ele alsam güzel olur sanırım. smile
EfeCetin avatar
EfeCetin • 3 hafta önce
Bence Codeigniter Türkiye standartları için daha iyi bir tercih olur . Sonuçta paylaşımlı hostinglerde Laravel vs. frameworkler sorun çıkartabiliyor ...
MasterKazanç avatar
MasterKazanç • 3 hafta önce
Cevabınız için teşekkürler sinan hocam. 2 sene öncesinde php ile yakından ilgileniyordum ama geçmiş projelerimde hiç framework kullanmadım. Bu yazınız ile birlikte acaba php ile tekrardan framework kullanarak bir şeyler mi yapsam diye düşünüyorum. Araştırmalarım sonucunda başlangıç olarak laravel ve codeigniter arasından git gel yapıyorum. Bence de öyle bir yazı gerçekten çok güzel olur. Takipteyim.
erdidoqan avatar
erdidoqan • 3 hafta önce
Paylaşımlı hosting e de istediğiniz gibi laraveli kurabiliyorsunuz. Tabi ki bu yine tercih meselesi ancak bir güncelleme olduğun da paylaşımlı hosting de git olmadığı için sorunlar yaşanıyor. Ben de bu tür sorunları aşmak adına forge.laravel.com kullanıyorum aslında çok sağlıklı bir şekilde kullanabiliyor ve paylaşımlı sunucu satabiliyorsunuz smile
cthax avatar
cthax • 3 hafta önce
Vallahş bu Lavarel'İ görünce aklında bir tek benim mi Garavel canlanıyor smile
kvp5111 avatar
kvp5111 • 1 hafta önce
çok teşekkür ederim
WM Aracı Maskotu Boa WM Aracı © 2010 - 2019
Bir Boğa Bilişim markası.
Cesur.NETWM Aracı Cesur.NET İnternet Teknolojileri'nde güvenle barınmaktadır.