Laravel Helper Class Ekleme

Freamwork kullanırken var olmayan bir özellik için veya kendi işlermizi yapan yeni yapılar sınıflar geliştirmek ve kullanmak isteyebiliriz. Böylece freamwork ü genişletme işlemi yapmış oluruz. Kısaca hemen Laravel de kendi helper sınıflarımızı oluşturmayı göreceğiz.

Laravel de bunu sağlayan standart bir yapı yoktur. Bunun için kütüphane dosyalarınızın nerede olacağı belirleyip bunların bulunacağı bir dizin açmamız gerekiyor. Bu dizine helper class larımızı ekliyor olacağız.

1) Yeni dizin ekleme

Örneğin “app” dizini altına bir “library” adında dizin açalım.

laravel helper directory

helper directory

2) laravel in başlangıç dosyası/işlemlerini bulunduran “app/start” dizinine geçiyoruz. Burada “global.php” dosyasında yer alan class loader sınıfına eklemiş olduğumuz dizinimizi belirtmemiz gerekiyor. Dosyayı görüntülediğimiz de controllers, models gibi dizinlerin tanımlandığını göreceksiniz. Bizde ClassLoader::addDirectories methoduna gönderilen dizin yollarına kendi dizinimizi ekliyoruz.

ClassLoader::addDirectories(array(

app_path().'/commands',
app_path().'/controllers',
app_path().'/models',
app_path().'/database/seeds',

app_path().'/library',

));

3) Bu adımda ise composer.json dosyamızda autoload dizisi içine eklediğimiz “app/library” yolunu bildiriyoruz.

{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
"laravel/framework": "4.2.*"
},
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php",
"app/library"
]
},
"scripts": {
"post-install-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"post-update-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"post-create-project-cmd": [
"php artisan key:generate"
]
},
"config": {
"preferred-install": "dist"
},
"minimum-stability": "stable"
}

4) Composer.json dosyamızı düzenledikten sonra terminal den “composer dumpautoload” komutu ile işlemlerimizi tamamlıyoruz.

Artık ekleyeceğimiz helper class larını kullanabiliriz. Controllers,models, routes gibi yapılarımızda da erişebiliyoruz.

Dikkat edilmesi gereken bir husus static methodlara erişim sağlayabiliyoruz.

Örnek: Message adında helper sınıf yazdık. İçeriği:

class Message
{
public function test(){
 return "test içeriği";
 }

 public static function testStatic(){
 return "test static içeriği";
 }
 }
}

olsun. Controller dosyamızda da bu yardımcı sınıfı kullanalım.

class MainController extends BaseController{

 public function show()
 {
// static method kullanalim
return HashOne::testStatic();

// static olmayan method kullanalim
 $test = new HashOne();
 return $test->test();
 }
}

Gördüğünüz gibi artık helper class ımızı yazdık ve controller içeriğimizde kullandık.

 

Ubuntu Php Mcrypt Yükleme

Laravel için sistem gereksinimlerinde bahsettiğimiz “Mcrypt”  Php eklentisi kurulu olmadan çalışmayı denediğimizde “Mcrypt PHP extension required.” hatası ile karşılaşırız.

Mcrypt eklentisinin yüklü olmadığı belirtiliyor. Bu eklentinin yüklü olup olmadığını phpinfo sayfamızdan da öğrenebiliriz.

mcrypt eklentisi

mcrypt eklentisi

Ubuntu Mcrypt Yükleme

sudo apt-get install php5-mcrypt

daha sonra web sunucumuzu yeniden başlatıyoruz.

sudo service apache2 restart

Aktifleştirmek için yeniden başlatmamız gerekiyor. Yoksa eklenti kurulu olsa da uygulama da kullanmayacaksınız.

Nginx php-fpm kullananlar için ise php-fpm restart edilmesi gerekiyor.

Nginx php-fpm Mcrypt

sudo service php5-fpm restart

Laravel Nedir ? Başlangıç

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 freamwork’ tür.

“WEB SANATÇILARININ PHP FRAMEWORK’Ü” sloganıyla kendisini özetler ve hakkını verir:)

 

Laravel Özellikler

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 Numaralandı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. Türkiye’ de Sinan Eldem’ in çok iyi çalışmaları var. Katkılarından dolayı kendi adıma da teşekkürü borç bilirim. ç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.3.7 ve üzeri sürümler
MCrypt PHP Eklentisi

Gereklidir.

 

Laravel Kurulum

Composer ile kurulum için:

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.

laravel dizini

laravel dizin yapısı

Public klasörüne girdiğimizde laravel varsayılan karşılama sayfası açılır. Laravel varsayılan olarak public dizininde çalışmaktadır.

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 🙂