Laravel 4 Türkçe Dokümantasyon



Benzer belgeler
Laravel 4 Türkçe Dokümantasyon (v. 4.2) (Ücretsiz)

Laravel 4 Türkçe Dokümantasyon

Laravel 4 Türkçe Dokümantasyon (v. 4.1) (Ücretsiz)

Laravel: From Apprentice To Artisan (TR) Türkçe

Aktarımı Çalıştırmak/Geri Almak 146 Alan Seçenekleri 148 Veri Tabanı Şeması 150 Veri Tabanı ile İlgili Bazı Rake Görevleri 162 Modeller 164

Bu makalede 2003 sunucu, Windows 2003 Server anlamına gelmektedir. Aşağıda yapılan işlemler 2003 R2 sunucu üzerinde denenmiş ve çalıştırılmıştır.

Yükleme kılavuzu Fiery Extended Applications 4.2 ile Command WorkStation 5.6

PHP İle Paket Geliştirme

Kurulum ve Başlangıç Kılavuzu. DataPage için

Web Formlar ve Sayfalar Arasında Bilgi Gönderme. BATML İnternet Programcılığı 1

Veri Tabanı Yönetim Sistemleri Bölüm - 02

Kurulum ve Başlangıç Kılavuzu. DataPage için

Kaynak Kodlardan Derleme. Turquaz Muhasebe. Versiyon 0.2. Hüseyin Ergün. 26 Mart 2005

Implementing Laravel (TR) Türkçe Çevirisi

MEB E-Posta Hizmetleri ve Outlook Programı

Hızlı Başlangıç Kılavuzu

Hızlı Başlangıç Kılavuzu

Ağ Üzerinde MATLAB kurulum rehberi (Sunucu makine)

EndNote Web Hızlı Başvuru kartı

İNTERNET PROGRAMCILIĞI HAFTA MYSQL - PHPMYADMIN. Hazırlayan Fatih BALAMAN. İçindekiler. Hedefler. Mysql Nedir.

Hızlı Başlangıç Kılavuzu

BLGM 354 DENEY 1 * GİRİŞ

MaestroPanel Kurulum

Flow Kullanım Klavuzu Mart 2014

Web Uygulama Güvenliği Kontrol Listesi 2010

Connection Manager Kullanım Kılavuzu

TecCom TecLocal Programı Kurulum ve Yapılandırma Rehberi

Üst Düzey Programlama

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

Bu bölüm V- Ray License Server lisans sunucusu uygulamasının kurulumundan

NicProxy Registrar AWBS Modül Kurulumu Versiyon 1.0

Sunum Planı. Django Nedir? Django projesi oluşturmak Basit bir blog uygulaması. Şablon Kullanımı Diğer özellikleri

HESAP MAKİNASI YAPIMI

İÇERİK YÖNETİM SİSTEMİ (CMS) Bir web sitesi yayınlamak için yapılması gerekenler:

VHOPE ve VHOPE kitaplık dosyalarını kurma

OTURUM AÇMA ADLARI. Tavsiye Edilen Önhazırlık Enterprise Manager'i kullanabilmek.

ProTicaret Exclusive 4.05 E-Ticaret Yazılımı Kurulum Dokümanı

İnternet Programcılığı

BİLGİSAYAR PROGRAMLAMA. Yrd. Doç. Dr. Beytullah EREN

ÇANKAYA ÜNİVERSİTESİ WEBMAIL KULLANIM KLAVUZU

Firma Yazılımı v2.00 Kullanım Kılavuzu

ÖĞRENME FAALİYETİ 1 ÖĞRENME FAALİYETİ 1 1. FORMLAR

Bağlantı Kılavuzu. Yazıcıyı yerel olarak yükleme (Windows) Yerel yazdırma nedir? Yazıcıyı Yazılım ve Belgeler CD'sini kullanarak kurma

Script. Statik Sayfa. Dinamik Sayfa. Dinamik Web Sitelerinin Avantajları. İçerik Yönetim Sistemi. PHP Nedir? Avantajları.

Üst Düzey Programlama

Genel Programlama II

Trend Micro Worry-Free Business Security 8.0 İlk Kez Kurulumla İlgili İpuçları ve Püf Noktaları

BIND ile DNS Sunucu Kurulumu

Bölüm 10: PHP ile Veritabanı Uygulamaları

Tableau Yenilikler

Yandex mail ve disk kullanım rehberi

Bağlantı Kılavuzu. Desteklenen işletim sistemleri. Yazıcıyı Yazılım ve Belgeler CD'sini kullanarak kurma. Bağlantı Kılavuzu

WAMP SERVER KURULUMU

Module 2 Managing User And Computer accounts

Linux Ubuntu Kurulumu

V14xx Güncelleme İşlemleri

McAfee epolicy Orchestrator Pre-Installation Auditor 2.0.0

Kurulum Dökümanı. v

Öğr. Gör. Serkan AKSU 1

ecyber Kullanıcı Kılavuzu 1 / 1 1. ecyber hakkında Sistem gereksinimleri:... 2 Donanım:... 2 Yazılım: Kullanım Rehberi...

ÜSKÜDAR ÜNVERSİTESİ EBYS KULLANIM KILAVUZU

EĞİTMENLER İÇİN UZAKTAN EĞİTİM SİSTEMİ (MOODLE) eders.giresun.edu.tr KULLANIM KILAVUZU

Kullanıcı Klavuzu

