Namespace Nedir?

Namespace(İsim Alanı) Nedir?

Kısaca; aynı isimde farklı sınıflar oluşturmak için kullandığımız küme adlarına namespace denir.

İsim alanlarından; sınıflar, fonksiyonlar ve sabitler etkilenir. Çoğunlukla sınıflara tanımlanır.

Örneğin: Hem satıcı hem alıcı bulunduran bir e-ticaret sistemi yazıyoruz. Böyle bir sistemde kullanıcıların, mantıken birbirinden farklı özelliklere sahip olması gerekir. 

lib/musteri/Kullanici.php

<?php
class Kullanici
{
  const TANIM = "Ben müşteri kullanıcısıyım";
}

lib/magaza/Kullanici.php

<?php
class Kullanici
{
  const TANIM = "Ben mağaza kullanıcısıyım";
}

index.php

<?php
require "lib/musteri/Kullanici.php";
require "lib/magaza/Kullanici.php";

İki ayrı sınıfı, aynı dosyada çalıştırmaya çalıştığımız anda PHP bize; "kafam karıştı, bir tane Kullanici sınıfı tanımla" diyecektir. İşte tam burada namespace devreye giriyor.



PHP: Nesne Yönelimli Programlama - Ders 4


Bir önceki yazımda sınıf sabitleri ve static anahtar sözcüğünden bahsetmiştim. Bu yazımda ise sihirli yöntemlerden bahsedeceğim.

Sihirli Yöntemler Nedir? 

Sınflarda, belirli olaylardan sonra tetiklenen özel metot isimlerine Sihirli Yöntemler denir.

Sihirli Yöntemler

İsim Açıklama
__construct() Kurucu metottur. Sınıftan bir nesne yaratıldığında ilk olarak çalışır. Genelde sınıf çalıştığında gerçekleşecek işlemlerin yapıldığı metottur.
__ destruct() Yıkıcı metottur. Sınıfla ilgli bütün işlemler tamamlandıktan sonra çalışır. Genelde, sınıf özelliklerinin temizlenmesinde kullanılır.
__clone() Sınıf nesnesi, clone anahtar sözcüğü ile kopyalanmak istendiğinde tetikilenir.
__toString() Sınıf nesnesi, ekrana yazdırılmak istendiğinde tetiklenir.
__sleep() Sınıf nesnesini serileştirmek( serialize() fonksiyonu kullanıldığında) istendiğinde tetikilenir.
__wakeup() __sleep() metodunun tam tersi unserialize() fonksiyonu kullanıldığında tetikilenir.
__invoke() Sınıf nesnesi, bir metot olarak çağrılırsa tetiklenir.
__set() Sınıf içinde olmayan yada dışarıdan erişilemeyen bir özelliğe veri girilirken tetiklenir
__get() Sınıf içinde olmayan yada dışarıdan erişilemeyen bir özellik okunurken tetiklenir
__isset() Sınıf içinde olmayan yada dışarıdan erişilemeyen bir özelliğe isset() veya empty() fonksiyonları uygulandığında tetiklenir.
__unset() Sınıf içinde olmayan yada dışarıdan erişilemeyen bir özelliğe unset() fonksiyonu uygulandığında tetiklenir.
__call() Sınıf içinde olmayan yada dışarıdan erişilemeyen bir metot çağrıldığında tetiklenir.
__callStatic() Sınıf içinde olmayan yada dışarıdan erişilemeyen bir statik metot çağrıldığında tetiklenir.


Z-WAMP - Web Sunucu Paketi

Uzun süredir kendi çalışmalarımı evimdeki linux sunucumda yazıyorum; fakat freelance çalışmaya başladıktan sonra kodlamayı windows bilgisayarımda, XAMPP üzerinde yapar oldum.

Geçen hafta, içinde MongoDB'yi bardındıran bir iş teklifi aldım; fakat hiç bir türlü PHP diline MongoDB'yi entegre edemedim. Verdiği hata ise "bilinmeyen hata". Sorunu çözemeyince, içinde MongoDB de barındıran bir suncu paketi aradım ve Z-WAMP Server'ı buldum.



PHP: Nesne Yönelimli Programlama - Ders 2


Bir önceki yazımda OOP nedir, class nasıl tanımlanır ve class'lar ile ilgili temel bilgilerden bahsetmiştim. Bu yazımda ise görünürlükten bahsedeceğim.

Görünürlük Nedir? 

Özellik veya metotlara verdiğimiz, erişme yetkisine denir.

public: Heryerden erişmek için public kullanılır.

private: Yalnızca sınıfın kendi içinde erişmek için private kullanılır.

protected: Sınıfın kendi içinde ve miras alınan sınıflarda erişmek için protected kullanılır.