yardımcı fonksiyonları saklamak için nerede?

1 Cevap php

Ben web'den oluşturmak veya kopya bir çok fonksiyonu var.

ben sadece komut dosyası içeren veya ben bir sınıf statik bir yöntem olarak her fonksiyon kaydetmek gereken bir dosyada saklayabilirsiniz gerektiğini merak ediyorum.

örn. Ben getCurrentFolder () ve isFilePhp () fonksiyonu var.

Onlar bir sınıf vardır ya her gibi bir dosyada saklanmalıdır:

Folder::getCurrent() File::isPhp();

nasıl yaparsınız?

ben bu tür bir "u istediğiniz gibi" bir soru olduğunu biliyorum ama bazı öneriler / en iyi uygulamalar ile harika olurdu

teşekkürler.

1 Cevap

Haklısın, bu ancak ben muhtemelen iki seçenekten bir karışımını kullanmak son derece öznel bir konudur.

Olmayan bir tanımlanmış zaman (PHP 5.3 + kullanıyorsanız ve / veya __callStatic()) magic methods __call() olan bir sınıf (Yardımcı demek) var [statik] yöntemi, ilgili yardımcı dosya yüklemek ve yardımcı işlevi yürütmek olacak denir. Dosyaları da dahil olmak üzere performans azalır ama unutmayın, ama çok küçük bir performans düşüşüne ağır basar dosya organizasyonu açısından kazanç yarar inanıyorum.

Basit bir örnek:

class helper {
    function __callStatic($m, $args) {
        if (is_file('./helpers/' . $m . '.php')) {
            include_once('./helpers/' . $m . '.php');
            return call_user_func_array($m, $args);
        }
    }
}

helper::isFilePhp(/*...*/); // ./helpers/isFilePhp.php
helper::getCurrentFolder(/*...*/); // ./helpers/getCurrentFolder.php

Daha da sınıfların her bir __call[Static]() sihirli yöntemi ekleyerek ve klasör / dosya yapısında bazı mantık uygulayarak, böylece bu pasajını optimize etmek ve hatta yardımcıları çeşitli (Klasör, Dosya) ve olabilir Lütfen yardımcı dosyalar / işlevleri.