Modülleri desteği ile PHP uygulama yazmak için bazı iyi yolları nelerdir?

4 Cevap php

Arkadaşlarımdan biri ile php bir uygulama yazmak için başladım ve bizim uygulama içine modül desteği nasıl uygulanacağına ilişkin herhangi bir tavsiye varsa, merak ediyorum.

Veya nasıl otomatik bir php uygulama tarafından php ile yazılmış modülleri yüklemek için bir yolu var mı? Yoksa ben sadece __ özdevinimli_yükle fonksiyonu güvenmek gerekir?

Ve biz bir web arabirimi üzerinden kurulabilir vardır eklentileri gerekmez, biz sadece bazı sınıfları (onlar sayfa kılacak) yani index.php doğru sınıf aramak ve bu kadar alabilirsiniz projemiz web sayfalarını ilişkilendirmek için bazı akıllı yol gerekir oluşturulan alt sayfa.

Ve biz şimdi, çerçevenin her türlü kullanarak değil en azından.

4 Cevap

Yorumlarınız Re: sıkı dosya adlandırma ile birlikte autoloading IMO bu durumda tamamen yeterli olacaktır.

(Sadece isimler ortak bir önek anlamda değil yeni PHP 5.3 namespace şekilde) belirli bir ad tanımlayabilirsiniz, örneğin Module_* modül sınıf adları için.

Daha sonra, örneğin tam bir sınıf tanımını içeren sınıf dosyaları ile dizinleri içinde modülleri düzenlemek olabilir:

/modules/Mail/index.php   // defines class Module_Mail
/modules/Database/index.php   // defines class Module_Database
/modules/Image/index.php   // defines class Module_Image

Sizin autoloader işlevi sonra, her bir Module_* class istenir olacaktır:

$Database = new Module_Database("localhost", .....);

sağ dizinden doğru dosyayı içerir.

Bu yol, örneğin Zend Framework yapar, ve bu yüzden oldukça iyi yapar.

O gelecekte bir seçenek ise Module_, diğer komut ve uygulamaları ile birlikte temin için daha spesifik ad seçerek düşünün.

Biraz ilgili: In a PHP project, how do you organize and access your helper objects?

Autoloading ilgili olarak, aynı zamanda birçok (birden fazla) özdevinimli_yükle işlevleri tanımlamak için spl_autoload_register kullanabilir, böylece her modül autoloading it kendi uygulama ayarlayabilirsiniz.

Burada ihtiyacınız olan bütün her "modülü" ile ilişkili bir Controller sınıfından olan, bir MVC mimari.

Eğer bir çerçeve kullanarak karşı değilseniz, Zend MVC gitmek

Eğer aşağıdaki ilkeyi olmasını sağlar:

Her sayfa yürütmek için ihtiyaç duyduğu farklı görevleri organize etmek için bir yol arıyoruz gibi geliyor. Bu durumda, MVC pattern bakabilirsiniz. Bu veri erişimi (modeller) ayırmak için basit bir yol sağlar ve nasıl render / mevcut bilgileri (Görüntülendi).

Kolaylıkla işlevlerine sayfaları eşleyebilirler. Eşlediğiniz değerler bir dizi bilgi saklamak ve daha sonra dizideki her URL ile istenen URL'yi karşılaştırmak için bir işlevi kullanın. Böyle bir dizi bu gibi görünebilir:

$urls = array(
    '/' => 'index',
    '/aboutus/' => 'aboutUs',
);

Birkaç saat içinde PHP bunu uygulamak nasıl tartışmak çeşitli makaleleri vardır. This article çok basit bir kılavuzdur. Ben kayıt desen bunların kullanımı bir hayranı değilim ama okuyarak kendiniz uygulayabilirsiniz nasıl olarak yeterli bilgi vermelidir.