Laravel Nedir?

Laravel en kucuk uygulamadan oldukca geniş projelere kadar yazılım yapabileceğiniz MVC yapısına sahip acık kaynak kodlu PHP frameworkudur. 2015 ve 2016 yıllarında sitepoint tarafından yapılan en populer framework anketinde ust uste iki sene liderliği goğusledi. Github uzerinde en cok takip edilen PHP projesidir. Web sanatcılarının PHP frameworku sloganını hakkını sonuna kadar vermektedir.



Laravelin ozellikleri

Laravel yapısı oldukca basit ve kolaydır. Kısa bir sure icinde oğrenilerek projelerinizi geliştirebilirsiniz. Bağımlılık yoneticisi olarak composer kullanması sebebiyle cakışma olmadan gerekli bileşenleri projenize ekleyebilirsiniz. İcinde hazır bulunan auth mekanızması ile kullanıcı sistemi olan hatta coklu giriş (muşteri , firma , admin) gibi yapılara kadar destek vermektedir. OOP yapısına uygun olması sebebiyle projenize belli bir zaman sonra bile donseniz kolay bir şekilde geliştirmeye devam edebilirsiniz. Kullandığı PSR-4 sdandartları ile sadece laravel icin değil psr-4 ile yazılmış paketleri de kolaylıkla dahil edebilirsiniz.

Eloquent

Eloquent yapısı ORM sistemi uzerine kurulmuş Aktif Kayıt mekanizmasıyla calışan guzel bir veritabanı sistemidir. Her veritabanı tablosu Model adı verilen obje sınıflarıyla haberleşir ve Birbirleriyle bağ kurar. Bu sayede sql cumleleri yazmadan veritabanı sisteminden bağımsız olarak calışabilirsiniz. Orneğin Mysql ile başladığınız sistemi ileride kolayca PostgreSQL, Oracle, SQLite veya MSSql sistemine cevirebilirsiniz.

Post::find(1);

Yukarıdaki gibi bir kullanım ile idsi 1 olan posts tablosundaki veriyi getirebilirsiniz. Tablo ismi otomatik olarak coğulu olsada duzenlenebilir. Ama standartlara uymak sizin icin her zaman kolaylık olacaktır.

Route

Route yapısı oldukca gelişmiş olan url yonetim sistenmi laravelde kullanılmaktadır. Hangi url hangi methoda gidecek hangi yontemle gidecek veya hangi middleware ile calışacak burada tanımlanmaktadır. Bu sayede post ile erişilen yere get ile erişilmez veya diğer bir ifade ile aynı urlde birden cok method ile farklı işlemler yapabilirsiniz. GET,POST,PUT,DELETE gibi methodlar ile kolaylıkla api rotası oluşturarak mobil uygulamalarınızla tam bir uyum icinde calışabilirsiniz.

Blade Engine

View yapısı olarak Laravelde blade engine tercih edilmiştir. Frameworklerde MVC yapısı ile kod geliştirdiğiniz zaman Controller kısmında işlediğiniz veriyi View kısmına gondererek kullanabilirsiniz. Genel olarak array kullanılan bu yapılardan php echo veya foreach gibi metodlar icin blade syntaxları kullanılır.

}

@foreach($products as $product)
....
@endforeach

Bu yapı sayesinde hem cache sistemi projenizi hızlandırırken neyin nerede olduğunu bilirsiniz.

Migrations

Migrate sistemi veritabanı icin tablo oluşturup guncellediğiniz geri aldığınız en temel anlamda versiyonlama gibi calıştırabileceğiniz sistemdir. Veritabanı oluştururken herhangi bir veritabanı arayuzu olmadan kolaylıkla tabloları oluşturup calışabilirsiz. Ayrıca bu sistem Git sistemi ile calışıyorsanız sadece uygulamanızın kodlarını tutarak kolaylıkla tekrar tekrar kurulum yapılmasını kolaylaştırır. Ayrıca olması gereken verileri DB Seed sistemi ile veritabanına kolaylıkla aktarabilirsiz.

