Category Archives: PHP

Laravel: Facade olmayan Facadelar

Başlık biraz ilginç olabilir ama gerçekten durum bu 🙂 Bu yazımda, Facade Pattern, Laraveldeki Facadetan ve Laravel’deki Facadeların neden Facade olmadığını anlatacağım.

Facade Pattern

Facade (fasad) pattern bir yazılım tasarım desenidir (design pattern). Yazılım tasarım deseni nedir diye soracak olursanız, şöyle diyim; Yazılım tasarım deseni, sürekli tekrar eden bir problemin ortak bir çözümü anlamına geliyor. Facade’in türkçe anlamı binaların ön cephesi anlamına gelmekte ama ben yıllardır bu patternın neden bu ismi aldığını anlamadım 🙂 Neyse kısacası Türkçe anlamına kafa yormayın.

Continue reading

Laravel 4 Pagination HTMLi Özelleştirme

Laravel 4’ün mükemmel bir sayfalama (pagination) özelliği var. Bu pagination default olarak Bootstrap 2 destekli. Yani siz bu özelliği kullanıp sayfa numaralarını ekrana bastığınız zaman, uygulamanız Bootstrap 2 uyumlu ise hiç bir sıkıntı yaşamıyorsunuz. Amma ve lakin, zurb murb kullanıyorsanız olmaz 🙁

Continue reading

Satis: Composer ve Private Depolar

Sorun

composer süper bir araç. Hayatımızın her alanında kullanmak istiyoruz. Artık marketten bira istediğimde ben istemeden yanında cips ve sigara vermesini de bekliyorum (en azından benim için required). Neyse kısaca bu yazımda sizlere süper gizli, şirket dışına çıkmaması gereken kodlarımızı private (özel) depolarımızla beraber composer’da nasıl kullanacağımızı anlatacağım.

Continue reading

AngularJS ve Laravel Blade’i aynı anda kullanmak

Sorun

Konu Laravel Blade’i ve AngularJS’i aynı anda kullanmaya gelince, gerçek bir sorun oluşuyor. Hem AngularJS hem de Laravel Blade açma kapama etiketi için çift süslü parantez {{ }} kullanıyor. Neyseki bunun basit bir çözümü var.

Çözüm

Angular’ın $interpolateProvider‘ını kullanarak bu sorunu çözüyoruz.

Kısaca burada, AngularJS’in çift süslü parantez yerine başka birşey kullanmasını söyleyeceğiz.

Mesela:

var customInterpolationApp = angular.module('customInterpolationApp', []);

customInterpolationApp.config(function($interpolateProvider) {
  $interpolateProvider.startSymbol('%%');
  $interpolateProvider.endSymbol('%%');
});

Bundan sonra AngularJS’te %% kullanabilir ve Blade ile {{ }} kullanmaya devam edebilirsiniz.

http://creative-punch.net/2014/01/use-angularjs-laravel-blade-together/ adresindeki makaleden çevirilmiştir.

Mockery ile Mock objeleri yaratmak

Önceki yazılarımda tddye giriş yapıp mock objelerini herhangibir araç kullanmadan yaratmıştık. İşte o yazılar:

Test Driven Development (TDD) Nedir?

PHPUnit Nasıl Kullanılır

Test Edilebilir Kod Üretmek

Birim (Unit) Testlere giriş

Mockery Nedir?

Mockery php test araçları ile kullanılabilen basit ama esnek PHP Mock obje frameworküdür.

Continue reading

TDD: Birim (Unit) Testlere Giriş

Başlarken

Önceki yazılarımda Test Driven Development hakkında bir giriş yapmıştık. Tabiki gerçek hayatta $this->assertTrue(true) yapmıyoruz 🙂 Şimdiki yazımda ise gerçek hayatta birim testler nasıl uygulanıyor onlar hakkında konuşacağım. Daha önceki yazılarıma ulaşmak isterseniz:

Test Driven Development (TDD) Nedir?

PHPUnit Nasıl Kullanılır

Test Edilebilir Kod Üretmek

Continue reading

TDD: Test Edilebilir Kod Üretmek

Daha önceki 2 yazımda TDD hakkında konuştuk ve PHPUnit aracını nasıl kullanacağımıza dair basit bir giriş yapmıştık. Aşağıdaki linklerden ulaşabilirsiniz.

Test Driven Development (TDD) Nedir?

PHP ve TDD: PHPUnit Nasıl Kullanılır?

Giriş

Test yapabilmenin en güzel özelliği, test edilebilir kod oluşturduğunuzda kodunuzun kendiliğinden onarılması ve genişletilmesi kolay bir koda dönüşmesi. Kısacası test yapabilmeniz için kalite bir kod üretmeniz gerekiyor. Kaliteli kod üretmek bir kaç prensip bunları uyguladığınızda kodunuz test edilebilir olacaktır.

Continue reading

PHP ve TDD: PHPUnit Nasıl Kullanılır?

Bir önceki yazımda TDD konusunda teorik olarak konuşmuştum. Şimdi ise PHP ile nasıl uygulayacağımıza bir göz atıyoruz.

PHPUnit

PHPUnit şu anda php’de unit testing yapmak için bir standart olarak kabul edilebilir. PHPUnit, testleri yazabilmeniz için bir framework sağlamakla beraber bu testleri çalıştırabileceğiniz bir araç sunmaktadır.

Continue reading

Güvenlik: Şifre ve Hash üretmek (Şifre gizleme)

Hashlemek, bir metnin bir daha geri döndürülemeyecek bir şekilde şifrelenmesidir şeklinde kısaca anlatabiliriz.

Neden?

Dünyadaki bir çok sistem kullanıcı adı, şifre girişine sahip. Bunlar genel olarak veritabanında saklanır. Eğerki olurda, istenmedik bir kişi veritabanına erişirse, ne olacak ? Bu yüzden kullanıcıların şifrelerini bir daha geri döndürülemeyecek şekilde şifreliyoruz ve o şekilde saklıyoruz. Bu şekilde istenmeyen kişi SQL Injection veya benzeri bir yöntem ile veritabanına eriştiği zaman kimsenin şifresini ele geçirememiş olacak.

Continue reading

Otomatik Yüklenen Sınıflar (Auto-loading classes)

Otomatik yüklenen sınıflar tek bir yerden kullanılacak sınıfları yüklemeye olanak sağlar. Otomatik yüklenen sınıflarda, kullanılmayan sınıfların dosyaları yüklenmezler (include edilmez), bu yüzden etkili bir yoldur. Ancak her bir sınıfı tek tek yüklemek performans açısından daha etkilidir ama bir süre sonra kod karma karışık bir hale dönünce keşke dememek lazım. Continue reading