Proticaret Exclusive Versiyon Yükseltme Dokümanı(v.3.0'dan v3.1.0'a)

PHP 1. Hafta 2.Sunum

ASP.NET 1. DURUM YÖNETİMİ. BLM 318 e-ticaret ve Uyg. Durum Yönetimi Nedir? Durum Yönetimi: Karșılaștırma İÇERİK. Sunucu-taraflı Durum Yönetimi

Proticaret Exclusive v3.2.0 E-Ticaret Yazılımı Kurulum Dokümanı

General Mobile DSTL1. Sürüm Güncelleme Notları

JasperReports Server ve Ireport raporlama Sistemi Kurulumu / Kullanımı 1. Bölüm 2. Bölüm 1- JasperReports Server ve Ireport Nedir?

Tavsiye Edilen Önhazırlık Temel SQL Server 2000 bilgisi edinmek.

Fiery seçenekleri 1.3 yardımı (sunucu)

Laravel 4 Cookbook (TR)

Kullanþm Talimatlarþ. Uygulama Sitesi

Program Kurulum. Turquaz Muhasebe. İçindekiler

AutoCAD 2011 Kurulumu

State Yönetimi. Bir web sayfası ile sunucu arasındaki etkileşim ;

SESSİON KULLANIMI. .Aşağıdaki Kodları da SessionDevam.asp adıyla kaydedelim. Language=VBScript Codepage="1254"%>

WebInstaller. 1. Kurulum Đçin Gereksinimler

1 İÇERİK YÖNETİM SİSTEMLERİ VE JOOMLA 1. İçerik Yönetim Sistemi (CMS) Nedir? 1. Neden Joomla? 2. Joomla nın Tarihi 3. Joomla nın Anlamı & Logosu 4

Windows 7 - IIS 7.5 üzerine PHP ve MySQL kurulumu

Ders Tanıtım Sunumu. Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı. 26 Şub Öğr. Gör.

General myzyxel.com myzyxel.com Servis Yönetim Servis Name Content Filter Name Password myzyxel.com Submit Redirected URL

Blogcu Kullanma Kılavuzu

KULLANIM KILAVUZU. VSP Teknoloji ile sıfır hatada Dünya standartlarında web kalite politikasına uygun web sitesi oluşturabileceksiniz

MOODLE UZAKTAN ÖĞRETİM SİSTEMİ

Veritabanı Tasarımı. Kullanıcı Erişimini Kontrol Etme

GOOGLE DRİVE KULLANARAK FORM OLUŞTURMA

PHP I PHP I. E. Fatih Yetkin. 26 Eylül 2011

Veritabanı. Ders 2 VERİTABANI

