Php Ile Sınırsız Alt Kategori Uygulaması Döküman

PHP ile Sınırsız Alt Kategori Uygulaması

Giriş

E-ticaret veya içerik yönetimi sistemlerinde, ürünler veya içerikler genellikle hiyerarşik bir yapı içinde kategorilere ve alt kategorilere ayrılır. Sınırsız alt kategori desteği, bu hiyerarşinin herhangi bir derinliğe kadar uzanmasına olanak tanır ve kullanıcıların içerikleri kolayca bulup düzenlemelerine yardımcı olur. Bu makale, PHP kullanarak sınırsız alt kategori uygulaması için adım adım bir kılavuz sağlayacaktır.

Veritabanı Şeması

Sınırsız alt kategori uygulaması için aşağıdaki veritabanı şemasını kullanacağız:

sql
CREATE TABLE categories (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
parent_id INT DEFAULT NULL,
PRIMARY KEY (id),
FOREIGN KEY (parent_id) REFERENCES categories(id)
);

Bu şema, her kategori için bir id, name ve isteğe bağlı bir parent_id içerir. parent_id, kategorinin üst kategorisinin id‘sine işaret eder.

Model Oluşturma

Veritabanı şemasına karşılık gelen bir PHP modeli oluşturacağız:

“`php
class Category
{
private $id;
private $name;
private $parentId;

// ... getters and setters ...

}
“`

Kategori Ağacı Oluşturma

Kategori ağacını oluşturmak için, tüm kategorileri veritabanından alacağız ve bunları hiyerarşik bir yapıya dönüştüreceğiz:

“`php
function createCategoryTree()
{
$categories = Category::all();

$tree = [];
foreach ($categories as $category) {
    $tree[$category->getParentId()][] = $category;
}

return $tree;

}
“`

Bu fonksiyon, parent_id‘ye göre kategorileri gruplayan çok boyutlu bir dizi döndürür.

Kategori Ağacını Görüntüleme

Kategori ağacını görüntülemek için, rekursif bir fonksiyon kullanacağız:

php
function displayCategoryTree($tree, $level = 0)
{
foreach ($tree as $categoryId => $categories) {
echo str_repeat('-', $level) . $categories[0]->getName() . '<br>';
displayCategoryTree($categories, $level + 1);
}
}

Bu fonksiyon, kategori ağacını hiyerarşik bir şekilde görüntüler ve her kategori için tireler kullanarak girinti ekler.

Yeni Kategori Ekleme

Yeni bir kategori eklemek için, parent_id‘si verilen kategoriyi veritabanına ekleyeceğiz:

php
function addCategory($name, $parentId)
{
$category = new Category();
$category->setName($name);
$category->setParentId($parentId);
$category->save();
}

Kategori Silme

Bir kategoriyi silmek için, öncelikle alt kategorilerini sileceğiz ve ardından kategoriyi veritabanından sileceğiz:

php
function deleteCategory($id)
{
$category = Category::find($id);
$category->children()->delete();
$category->delete();
}

Faydalı Kaynaklar

Sonuç

Bu makale, PHP kullanarak sınırsız alt kategori uygulaması için kapsamlı bir kılavuz sağlamıştır. Veritabanı şemasından model oluşturmaya, kategori ağacı oluşturmaktan kategori ekleme ve silmeye kadar tüm temel kavramları ele almıştır. Bu kılavuzu takip ederek, web uygulamalarınızda güçlü ve esnek kategori yönetimi sistemleri oluşturabilirsiniz.


Yayımlandı

kategorisi