• Web sitemizin içeriğine ve tüm hizmetlerimize erişim sağlamak için Web sitemize kayıt olmalı ya da giriş yapmalısınız. Web sitemize üye olmak tamamen ücretsizdir.
  • Sohbetokey.com ile canlı okey oynamaya ne dersin? Hem sohbet et, hem mobil okey oyna!
  • Soru mu? Sorun mu? ''Bir Sorum Var?'' sistemimiz aktiftir. Paylaşın beraber çözüm üretelim.

PHP Ad Alanları (Namespaces)

Tranquillo

Grafiker™️ Developer✓ Development Yetkilisi·
Üyelik Tarihi
4 Ocak 2023
Konular
53
Mesajlar
132
MFC Puanı
1,620

PHP Ad Alanları

Ad alanları, iki farklı sorunu çözen niteleyicilerdir:
  1. Bir görevi gerçekleştirmek için birlikte çalışan sınıfları gruplayarak daha iyi organizasyona izin verirler.
  2. Aynı adın birden fazla sınıf için kullanılmasına izin verirler.
Örneğin, Tablo, Satır ve Hücre gibi bir HTML tablosunu tanımlayan bir sınıf grubunuz olabilirken, aynı zamanda Mobilyayı tanımlayan Masa, Sandalye ve Yatak gibi başka bir sınıf grubunuz da olabilir. Ad alanları, sınıfları iki farklı grup halinde düzenlemek için kullanılabilirken, aynı zamanda iki Tablo ve Tablo sınıfının karıştırılmasını da önler.

Ad Alanı Bildirme

Ad alanları, anahtar kelime kullanılarak bir dosyanın başında bildirilir namespace:

Sözdizimi

MEGAForum adında bir ad alanı bildirin:

HTML:
<?php
namespace MegaForum;
?>

Not: namespace PHP dosyasındaki ilk şey bir bildirim olmalıdır. Aşağıdaki kod geçersiz olacaktır:

PHP:
<?php
echo "Merhaba Megaforum";
namespace Megaforum;
...
?>

Bu dosyada bildirilen sabitler, sınıflar ve işlevler MegaForum ad alanına ait olacaktır:

Örnek

MEGAForum ad alanında bir Table sınıfı oluşturun:

HTML:
<?php
namespace MEGAForum;
class Table {
  public $title = "";
  public $numRows = 0;
  public function message() {
    echo "<p>Table '{$this->title}' has {$this->numRows} rows.</p>";
  }
}
$table = new Table();
$table->title = "Benim megaforum";
$table->numRows = 5;
?>

<!DOCTYPE html>
<html>
<body>

Daha fazla organizasyon için iç içe ad alanlarına sahip olmak mümkündür:

Sözdizimi

Code adlı bir ad alanı içinde MegaForum adlı bir ad alanı bildirin:

PHP:
<?php
namespace Code\MegaForum;
?>

Ad Alanlarını Kullanma

Bir bildirimi izleyen herhangi bir kod namespace ad alanı içinde çalışır, bu nedenle ad alanına ait sınıflar herhangi bir niteleyici olmadan başlatılabilir. Bir ad alanının dışından sınıflara erişmek için, sınıfın kendisine bağlı ad alanına sahip olması gerekir.

Örnek

MegaForum ad alanındaki sınıfları kullanın:

PHP:
<?php
$table = new MegaForum\Table()
$row = new MegaForum\Row();
?>

Aynı ad alanından birçok sınıf aynı anda kullanıldığında, namespace anahtar sözcüğü kullanmak daha kolaydır:

Örnek

MegaForum\qualifier'a ihtiyaç duymadan MegaForumad alanındaki sınıfları kullanın:

PHP:
<?php
namespace MegaForum;
$table = new Table();
$row = new Row();
?>

Ad Alanı Takma Adı

Yazmayı kolaylaştırmak için bir ad alanı veya sınıfa bir takma ad vermek yararlı olabilir. Bu, use anahtar kelimeyle yapılır:

Örnek

Bir ad alanına bir takma ad verin:

PHP:
<?php
use MegaForum as H;
$table = new H\Table();
?>

Örnek

Bir sınıfa bir takma ad verin:

PHP:
<?php
use MegaForum\Table as T;
$table = new T();
?>
 
Üst