Bir önceki yazımda Ubuntu üzerinde Lamp Server kurulumunu anlatmıştım. Kurulumdan sonra bazı değişiklikler yaptı ve Apache’yi yeniden başlattığınızda “apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1. Set the ‘ServerName’ directive globally to suppress this message” hatasını alırsanız:

gksudo gedit /etc/apache2/apache2.conf

Komutu ile apache2.conf dosyasını açıp en alt satıra:

ServerName localhost

Satırını ekleyin. Dosyayı kapatın ve Apache’yi yeniden başlatın.

sudo service apache2 restart

Not: Anlatılanlar Ubuntu 14.04 baz alınarak anlatılmıştır.

Ubuntu üzerinde lamp (Linux, Apache, Mysql, Php) server kurulumu apt paket yöneticisi sayesinde oldukça kolaydır. İlk önce “ctrl + alt + t” tuş kombinasyonu ile terminali açalım.

sudo apt-get update

Komutuyla paket indeksimizi güncelleyelim. Paket indeksini güncelledikten sonra lamp server kurulumuna geçebiliriz.
Yazının Devamı →

php-oop Php sınıf yapılarından bahsettiğim şu yazımda kalıtım konusunu kısaca anlatmış ve bir örnek vermiştim. Bu yazıda kalıtımın detaylarına inmek, avantajlarından bahsetmek ve ek birkaç örnek daha göstermek istiyorum.

Kalıtım bizi kod tekrarından ve aynı işi yapan metotları farklı sınıflarda tanımlamaktan kurtarır. Daha önce örnek verdiğimiz araba ve motosiklet sınıfları üzerinden anlatalım. Her arabanın bir rengi ve tekerlekleri bulunur. Aynı durum motosiklet için de geçerlidir. Eğer kalıtımdan faydalanmazsak her sınıfta renk ve tekerlek için ayrı, ayrı metotlar tanımlamamız gerekir. Aynı durum öğrenci ve öğretmen sınıfları için de geçerlidir. Her ikisinin de kendilerine has özellikleri bulunduğu gibi, ad, soyad, yaş gibi ortak özellikleri de bulunmaktadır. Önceki yazımdan alıntı yaparak örneğimize geçmek istiyorum.

Yazının Devamı →

php-oop Şu yazımda php sınıf yapılarına bir giriş yapmış ve sarmalamadan (encapsulation) bahsetmiştim.

Bir nesnenin özelliklerine sınıf dışından erişmek pek doğru olmayan bir yaklaşımdır. Araba sınıfımızın tekerlik adında bir özelliği olduğunu düşünelim. Bir arabanın en fazla 4 tekerliği olmak zorundadır. Eğer bu özelliğe 5 değeri atanırsa bunu nasıl kontrol edebiliriz? Nesne özelliklerine yani sınıf içinde tanımlanmış değişkenlere direk erişim, çalışma anında oluşan hatalara veya sınıfımızın isteneni yapmaması gibi durumlara sebep olur. Bunu engellemek için sarmalama (encapsulation) kavramı geliştirilmiştir. Oluşturulan özelliğe sadece sınıf içinden erişilir ve bu özelliğe değer atayan bir “setter” ve bu değeri döndüren “getter” metodu yazılır. Bu şekilde çalışma anında oluşabilecek hatalar da engellenmiş olur. Yazının Devamı →

php-oopNesne yönelimli programlama büyük projelerde ve ekip çalışmasında birçok avantajı bulunan bir yaklaşımdır. Nesne yönelimli yazılımda nesneler, sınıflar (class) tarafından temsil edilir. Sınıfları metot (method) ve özellikler (property) oluştururlar. Sınıfların içinde tanımlanan fonksiyonlara metot, değişkenlere ise özellik denir.

Nesne yönelimli programlamada sınıflar birbiriyle etkileşime geçebilirler. Nesne yönelimli yaklaşım bize kapsülleme (sarmalama (encapsulation)), kalıtım (inheritance), çok biçimlililk (polymorphism), soyut sınıflar (abstract) ve arayüz (interface) kullanımı gibi avantajlar sağlar.

Teorik detayların içinde boğulmadan, anlamayı kolaylaştırmak için şunu söyleyebilirim ki: Resimle ilgili bir sınıf yazıyorsak resim nesne, resmin boyutu özellik ve resmi küçültme işlemi metottur denebilir. Yazının Devamı →