ProTicaret yazılımının, en son sürüm dosyasını indirin.(

SGK Otomasyon Tanıtım ve Kullanım Kılavuzu

Hızlı Başlangıç Kılavuzu

HUAWEI Cihazlara Erişim Yöntemleri

PERKON PDKS Kurulum ve hızlı başlangıç rehberi

Safirblog WP Teması - Kurulum ve Kullanım Kılavuzu

İnternet Programcılığı Öğr. Gör. Serkan AKSU PHP de Dizi-Değişkenler, Nesneler. Dizi Oluşturma. Tek Boyutlu Diziler

Transkript:

Laravel 4 Türkçe Dokümantasyon Laravel 4 Türkiye Forumları Çeviri Ekibi tarafından yapılan çeviriler Sinan Eldem Bu kitap şu adreste satılmaktadır http://leanpub.com/laravel4-tr Bu versiyon şu tarihte yayımlandı 014-04-07 This is a Leanpub book. Leanpub empowers authors and publishers with the Lean Publishing process. Lean Publishing is the act of publishing an in-progress ebook using lightweight tools and many iterations to get reader feedback, pivot until you have the right book and build traction once you do. 013-014 Sinan Eldem

Kitabı tweetleyin! Sinan Eldem a kitabını şu adresten Twitter tanıtarak yardımcı olun! Kitap için önerilen tweet: Laravel 4 Türkçe Dokümantasyon kitaba dönüştürüldü. #laravel4tr @laraveltr @laravelphp Kitap için önerilen hashtag #laravel4-tr. Kitap için diğerleri ne demiş merak ediyorsanız bağlantıya tıklayarak hashtagları arayabilirsiniz: https://twitter.com/search?q =#laravel4-tr

İçindekiler Editörün Notu......................................... i Tanıtım............................................. ii Nereden Başlamalı..................................... ii Laravel Felsefesi....................................... ii Diğer Kaynaklar....................................... ii Geliştirme Ekibi....................................... iii Laravel Hızlı Başlangıç.................................... Kurulum........................................... Rotalandırma (Routing)................................... Bir View Oluşturma..................................... Bir Migrasyon Oluşturma.................................. Eloquent ORM........................................ Veri Gösterme........................................ Sürüm Notları......................................... Laravel 4.1.......................................... iv iv v v vi vii viii ix ix Yükseltme Rehberi...................................... xi 4.1 den 4. ye Yükseltme.................................. xi 4.0 dan 4.1 e Yükseltme................................... xi Kurulum............................................ 1 Composer Kurulumu.................................... 1 Laravel Yükleme....................................... 1 Sunucu Gereksinimleri................................... Yapılandırma........................................ Zarif URL ler........................................ Yapılandırma.......................................... 4 Giriş............................................. 4 Ortam Yapılandırması.................................... 4 Hassas Yapılandırmaları Korumak............................. 6 Bakım Modu......................................... 7 İstek Yaşam Döngüsü..................................... 9 Genel Bakış......................................... 9

İÇINDEKILER İstek Yaşam Döngüsü.................................... 9 Start Dosyaları....................................... 10 Application Olayları (Events)................................ 11 Rotalar............................................. 1 Temel Rotalama....................................... 1 Rota Parametreleri..................................... 13 Rota Filtreleri........................................ 14 İsimli Rotalar........................................ 17 Rota Grupları........................................ 17 Alt Alanadı (Subdomain) Rotalaması........................... 18 Rotalarda Ön-ek....................................... 18 Rotalara Model Bağlama.................................. 19 404 Hatası Fırlatma..................................... 0 Denetçilere (Controller) Rotalama............................. 0 İstekler (Requests) ve Girdi (Input)............................. 1 Temel Girdi......................................... 1 Çerezler (Cookies)...................................... Önceki Girdi......................................... Dosyalar........................................... 3 İstek Bilgileri........................................ 4 Görünümler (Views) ve Cevaplar (Responses)....................... 7 Temel Cevaplar....................................... 7 Yönlendirmeler (Redirects)................................. 7 Görünümler (Views).................................... 8 Görünüm Kompozitörleri.................................. 30 Özel Cevaplar........................................ 31 Cevap Makroları...................................... 3 Denetçiler (Controllers)................................... 33 Temel Denetçiler...................................... 33 Denetçi Filtreleri...................................... 34 TEDA-uyumlu (Temsili Durum Aktarma uyumlu, RESTful) Denetçiler......... 36 Kaynak (Resource) Denetçileri............................... 37 Eksik Olan Metodların İşlenmesi.............................. 38 Hatalar ve Günlüğe Ekleme................................. 39 Hata Ayrıntısı........................................ 39 Hataların İşlenmesi..................................... 39 HTTP İstisnaları....................................... 40 404 Hatalarının İşlenmesi.................................. 40 Günlüğe Ekleme....................................... 41 Güvenlik............................................ 4 Yapılandırma........................................ 4 Şifrelerin Saklanması.................................... 4

İÇINDEKILER Kullanıcı Kimliklerinin Doğrulanması........................... 4 Elle Kullanıcı Girişi..................................... 45 Rotaların Korunması.................................... 45 HTTP Basic Kimlik Doğrulaması.............................. 46 Şifre Hatırlatıcıları & Yenileme............................... 47 Kriptolama.......................................... 49 Önbellekleme (Cache)..................................... 50 Yapılandırma........................................ 50 Önbellekleme Kullanımı.................................. 50 Arttırma & Azaltma..................................... 51 Önbellek Etiketleri (Tags).................................. 5 Veritabanı Önbelleği.................................... 53 Frameworkün Genişletilmesi................................ 54 Giriş............................................. 54 Manager lar & Factory ler................................. 54 Genişletme Nereye Konacak................................ 55 Cache............................................ 55 Session............................................ 56 Authentication....................................... 58 IoC Temelli Genişletme................................... 59 Request Genişletmesi.................................... 60 Olaylar (Events)........................................ 6 Temel Kullanım....................................... 6 Joker Dinleyiciler...................................... 63 Dinleyici Olarak Sınıfları Kullanma............................ 64 Olayları Sıraya Sokma................................... 64 Olay Abonecileri...................................... 65 Cepheler (Facades)...................................... 67 Giriş............................................. 67 Açıklama........................................... 67 Pratik Kullanım....................................... 67 Cephe Oluşturma...................................... 68 Cepheleri Taklit Etme.................................... 69 Facade Sınıf Referansı.................................... 70 Formlar & HTML....................................... 7 Form Açmak......................................... 7 CSRF Koruması....................................... 7 Forma Model Bağlanması.................................. 73 Label Elementi........................................ 73 Text, Textarea, Password & Hidden Alanlar........................ 74 Onay Kutuları ve Seçenek Düğmeleri........................... 74 File Inputu.......................................... 74

İÇINDEKILER Aşağı Açılır Listeler..................................... 75 Düğmeler.......................................... 75 Özel Makrolar........................................ 75 URL Oluşturma....................................... 76 Yardımcı (Helper) Fonksiyonları............................... 77 Arrayler (Diziler)...................................... 77 Dosya Yolları........................................ 81 Yazı İşlemleri........................................ 81 URL İşlemleri........................................ 84 Diğer............................................. 86 IoC Konteyneri........................................ 87 Giriş............................................. 87 Temel Kullanım....................................... 87 Bağlamaların Kayda Geçirileceği Yer........................... 88 Otomatik Çözümleme.................................... 88 Pratik Kullanım....................................... 89 Hizmet Sağlayıcıları..................................... 90 Konteyner Olayları..................................... 91 Yerelleştirme.......................................... 9 Giriş............................................. 9 Dil Dosyaları........................................ 9 Temel Kullanım....................................... 9 Çoğullaştırma........................................ 93 Geçerlilik Denetimi Yerelleştirmesi............................. 94 Paket Dil Dosyalarının Ezilmesi.............................. 94 Posta.............................................. 95 Yapılandırma........................................ 95 Temel Kullanım....................................... 95 Ataşmanların Yazı İçine Gömülmesi............................ 96 Postaların Sıraya Sokulması................................ 97 Posta & Yerel Geliştirme.................................. 97 Paket Geliştirme........................................ 99 Giriş............................................. 99 Bir Paket Oluşturma.................................... 99 Paket Yapısı......................................... 100 Hizmet Sağlayıcıları..................................... 100 Ertelenmiş Sağlayıcılar................................... 101 Paket Gelenekleri...................................... 10 Geliştirme İş Akışı...................................... 10 Paket Rotaları........................................ 103 Paket Yapılandırması.................................... 103 Paket View leri....................................... 104

İÇINDEKILER Paket Migrasyonları..................................... 105 Paket Varlıkları....................................... 105 Paketlerin Yayımlanması.................................. 106 Sayfalama........................................... 107 Yapılandırma........................................ 107 Kullanım........................................... 107 Sayfalama Linklerine Ekleme Yapmak........................... 108 JSON a Dönüştürme.................................... 109 Özel Sunumcular...................................... 109 Kuyruklar........................................... 111 Yapılandırma........................................ 111 Temel Kullanım....................................... 111 Kuyruğa Closure Fonksiyonu Ekleme........................... 113 Kuyruk Dinleyicileri Çalıştırma.............................. 114 Push Kuyrukları....................................... 115 Başarısız İşler........................................ 116 Güvenlik............................................ 118 Yapılandırma........................................ 118 Şifrelerin Saklanması.................................... 118 Kullanıcı Kimliklerinin Doğrulanması........................... 118 Elle Kullanıcı Girişi..................................... 11 Rotaların Korunması.................................... 11 HTTP Basic Kimlik Doğrulaması.............................. 1 Şifre Hatırlatıcıları & Yenileme............................... 13 Kriptolama.......................................... 15 Oturum............................................. 16 Yapılandırma........................................ 16 Oturum Kullanımı...................................... 16 Flaş Verisi.......................................... 17 Veritabanı Oturumları................................... 17 Oturum Sürücüleri..................................... 18 SSH............................................... 19 Yapılandırma........................................ 19 Temel Kullanım....................................... 19 Görevler........................................... 130 SFTP Dosya İndirmeleri................................... 130 SFTP Dosya Göndermeleri................................. 130 Uzak Günlüklerin İzlenmesi................................ 130 Envoy Görev Çalıştırıcısı.................................. 131 Şablonlar............................................ 136 Denetçi (Controller) Düzenleri............................... 136 Blade Şablonları....................................... 136

İÇINDEKILER Diğer Blade Kontrol Yapıları................................ 137 Blade in Genişletilmesi................................... 140 Unit Testing.......................................... 141 Giriş............................................. 141 Testleri Tanımlamak ve Çalıştırmak............................ 141 Test Ortamı......................................... 141 Testlerin İçerisinden Rotaları Çağırmak.......................... 14 Facade ları Taklit Etmek.................................. 143 Çatının Assert Metodları.................................. 143 Yardımcı Metodlar..................................... 145 Application ın Tazelenmesi................................. 145 Geçerlilik Denetimi...................................... 146 Temel Kullanım....................................... 146 Hata Mesajlarıyla Çalışmak................................ 147 Hata Mesajları & Görünümler............................... 148 Mevcut Geçerlilik Kuralları................................. 149 Duruma Göre Kurallar Ekleme............................... 154 Özel Hata Mesajları..................................... 156 Özel Geçerlilik Kuralları.................................. 157 Temel Veritabanı Kullanımı................................. 159 Yapılandırma........................................ 159 Okuma / Yazma Bağlantıları................................ 159 Sorguları Çalıştırma..................................... 160 Veritabanı İşlemleri..................................... 160 Bağlantılara Erişme..................................... 161 Sorgu Günlükleme..................................... 16 Sorgu Oluşturucusu...................................... 163 Giriş............................................. 163 Seçmeler........................................... 163 Joinler............................................ 165 İleri Where Cümleleri.................................... 166 Kümeleme (Aggregate) İşlemleri.............................. 167 Ham İfadeler......................................... 167 Eklemeler.......................................... 168 Güncellemeler........................................ 169 Silmeler........................................... 169 Birleştirmeler........................................ 169 Pesimistik Kilitleme..................................... 169 Sorguların Bellekte Saklanması............................... 170 Eloquent ORM......................................... 171 Giriş............................................. 171 Temel Kullanım....................................... 171

İÇINDEKILER Toplu Atama......................................... 173 Ekleme, Güncelleme, Silme................................. 174 Belirsiz Silme........................................ 176 Zaman Damgaları...................................... 177 Sorgu Kapsamları...................................... 178 İlişkiler............................................ 179 İlişkilerin Sorgulanması................................... 187 Ateşli (Eager) Yüklemeler.................................. 188 İlişkili Modelleri Ekleme.................................. 190 Ebeveyn Zaman Damgalarına Dokunma......................... 19 Pivot Tablolarla Çalışmak.................................. 193 Koleksiyonlar........................................ 194 Erişimciler & Değiştiriciler (Accessors & Mutators).................... 196 Tarih Değiştiricileri..................................... 197 Model Olayları....................................... 197 Model Gözlemcileri..................................... 198 Diziye / JSON a Çevirme.................................. 199 Şema Oluşturucusu...................................... 01 Giriş............................................. 01 Tabloların Oluşturulması ve Yok Edilmesi......................... 01 Sütunların Eklenmesi.................................... 01 Sütun İsimlerinin Değiştirilmesi.............................. 0 Sütunların Yok Edilmesi.................................. 03 Mevcutluk Yoklanması................................... 03 İndeks Eklenmesi...................................... 03 Yabancı Anahtar (Foreign Key)............................... 04 İndekslerin Yok Edilmesi.................................. 04 Depolama Motorları..................................... 05 Migrasyon (Migration) ve Veri Ekme (Seeding)...................... 06 Giriş............................................. 06 Migrasyonların Oluşturulması............................... 06 Migrasyonların Çalıştırılması................................ 06 Migrasyonların Geriye Döndürülmesi........................... 07 Veritabanına Veri Ekme................................... 07 Redis.............................................. 09 Giriş............................................. 09 Yapılandırma........................................ 09 Kullanım........................................... 10 Pipeline Kullanma...................................... 10 Artisan CLI........................................... 1 Giriş............................................. 1 Kullanım........................................... 1

İÇINDEKILER Artisan ın Geliştirilmesi................................... 13 Giriş............................................. 13 Komut Oluşturulması.................................... 13 Komutların Kayıt Ettirilmesi................................ 15 Diğer Komutların Çağırılması............................... 16

Editörün Notu Bu kitap, orijinal Laravel dokümantasyonunun (belgelerinin), Laravel Türkiye Forumları nda oluşturan çeviri ekibi tarafından Türkçe ye çevirilen kullanma kılavuzudur. Laravel ile tanıştıktan kısa bir süre sonra çatının Php kullanıcılarına sağladığı kolaylıkları gördüm ve bunun Türkiye de kullanılması için gereken adımları attım. Öncesinde bir forum, ardından da dokümantasyonun çevirilmesi geldi. Her şey beklediğimden daha hızlı gerçekleşti ve bu dokümantasyon haricinde altı kitabın da çevirisini tamamladım. Bütün süreç boyunca yanımda olan sevgili eşim Bilge ve gözümün ışığı kızım Tuana Şeyma ya teşekkürler. İyi ki varsınız! Çeviri ekibine tek tek teşekkür eder, kattıklarından dolayı minettarlığımı bildiririm. Gerek dokümantasyonun, gerekse bu kitapların çevirisinde tüm süreç boyunca yanımda olan ve çok katkı sağlayan değerli Sergin Arı ya, kattıklarından dolayı minnettarım. Çeviri sürecinde ekibimiz çok ince eleyip sık dokudu ancak yine de hatalar yapmış olabiliriz, bu sebeple karşılaşmanız muhtemel hataları bana aşağıdaki kanallardan bildirirseniz sevinirim. Dilerseniz Github ambarından¹ değişiklikleri kendiniz de uygulayabilirsiniz. Sinan Eldem E-posta: sinan@sinaneldem.com.tr Web: www.sinaneldem.com.tr² Twitter: twitter.com/sineld³ ¹https://github.com/laravel-tr/docs ²http://www.sinaneldem.com.tr/ ³http://twitter.com/sineld

Tanıtım Nereden Başlamalı Yeni bir frameworkün öğrenilmesi zorlayıcı olabilir ama aynı zamanda heyecan vericidir. Geçişinizi kolaylaştırmak için çok temiz, özlü bir Laravel dokümantasyonu oluşturmaya çalıştık. İşte ilk önce neyi okuyacağınız konusunda bazı öneriler: Kurulum ve Yapılandırma Rotalar İstekler (Requests) ve Girdi (Input) Görünümler (Views) ve Cevaplar (Responses) Denetçiler (Controllers) Bu belgeleri iyice okuduktan sonra, Laravelde temel istek / cevap işleyişi üzerinde iyi bir kavrayışa sahip olacaksınız. Daha sonra, veritabanınızın yapılandırılması, fluent sorgu oluşturucusu ve Eloquent ORM konularını okumak isteyebilirsiniz. Ya da, insanları uygulamanızda oturum açmaya başlatabilmek için kimlik doğrulama ve güvenlik konularını okumak isteyebilirsiniz. Laravel Felsefesi Laravel etkileyici ve zarif sözdizimine sahip bir web uygulama çatısıdır (framework). Bizler geliştirmenin gerçekten tatmin edici olması için keyifli ve üretken bir deneyim olması gerektiğine inanıyoruz. Laravel birçok web uygulamasında kullanılan yetkilendirme, rotalama, oturum yönetimi ve ön bellekleme gibi ortak görevleri kolaylaştırarak, geliştiriciliğin zorluklarını ortadan kaldırmak amacını gütmektedir. Laravel, geliştiriciler için, uygulama işlevselliğinden ödün vermeden geliştirme aşamasını memnuniyet verici hale getirmeyi amaç edinmiştir. En iyi kodu mutlu geliştiriciler yazar. Bu hedefe varmak için, başka dillerde yazılmış Ruby on Rails, ASP.NET MVC ve Sinatra gibi çatılar da dahil olmak üzere, diğer çatılarda gördüğümüz en iyi özellikleri birleştirmeye çalıştık. Laravel büyük, kapsamlı uygulamalar için gereken araçları içeren erişilebilir, aynı zamanda güçlü bir çatıdır. Mükemmel IoC konteyneri, etkileyici migrasyon sistemi ve sağlam bir yerleşik ünite test desteği size geliştirmeyi amaçladığınız uygulama için gerekli araçları sağlayacaktır. Diğer Kaynaklar Laravel öğrenmenin en iyi yollarından biri tüm dokümantasyonunu dikkatlice okumaktır. Bu kılavuz size çatının çehresi ve uygulamanızda nasıl kullanacağınız konusunda rehber olur.

Tanıtım iii Bu kılavuza ek olarak Laravel kitapları⁴ na gözatabilirsiniz. Laravel topluluğunun yazdığı bu kitaplar çatıyı öğrenmek için çok iyi tamamlayıcı kaynaklar olarak hizmet edecektir: Laravel 4 Türkçe Dokümantasyon (Bu Kitap)⁵, yazar: Türkiye Forumları Çeviri Ekibi Code Bright (Türkçe Çeviri)⁶, yazar: Dayle Rees ve Sinan Eldem Laravel Testing Decoded (İngilizce)⁷, yazar: Jeffrey Way Laravel: From Apprentice To Artisan (Türkçe Çeviri)⁸, yazar: Taylor Otwell ve Sinan Eldem Implementing Laravel (Türkçe Çeviri)⁹, yazar: Chris Fidao ve Sinan Eldem Getting Stuff Done With Laravel 4 (Türkçe Çeviri)¹⁰ yazar: Chuck Heintzelman ve Sinan Eldem Laravel 4 Cookbook (Türkçe Çeviri)¹¹ yazar: Christopher Pitt, Taylor Otwell ve Sinan Eldem Laravel in Action (İngilizce)¹² by Maks Surguy Geliştirme Ekibi Laravel, çatının geliştirilmesi liderliğini sürdüren Taylor Otwell¹³ tarafından geliştirildi. Önde gelen diğer topluluk üyeleri ve katkıda bulunan kişiler Dayle Rees¹⁴, Shawn McCool¹⁵, Jeffrey Way¹⁶, Jason Lewis¹⁷, Ben Corlett¹⁸, Franz Liedke¹⁹, Dries Vints²⁰, Mior Muhammed Zaki²¹ ve Phil Sturgeon²² dır. ⁴http://wiki.laravel.io/Books ⁵https://leanpub.com/laravel4-tr ⁶https://leanpub.com/codebright-tr ⁷https://leanpub.com/laravel-testing-decoded ⁸https://leanpub.com/laravel-4-tr ⁹https://leanpub.com/implementinglaravel-tr ¹⁰https://leanpub.com/gsd-laravel-tr ¹¹https://leanpub.com/laravel4cookbook-tr ¹²http://www.manning.com/surguy/ ¹³https://github.com/taylorotwell ¹⁴https://github.com/daylerees ¹⁵https://github.com/ShawnMcCool ¹⁶https://github.com/JeffreyWay ¹⁷https://github.com/jasonlewis ¹⁸https://github.com/bencorlett ¹⁹https://github.com/franzliedke ²⁰https://github.com/driesvints ²¹https://github.com/crynobone ²²https://github.com/philsturgeon

Laravel Hızlı Başlangıç Kurulum Laravel Installer Aracılığıyla İlk olarak, Laravel installer PHAR arşivini indirin²³. Kolaylık açısından ismini laravel olarak değiştirin ve /usr/local/bin yoluna taşıyın. Bir kere kurduktan sonra, laravel new komutu, istediğiniz klasöre yeni bir laravel kurulumunu yapacaktır. Örneğin, laravel new blog komutu, içinde tüm bağımlılıkları yüklenmiş yeni bir laravel kurulumu barındıran blog klasörünü oluşturacaktır. Bu yolla kurulum yapmak Composer ile yapmaktan çok daha hızlıdır. Composer Aracılığıyla Laravel framework kurulumu ve bağımlılık yönetimi için Composer²⁴ kullanır. Şayet sizde yoksa Composer yüklemesi²⁵ ile başlayın. Artık terminalinizden aşağıdaki komutu vermek suretiyle Laravel yükleyebilirsiniz: 1 composer create-project laravel/laravel sizin-projenizin-ismi --prefer-dist Bu komut sizin geçerli dizininiz içerisindeki yeni bir sizin-projenizin-ismi klasörüne Laravel in yepyeni bir kopyasını indirecek ve yükleyecektir. Eğer isterseniz, alternatif olarak Github daki Laravel ambarının²⁶ bir kopyasını elle indirebilirsiniz. Sonra da elle oluşturduğunuz proje dizininizin kökünde composer install komutunu çalıştırın. Bu komut, frameworkün bağımlılıklarını indirecek ve yükleyecektir. İzinler Laravel yüklenmesinden sonra, app/storage dizinlerine web sunucu yazma izinleri hakları tanımanız gerekebilir. Yapılandırma konusunda daha fazla ayrıntılar için Kurulum dokümantasyonuna bakınız. Laravel in Hizmete Sokulması Tipik olarak, Laravel uygulamalarınızı sunmak için Apache veya Nginx gibi bir web sunucusu kullanabilirsiniz. Eğer sizde PHP 5.4+ var ve PHP nin yerleşik geliştirme sunucusunu kullanmak isterseniz, serve Artisan komutunu kullanabilirsiniz: ²³http://laravel.com/laravel.phar ²⁴http://getcomposer.org ²⁵http://getcomposer.org/doc/00-intro.md ²⁶https://github.com/laravel/laravel/archive/master.zip

Laravel Hızlı Başlangıç v 1 php artisan serve Dizin Yapısı Frameworkün yüklenmesinden sonra, dizin yapısıyla aşina olmak için projenize bir göz atın. Projenizdeki app dizini views, controllers ve models gibi klasörler içerir. Uygulamanızın kodlarının çoğu bu dizin içindeki bir yerlerde ikamet eder. Ayrıca, app/config dizinini de inceleyip sizin için sunulmuş yapılandırma seçeneklerini keşfetmek isteyebilirsiniz. Rotalandırma (Routing) Başlangıç olarak Laravel de ilk Route umuzu yazalım. Laravel de rota oluşturmak için en basit yol bir closure (anonim fonksiyon) kullanmaktır. app/routes.php dosyasını açın ve aşağıdaki kod parçacığını sayfanın en altına yapıştırın: 1 Route::get('kullanicilar', function() { 3 return 'Kullanıcılar!'; 4 }); Şimdi, eğer web tarayıcınızda /kullanicilar adresine girerseniz, ekranda Kullanıcılar! yazısını görmüş olmanız gerekir. Eğer gördüyseniz çok iyi! İlk rotanızı başarıyla oluşturdunuz. Route lar ayrıca controller sınıflarına da bağlanabilir. Örneğin: 1 Route::get('kullanicilar', 'KullaniciController@getIndex'); Bu Route Laravel e şunu belirtiyor: /kullanicilar rotasına yapılan bir istek KullaniciController sınıfındaki getindex metodunu çağırmalıdır. Controller Routing hakkında daha fazla bilgi almak için Controller Dökümantasyonu na bir göz atın. Bir View Oluşturma Şimdi basit bir view dosyası oluşturup, kullanıcı bilgilerini ekrana view üzerinden yazdıracağız. View dosyaları app/views dizini içerisinde bulunmakta olup projenizin HTML dosyalarını barındırır. Şimdi bu dizin içerisine tane dosya oluşturacağız: layout.blade.php ve kullanicilar.blade.php. Önce layout.blade.php dosyamızı oluşturalım:

Laravel Hızlı Başlangıç vi 1 <html> <body> 3 <h1>laravel Hızlı Başlangıç</h1> 4 5 @yield('content') 6 </body> 7 </html> Şimdiki adımda ise kullanicilar.blade.php view dosyasını oluşturalım: 1 @extends('layout') 3 @section('content') 4 Kullanıcılar! 5 @stop Bu sözdizimi size ilk etapta biraz yabancı gelebilir. Bunun sebebi Laravel in güçlü şablonlama sisteminin (Blade) kullanılmasıdır. Blade son derece hızlı çalışır çünkü sadece birkaç tane regex kodları kullanıp Blade sözdizimini PHP skriptlerine dönüştürür. Blade kullanıcılarına çok büyük fonksiyonellik sağlar. Şablon kalıtımı (Template inheritance) ve PHP nin if ve for gibi temel kontrol yapılarını Blade üzerinden kullanabilirsiniz. Daha fazla bilgi için Blade Dökümantasyonu na bakınız. Şimdi gerekli view dosyalarımızı oluşturduğumuza göre, oluşturduğumuz viewi /kullanicilar isteğine bir cevap olarak döndürelim. Kullanıcılar! stringini döndürmek yerine, bu kez oluşturduğumuz view dosyalarını döndüreceğiz: 1 Route::get('kullanicilar', function() { 3 return View::make('kullanicilar'); 4 }); Harika! Bir layoutu genişleten bir view oluşturdunuz. Bir sonraki bölümümümüzde Veritabanı Katmanı (Database Layer) üzerinde duracağız. Bir Migrasyon Oluşturma Bir veritabanı tablosu oluşturmak için Laravel in migrasyon (migration) özelliğini kullanacağız. Migrationlar çok kolay bir şekilde veritabanında değişiklikler yapmayı ve bunları takım arkadaşlarınızla paylaşmanızı sağlar. Öncelikle bir veritabanı konfigürasyonu ayarlayalım. Tüm veritabanı konfigürasyonlarınızı app/config/database.php dosyası içerisinde değiştirebilirsiniz. Laravel öntanımlı olarak MyS- QL kullanmaya ayarlanmıştır, veritabanı konfigürasyonlarınızı app/config/database.php dosyası içerisinde tanımlamanız gerekecektir. Dilerseniz driver değerini sqlite yapıp app/database dizininde bulunan SQLite veritabanını kullanabilirsiniz. Sonra, bir migration oluşturmak için Artisan CLI kullanacağız. Projenizin ana dizinine gelerek, aşağıdaki kodu terminal üzerinde yazın:

Laravel Hızlı Başlangıç vii 1 php artisan migrate:make create_users_table Şimdi, oluşturulan migration dosyasını app/database/migrations dizininde bulun. Bu dosya metoddan oluşmaktadır: up ve down. up metodunda, tablonuzdaki değişiklikleri yapmalısınız. down metodunda ise yaptığınız değişiklikleri geri almalısınız. Şuna benzeyen bir migration oluşturalım: 1 public function up() { 3 Schema::create('users', function($table) 4 { 5 $table->increments('id'); 6 $table->string('email')->unique(); 7 $table->string('name'); 8 $table->timestamps(); 9 }); 10 } 11 1 public function down() 13 { 14 Schema::drop('users'); 15 } Şimdi bu migrationu Artisan CLI üzerinde migrate komutu kullanarak çalıştıralım. Projenizin ana dizinine gelip aşağıdaki kodu çalıştırın: 1 php artisan migrate Eğer bir migrationu geri almak isterseniz migrate:rollback komutunu çalıştırmanız yeterli olacaktır. Şimdi bir veritabanı tablosu oluşturduğumuza göre, tablomuzdan veri çekmeyi öğrenerek devam edelim! Eloquent ORM Laravel mükemmel bir ORM aracıyla beraber gelmektedir: Eloquent. Eğer daha önce Ruby on Rails frameworkü üzerinde çalıştıysanız Eloquent size çok tanıdık gelecektir, çünkü veritabanı işlemleri için ActiveRecord stilini kullanır. Öncelikle, modeli tanımlayalım. Bir Eloquent modeli ilgili veritabanı tablosunu sorgulamak için kullanılabilir, aynı zamanda bu tablo içindeki belirli bir satırı temsil eder. Merak etmenize gerek yok, örnekleri görünce ne kadar kolay olduğunu anlayacaksınız! Model dosyaları app/models dizininde bulunmaktadır. Şimdi o dizinde bir User.php modeli oluşturalım:

Laravel Hızlı Başlangıç viii 1 class User extends Eloquent {} Lütfen dikkat edin, herhangi bir veritabanı tablosu belirtmedik. Eloquent in içerisinde çeşitli gelenekler vardır, bunlardan birisi modelin veritabanı tablosu olarak model adının çoğul halini kullanmaktır. Kullanışlı, değil mi? Tercih ettiğiniz veritabanı yönetim aracını kullanarak, users tablosuna birkaç satır ekleyin. Ondan sonra Eloquent i kullanarak o tablodan bazı verileri çekip view dosyamıza göndereceğiz. Şimdi /kullanicilar rotamızda değişiklik yapalım ve şuna benzer bir hale getirelim: 1 Route::get('kullanicilar', function() { 3 $users = User::all(); //Users tablosundaki tüm verileri $users değişkenine at\ 4 ar 5 6 return View::make('kullanicilar')->with('users', $users); 7 }); Şimdi bu scripti biraz inceleyelim. Öncelikle, User modelindeki all metodu users tablosundaki tüm verileri çekecektir. Daha sonra bu veriler with metodu kullanılarak view dosyasına gönderilir. with metodu bir anahtar ve bir değer almaktadır, böylece gönderilen veriyi view dosyası tanıyabilir. Harika. Artık kullanıcıları view dosyamızda göstermeye hazırız! Veri Gösterme Şimdi view imizde users değişkenini kullanılabilir yaptığımıza göre, onu şuna benzer bir şekilde gösterebiliriz: 1 @extends('layout') 3 @section('content') 4 @foreach($users as $user) 5 <p>{{ $user->name }}</p> 6 @endforeach 7 @stop echo ifadesinin nerede olduğunu merak ediyor olabilirsiniz. Blade kullanırken, küme parantezi arasına yazılan değişkenler aynı echo ifadesindeki gibi ekrana bastırılır. Şimdi /kullanicilar adresine girip veritabanınızda kayıtlı olan tüm kullanıcıların listesinin ekrana bastırıldığını görebilirsiniz. Bu sadece bir başlangıç. Bu derste Laravel in en temel konularını gördünüz, ancak daha göreceğiniz birçok heyecan verici özellikler var! Dökümantasyonu okumaya devam edin ve Laravel içerisinde gelen birçok farklı özellik hakkında daha fazla bilgiye sahip olun. Örneğin Eloquent ve Blade. Belki de sizin ilginizi Queues ve Unit Testing çekiyordur? Ya da IoC Container kullanarak uygulamanızın mimarisini güçlendirmek istiyorsunuzdur? Seçim sizin!

Sürüm Notları Laravel 4.1 Değişikliklerin Tam Listesi Bu sürümün tam değişiklik listesi bir 4.1 yüklemesinden php artisan changes komutunu vererek veya Github daki değişiklik dosyasına²⁷ bakarak görülebilir. Bu notlar sadece bu sürümdeki önemli geliştirmeleri ve değişiklikleri kapsamaktadır. Yeni SSH Bileşeni Bu sürümle birlikte tamamen yeni bir SSH bileşeni getirilmiştir. Bu özellik sizin uzak suncuculara kolaylıkla SSH iletişimi kurmanıza ve komut çalıştırmanıza imkan verir. Daha fazla öğrenmek için SSH bileşeni dokümantasyonuna bakın. Yeni php artisan tail komutu yeni SSH bileşenini kullanmaktadır. Daha fazla bilgi için, tail komut dokümantasyonuna bakın. Tinker de Boris Eğer sisteminiz destekliyorsa php artisan tinker komutu şimdi Boris REPL²⁸ kullanmaktadır. Bu özelliği kullanmak için readline ve pcntl PHP uzantıları başlatılmış olmalıdır. Bu uzantılara sahip değilseniz, 4.0 daki kabuk kullanılacaktır. Eloquent Geliştirmeleri Eloquent e yeni bir hasmanythrough ilişkisi eklenmiştir. Bunun nasıl kullanılacağını öğrenmek için Eloquent dokümantasyonuna bakın. Modelleri ilişki sınırlandırmalarına dayalı getirmeye imkan vermek amacıyla yeni bir wherehas metodu kullanıma girmiştir. Veritabanı Okuma / Yazma Bağlantıları Sorgu oluşturucu ve Eloquent de dahil olmak üzere veritabanı katmanı boyunca artık okuma / yazma bağlantılarının otomatik olarak ayrı ayrı ele alınması mümkün bulunmaktadır. Daha fazla bilgi için dokümantasyonuna bakın. ²⁷https://github.com/laravel/framework/blob/4.1/src/Illuminate/Foundation/changes.json ²⁸https://github.com/d11wtq/boris