Bir PHP sınıfının tasarımı.

3 Cevap

Ben basit bir blog yapıyorum ve ben bunun için bir sınıf kullanmak istiyorum. Ben bunu yapmanın en iyi yolu ne olabilir merak ediyorum. 3 yöntemleri şimdiye kadar görebildiğim vardır. Ben bağlantıları, mesaj ve yorum var bir sınıf yaptı. Bir tek dizide, bütün bu verilerin dönen ile sorun yalnızca tek bir kez yankılandı olmalıydı verileri I dönen satır gibi birçok kez yankılanan olmasıydı. Bazı insanlar bu tek bir dizide her şeyi olması gerektiği doğru idi ve söyleyebilirim. Ben hala bu gitmek için doğru yoldur ikna değilim.

Ben gerçekten bazı adamlar bu 3 şeyi işlemek için bir sınıf tasarımı nasıl gibi bazı giriş takdir ediyorum. Ben şimdiye kadar sınıf için gerek biliyorum tek şey veritabanına bir bağlantıdır. Ben kullanmalıyım üyeleri bana açık ne diğer. Yine, ben nasıl yapılması gerektiğini burada bir bakış açısı kazanmak istiyorum.

Thanks, John


Tamam, bu yüzden bu 3 gibi yöntemler demek olsaydı:

var $db;

function GetPosts() {
//posts
}

function GetComments() {
// blog comments
}

function GetLinks() {
// links for the blog
}

Siz ne kullanmak istiyorsunuz bazı üyelerinin olabilir?

Ben diğer yöntemleri çağıran bir yöntem olmalıdır Ayrıca, eğer ben merak ediyorum. Sadece bir kamu yöntemi ve sonra bu diğer yöntemlerin tümü özel yapmak. Genel yöntem özel yöntemleri çağırır ve onların değerlerini dönecekti. Bu tavsiye mi?

3 Cevap

Sıfırdan kendiniz yazmak istiyorsanız, ben bir yazı nesnesi, bir yorum bir nesne, bir bağlantı nesnesi, yani blogun her bölümü için ayrı nesneler yaparak başlamak istiyorum.

Sonra bu objelerin birbirlerine (örneğin, bir yazı nesnesi Yorum nesnelerin bir dizisini içerebilir) ve nasıl (oluşturma, okuma (olsun), güncelleme, silme) işlemleri temel CRUD işleyeceği ile etkileşim nasıl düşünebilirim.

CakePHP bir tutorial on creating a blog yaygın olarak kabul CakePHP framework kullanarak vardır. Blogunuza programlama ederken yeni bir çerçeve öğrenme ilgileniyorsanız eğer, ben bunu tavsiye ederim.

Ben size entites (bağlantılar, ileti yorum) (devam eden) veya bir sebat framework kullanmak yükleme taşıma ve tasarrufu için sınıfları oluşturmak öneririm ama her şeyi-kodu el isterseniz (örneğin, Doctrine ORM for PHP).

Eğer çok sayıda farklı şekillerde tarif ettik işlevselliğini uygulamak olabilir ama sorun; Hiçbir evrensel bir cevabı yok. Bazı kod göndermek eğer belirli bir tavsiye vermek kolay.

Ben ulaşmak istediğiniz görevin ayrıntılarını biliyorum, ama örneğin GetPostManager () yöntemi vardır bir fabrika sınıfı Blog, düşünmüyorum. PostManager oluşturmak, düzenlemek, güncelleme mesajlar ve de onları seçebilirsiniz. Yani, $ Blog-> GetPostManager () -> GetPosts ($ datefrom, $ dateto) mesaj için göz Sayılabilen ve Iterator arabirimleri uygulayan PostCollection sınıf dönecektir. PostCollection PostItem sınıfını içeren bir dizidir. PostItem sınıfı özellikleri bulunuyor veritabanına Haritayı basit bir sınıftır.