Laravel Nedir ?
Laravel ihtiyaç duyulan, gelişmiş bir çok özellik ve yapıyı üzerinde barındıran, PHP ve OOP tüm nimetlerinden yararlanan, web uygulamaları geliştirmeyi sağlayan açık kaynak PHP framework’ tür.
“WEB SANATÇILARININ PHP FRAMEWORK’Ü” sloganıyla kendisini özetler ve hakkını verir.
Laravel Özellikleri
Yapısı gereği gerçekten çok sade ve temiz kod yazarak istediğiniz uygulamaları geliştirme imkanı verir.
Söz dizimi çok basit ve anlamlıdır. Alışmak için zorlanmazsınız, çabuk öğrenilebilir.
Bir kaç işlem barındıran küçük uygulamalardan, büyük kurumsal projelere kadar her türlü web uygulamasını tasarlama esnekliğine sahiptir.
OOP ve PHP nin tüm nimetlerinden yararlanır böylece güncel php özelliklerinde oop uygun şekilde çalışırız.
Diğer Laravel’i laravel yapan özellikler:
ORM
ORM Nedir önce onu açıklarsak; (Object Relational Mapping) Database ile uygulamamızda (Object-Oritented) nesnelerimiz sayesinde bağlantı kurup yönetmemizi sağlayan bir yapıdır. Klasik SQL cümleleri yazmadan nesnelerimiz üzerinden veri tabanına erişim sağlayıp kontrol edebiliyor sorgular çalıştırabiliyoruz. ORM database den bağımsız çalışır. Yani Mysql, SQLite, postgresql, MSSql, Oracle gibi bir çok database için aynı kodları kullanırsınız. Bir çok avantajı var ama burada değinmeyeceğiz.
Laravel Eloquent ORM kullanır. En gelişmiş Active Record uygulamasıdır.
class Message extends Eloquent {}
$message = Message::find(1);
Gördüğünüz gibi çok basit kullanılabilir bir yapısı vardır. Sizi bir çok tanımlama yapmak uzun cümleler yapılar kurmaktan kurtarır.
Messages (“s” Siz table belirtmez iseniz çoğul hali olan “s” takısını ekleyerek database de tablo seçer) tablosundan id = 1 olan mesajı getirir.
Blade Template
Blade adı verilen template engine sahiptir. Uygulamanıza yine çok kolay ve sade şekilde arayüzle bütünleştirebiliriz. Öğrenilmesi yine kolaydır,temiz ve dinamik arayüzler hazırlayabilirsiniz html ve php kodları içinde savaş vermezsiniz.
Route
Müthiş bir route (yönlendirme) mekanizması vardır. Yorulmadan temiz URL elde eder api ler için uygun erişim yönlendirmeleri yapabilirsiniz. Php yapısında yabancı olmadığınız şekilde.
Route::get('users', function()
{
return 'Users!';
});
Burada ister yönlendirmelerinizi yapabilir ister filtrelerden kontrollerden geçirebilir ister Controller class larınıza yönlendirebilirsiniz. Hatta burada bu fonksiyonda uygulamanızın gerçekleştireceği işlemleri dahil controller class lara gerek kalmadan gerçekleştirebilirsiniz. (Önerilmez)
Migrations (Sürüm Kontrolü, Göçler)
Veri tabanı sürüm kontrol sistemidir. Artisan Komut Satırı ile uygulamanızın veritabanına şemalar ekleyebilir düzenleyebilirsiniz. Veri tabanı yönetim sistemine gitmeden sisteminizdeki veritabanınızı oluşturmaya yada güncellemeye yarayan yapı. Örneğin uygulamanızı başka bir ortama taşıdınız, veri tabanını oluşturmaya çalışmaktansa uygulamanızda ki hali hazırdaki yapıyı çalıştırarak sistemi hazır hale getirmiş oluyoruz.
Unit Test (Birim Test)
Uygulamanızı test etmek için birim testler oluşturup çalıştırmamızı sağlar. Artisan komut satırıyla hazırladığımız testleri çalıştırabiliriz.
Automatic Pagination (Otomatik Sayfalandırma)
Laravel bizim yerimize sayfalama sistemini düşünmüş ve bizi zahmete sokmadan el atmış. Kolay şekilde kullanabilir istersek değiştirebiliriz.
Modüler paket yönetimi ve composer
Composer, uygulamanızın üçüncü parti paketlerini kontrol edip hızlı şekilde ekleyip yönetmeyi sağlar. Composer ile bağımlılıklarınızı paketlerinizi dert etmez tek tek uğraşmak yerine çok kolay bir şekilde dahil edebilirsiniz.
Performans
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.
Dahili olarak auth, filter gibi bir çok yapıyı içinde barındırıyor. Bunu yine kendi yapısına uygun ve basit şekilde sunar. Hemen hemen her uygulamada auth mekanizması olur ve bunu yapmak için ekstra çabaya gireriz. İşte laravel bunu da pas geçmemiş çok güzel bunun gibi yapılarda sunmuş.
Bir çok Symfony bileşeni üzerine kurulmuştur.
Güvenli, hızlı, sitenizi ayağa kaldırmak çok kolaydır.
Tek komutla sitenizi aktif hale veya yapım aşamasına alma gibi seveceğiniz bir çok özelliği daha mevcuttur.
Topluluk
Bir yapıda en büyük özelliklerden birisi de bana göre topluluktur. Başınız sıkıştığında yardım alabileceğiniz, danışacağınız, müthiş örnekler ve çözümler bulabilmeniz gibi bir çok yardımı dokunur.
Çok hızlı büyüyen topluluğa sahiptir. Henüz genç bir freamwork sayılır. Bu sebeple örneğin bir codeigniter kadar topluluğa ve aşinalığa sahip değildir. Ancak çok hızlı büyümektedir. Popülerliği her geçen gün artmaktadır. Türkiye ‘ dede kabul görmüş hızla atan bir kitlesi var, ayrıca iş ilanlarında da laraveli görmek mümkün. Çok iyi bir Türkçe döküman hazırlanmış. Ayrıca resmi sitesinde , yerli ve yabancı forumlarına yine ulaşabilirsiniz. Ulaşmakla yetinmeyip sizde katkıda bulunursanız çok daha başka güzel olur:)
Döküman sıkıntısı yaşamaz, çok kısa zamanda öğrenebilir yardımlar alabilirsiniz.
Laravel ile Yapılan Siteler
Laravel ile oluşturulmuş uygulamaların yer aldığı http://builtwithlaravel.com/siteden gerçek çalışmalara göz atabilirsiniz.
Sunucu Gereksinimleri PHP >= 5.5.9 OpenSSL PHP Extension PDO PHP Extension Mbstring PHP Extension Tokenizer PHP Extension MCrypt PHP Eklentisi
gereklidir.
Laravel Kurulum
Composer ile kurulum
composer create-project laravel/laravel laravel-test-proje1 --prefer-dist
Bulunduğunuz dizinde “laravel-test-proje1″ klasöre laraveli indirip kuracaktır.
Github – Git ile Kurulum
Github adresi: https://github.com/laravel/laravel
Git clone: https://github.com/laravel/laravel.git
Kurulum yapmak istediğimiz dizine gelerek
$ git clone https://github.com/laravel/laravel.git
ile git reposundan kendi localimize çekiyoruz. Sonra composer ile laravel in bağımlılıklarını yüklememizi sağlar.(Biliyoruz ki artık composer kullanıyoruz laravel bağımlılıklar, paketler için)
composer install
Evet laravel freamwork edinmiş olduk artık. Sunucunuzdan laraveli indirdiğiniz dizine gelirseniz, public klasöründe laravel in çalıştığını görürüz. Bizi laravel logosunun karşlıladığı bir sayfa görüyorsak her şey yolundadır.
Benim örneğimden “http://localhost/testLaravel/” girdiğimde laravel dizinleri gösterilir.
Not: sunucunuzun “app/storage” dizinine yazma izni vermemiz gerekebilir.
Laravel nedir, özellikleri nedir, neden laravel, laravel nasıl kurulur gibi temel bilgileri edindik Sonraki yazılarda laraveli detaylı işleyip uygulamalar geliştireceğiz. Şahsen kendi projelerim ve profesyonel hayatta da etkin şekilde kullanacağım.
Tavsiyem
Hangi freamwork iyidir, hangi freamwork onu döver gibi konulara girmeden sadece laravel açısından kendi gözlem ve önerilerimi aktarayım. Ancak freamwork karşılaştırmaları avantaj, dezavantajları alternatifleri, kullanım alanları gibi bilgilerin olacağı başka bir yazıya yer verebiliriz.
Gerçekten öğrenilmesi kolay, söz dizimi, yapısı, basitliği kodlarla sanat yapar gibi çalışmanıza imkan vermesiyle kendisine bağlıyor mest ediyor. Çalışmaktan mutluluk duyuyorsunuz. Projenizde her şey düzenli, yerli yerinde oluyor. Yapının içinde boğulmuyorsunuz aradığınızı buluyorsunuz. Kodlar sizinle konuşur gibi olduğu için dilinden anlıyorsunuz:) Geri döndüğünüzde abi burada ne yapmıştım demiyorsunuz(tabi yinede geliştirmenize göre değişebilir) :) Dahili bir çok yapı bulundurmakla kalmıyor bunları karmaşadan ve hantallıktan uzak şekilde sunuyor. Auth, Redis bunlardan sadece bazıları. Projenizi çok kısa zamanda ayağa kaldırır vakit kaybetmezsiniz. Eski usul kod geliştirmeyi unutur modern kabul görmüş programcılığa adım atarsınız. ORM, OOP, Template Engine,Redis,Composer,Unit Test vb yapılara aşina olursunuz.Artılarını çok yakından hissedersiniz. Uygulamanızı kısa zamanda ayağa kaldırır, her uygulama geliştirmede alt yapılar oluşturmak zorunda kalmazsınız. Her şey çok basit çok yalındır. Düşündüğünüz bir çok şey etrafında toplanmıştır.
En azından denemenizde göz atmanızda fayda olacağını düşünüyorum. Bir başlarsanız daha tadından yenmeyeceğini fark eder tavsiyelerime katılırsınız.