Unit Test

Her ne kadar yazılımcıların uşendiği bir konu olsada coklu geliştirilen ve cok calışanın geliştirdiği projelerde kullanılması gereken bir yapıdır. Projenizin her zaman aynı sonucları vermesini kontrol edebileceğiniz testleri oluşturup console uzerinden test edebilirisiniz.

Pagination

Eloquent yapısıyla beraber oldukca kolay bir bicimde sayfalama yapabiliyoruz. Duzenlenebilen yapısı standart olarak bootsrapa uygun şekilde gelmektedir.

Performans

Performans icin laravel icinde bir cok bileşen bulundurmakta. Oldukca verimli calışan cache sistemi ve kolay bağlantı kurabileceğiniz redis icinde mevcuttur. Yuksek I/O iceren sistemler veya uzun suren işlemler icin queue sistemi mevcuttur.

Bir symfony kutuphanesi laravelin temelinde bulunur. Haliyle bunlar guncellendikce laravelde guncellenir. Bu acıdan bir cok acığı giderilmiş olur. Acık kaynaklı oluşu ve buraya katkıda bulunan bir cok kişi sayesinde oldukca gelişmiş ve gelişmekte olan laravel ile sitenizi kolay bicimde canlı ortam sistemine cevirebilir veya bakıma alabilirsiniz. Bu topluluk aynı zamanda bir cok platformda birbirine destek olmaktadır.

Bir şeyi nasıl kullanacağınız kolaylık laravel dokumanlarında bulabilirisiniz. Ayrıca laracasts web sitesi bir cok video ile eğitim vermektedir. Ucretsiz iceriklerde bulunan sitede ileri duzey sistemler icin aylık ucret talep ediliyor.

Form Doğrulama

Bir cok php projesinde doğrulama işlemleri sıkıntılı evrelerdir. Seceneklerin cokluğu sebebiyle oldukca zahmetli ve ciddi zaman ayırılması gerek bir iştir. Ama laravel ile ister tarih ister ip ister url isterseniz veritabanında bir değerin olup olmadığını sorgulayın hic sıkıntı yaşamazsınız. Saniyeler icin formunuzu ekleyebilirsiniz.

Coklu Dil

Multi language sistemi icinde hazır gelen laravelin kolay bir fonksiyon yapısı ile coklu dilde proje geliştirenler icin ilac gibidir. Her dil icin bir klasor bulundurmanız ile validation gibi bir yapıyı kolaylıkla her dile uydurabilir veya hazır olarak internetten projenize ekleyebilirsiniz.

Mail ve Broadcasting

İcinde buludnurduğu SwitfMailer ile her sistem uzerinde kolaylıkla mail atabilir veya mailgun gibi sistemlerin paketleri ile api ile mail atabilirsiniz. Broadcast sistemi tam anlamı ile 5.3 de oturdu diyebiliriz. Kolaylıkla telefonlara bildirim atabilir SMS sistemleri ile sms gonderebilir veya Slack gibi 3. parti uygulamalara veri gonderebilrisiniz.

Laravel Nasıl Kurulur
Composer ile kurulum

composer create-project laravel/laravel blog –prefer-dist

Komutu yazdığınız konumda blog diye bir klasor acarak laraveli kurar.
Git ile kurulum

git clone https://github.com/laravel/laravel.git

git komutu ile bilgisayarımıza cektiğimiz projeyi laravel klasorunun icine atmaktadır. Sonrasında ise composer ile kurulum yapmamız gerekiyor.

composer install

Laravelin diğer bir guvenlik yapısı ise virtual host ettğimiz yeri projenin public klasoru olarak gosterirsek ki doğrusu budur. Diğer klasorlere doğrudan web uzerinden erişemeyiz. Bu sayede icinde hassas veriler iceren .env dosyasına erişilemez. Laravel diğer frameworklerden iyidir veya kotudur demek bize duşmez ancak laravel ile proje geliştirdiğinizde sadece projenize odaklanıyorsunuz ve yaptığınız işten keyif alıyorsunuz.