laravel proje geliştirme

Merhabalar bugünkü konumuz laravel ile proje geliştirme hakkında temel bilgiler olacaktır. laravel proje geliştirme konusunda profesyonel bir geliştirmeci arıyorsanız iletişim kısmından benim ile irtibata geçebilirsiniz.

Laravel Nedir?

LaravelMVC yapısında web uygulamaları geliştirme için tasarlanmış ücretsiz, açık kaynak PHP web uygulama iskeletidir. Laravel, GitHub sitesinde barındırılan kaynak kodu ile birlikte, MIT lisansı altında yayınlanmakta ve bir çok kitleye hitap etmektedir.

2014 ve 2015 yıllarında Sitepoint tarafından yapılan en popüler PHP uygulama iskeletleri anketlerinde Laravel iki sene üst üste en üst sırada yer almıştır. Nisan 2015 tarihindeki verilere göre Laravel github’da barındırılan PHP projeleri arasında en çok takip edilen ve en popüler projedir.

Laravel, versiyon 4’ten itibaren bağımlılık yönetimi (dependency management) için composer paket yöneticisini tercih etmektedir. Yine versiyon 4’ten itibaren DoctrineMonolog gibi paketlerin yanı sıra web iskeletini oluşturan komponentler için Symfony2 paketlerinden yararlanmaktadır.

Versiyon 5 ile birlikte dizin yapısında önemli bir değişikliğe gidilmiş ve PSR-4 standartlarına daha uyumlu bir yapı haline getirilmiştir.

Özellikleri

Laravel’ in en önemli tasarım noktaları aşağıda listelenmiştir:

  • Composer sayesinde hem iskelet bağımsız hem de laravel’e özgü yazılmış paketlerin kullanımına imkan verir.
  • Eloquent ORM kullanımı basit ve kullanışlı bir ActiveRecord mimari deseni uygulamasıdır. Veritabanındaki her bir tabloya karşılık gelen bir model sınıfı bulunur. Bu sınıf kullanılarak oluşturulan nesneler ile akıcı arabirim (fluent interface) kullanılarak sorgular oluşturulabilir.
  • Yüksek kabiliyetli rota (route) tanımları ile bağlantılar programatik olarak oluşturulur. Rotalara isim vermek ya da rotaya cevap veren controller ve action tanımları ile programatik olarak URLoluşturmak mümkündür. Böylece SEO ya da diğer ihtiyaçlar nedeniyle gereken URL değişikliklerinin projenin genelinde kullanılan linklerde otomatik olarak görülmesini mümkün kılar.
  • Güçlü blade şablon dili ile MVC mimari deseninin View (V) kısmına çözüm sağlanır. View için blade kullanmak mecburi değildir, öntanımlı olarak PHP dilinin kendisi de bir şablon dili olarak tercih edilebilir.
  • İçerisinde kimlik doğrulama (authentication) ile ilgili hazır yapı bulunmaktadır. Yapı aktif hale getirildiği zaman yetkilendirmenin yanı sıra e-posta onaylama, “şifremi unuttum” özelliği gibi ihtiyaçlar için başlangıç dosyaları otomatik oluşturulur. Bunların haricinde Cartalyst geliştirmekte olduğu Sentinel kütüphaneside kullanılabilmektedir ve gerçekten Laravel ile muazzam şekilde çalışmaktadır.
  • XSRF güvenlik açığı için hazır çözümü bulunmaktadır.
  • Migration ve data seeder özellikleri ile veritabanı şeması versiyonlaması ve otomatik veri girişi imkanı sağlamaktadır. Seeder yapısı ile hazırladığınız dataları farklı kurulumlarda otomatik olarak gerekli tablolarınıza insert etmenize imkan vermektedir.
  • Yüksek I/O gerektiren ya da uzun süren işler için kuyruk işleyici ( queue )kütüphanesine sahiptir.
  • Arka planda ya da komut satırı üzerinden çalışması gereken programlar için altyapı sağlamaktadır.
  • Resource klasörünün içinde bulunan lan klasörü ile çoklu dil desteği bulunmaktadır.
  • Popüler SwiftMailer kütüphanesi üzerine kurulu e-posta gönderim kütüphanesi mevcuttur.
  • Birim testleri (unit testing) ve fonksiyonel testler (functional testing) için gerekli altyapı iskelete entegre edilmiş durumdadır.
  • Otomatik sayfalama desteği ile dizi ya da veritabanı sonuçları kolayca sayfalanabilmektedir.
  • Grup çalışmalarına yatkın olması ile beraber .
Laravel Performansı ?

Performans konusunda Sinan Eldem‘in yazısından biraz alıntı yapacağım aslında, ” Cache mekanizmaları sunar. Redis ile bütünleşmiş bir yapısı var adeta evlat edinmişcesine sahip çıkar, bünyesine katmıştır. Projenize redis dahil etmek için ekstra uğraşmanıza gerek yoktur.Çok hızlı ve basit şekilde yapılandırabilirsiniz. ” . Şirket bünyesinde kullanmakta olduğumuz eğitim portalında kullanmaktayız. Tek başına file dosya cacheleme yetmemektedir, bunun için üstündeki farklı teknolojileri kullanmak database ayırmak gibi özelliklerinden de yararlanmak gerekmektedir bence.

Laravel Nasıl Kurulur ?

Laravel’in güzelliği yukarıdaki maddelerimizde belirttiğimiz gibi composer’den yararlanarak rahat bir şekilde kurulum yapabilmekteyiz.

composer create-project laravel/laravel proje-laravel --prefer-dist

Şimdi burada değinmek istediğim özellikle bir konu var, localhost kısmında veya laravel server kısmını kullanmayacak iseniz burada karşınıza çıkacak önemli bir husus bulunmaktadır.

Sitenizin adresi local.com olduğunu varsayalım sitelerin genellikle başlangıç klasörleri httpdocs / public_html gibi dizinlerde index.php dosyasını aramaktadır. Laravel projelerimize varsayılan olarak bu public klasörünün altındadır. Sitenize girmeye çalıştığınızda size hata mesajı döndürecektir, bununla karşılamanız halinde başlangıç dizinini değitirmeniz gerekmektedir. Bunun nasıl yapılacağı konusunda detaylı bir konu yazarak sizinle paylaşacağım.

Büyük Projelerde Kullanabilir miyiz?

Evet Laravel freamwork’ünü büyük projelerinizde rahat bir şekilde kullanabilirsiniz. Daha öncede belirttiğim gibi takım çalışmasına yatkınlığıda olması nedeniyle çok rahat bir şekilde projelerinizde hızla ilerleyebilirsiniz.

kurtitasarim

‘’İrade ve yargıları aşan güçlü bir coşku, ihtiras" diye tanımlanır tutku. Yaptığın işi sevmek yerine, sevdiğin işi yap mottosu da benim tutku tanımım. Kod yazmak bir yana, o kodun sistem üzerindeki hareketlerini, farklı cihazlar ile etkileşimini, o noktalarda oluşan sıkıntıları görmek, çözmek ve bunu yaparken diğer kişilere yol göstermek işimin en zevkli yanı. Bu sebeple önce tutku ile yapılan iş, sonra maddiyat..

This Post Has 2 Comments

  1. Mutlu

    Dezavantajı hiç mi yok? Neden insanlara sadece avantajlarını anlatıp bırakıyorsunuz?

    1. kurtitasarim

      Dezavantajlarını siz paylaşın bende burada sizinle beraber yaşadığınız veya bildiğinizi sandığınız şeyleri paylaşabilirim elbette, belkide benim için hiç dezavantajı olmayabilir. 🙂

Bir cevap yazın