ARİDOSHİKA

Ulaşabildiğin her yerde

Laravel Nedir ?

7 min read

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.

 

Ö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.

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.

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.

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

Bu işlemden sonra Laravel, bir kaç dakika boyunca belirtmiş olduğunuz dizine, çalışması için ihtiyaç duyulan tüm dosyaları kuracaktır.

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.

 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.