Utilities php dosya?

3 Cevap php

Bir OOP PHP çerçevesinde "yarar" fonksiyonları ile başa çıkmak için en iyi yolu nedir? Şu anda, biz sadece sistemin boyunca gerekli birkaç fonksiyonları ile bir dosya var. (Örneğin, bir değeri ve bir dizi kabul eder, ve bir distribute() function giriş dizi olarak aynı oranlarda ve aynı tuşları dağıtılan değere sahip bir dizi döndürür.)

Ben her zaman kullanarak "kirli" hissettim o tüm nesne yönelimli değil çünkü. Statik yöntemler gibi çeşitli sınıflara bu taşımak için daha iyi bir uygulama mı, yoksa sadece bir semantik çözüm olduğunu? Ya da sadece bazı şeyler OOP yapısının dışında düşecek bir çerçevede bir seviyesi var oluyor?

3 Cevap

Ben her zaman bu gibi sorulara daha pragmatik oldum.

Eğer tam OOP gitmek istiyorsanız, tabii ki sınıflar içine bu ayrılmamak gerekir. Ancak, bu sınıflar sadece onlar gerçekten herhangi bir nesne temsil etmemektedir, çünkü konteyner sınıflar olacak.

Ayrıca: sınıflarını kullanarak singleton deseni kullanarak statik veya her işlevi bildirerek, bu sınıfın bir örneği var ya gerektirecektir. Ikinci ve üçüncü olanlar sadece düz yararsız ve sadece bir cepten sarıcı ise, - ilki (özellikle PHP gibi yorumlanır dilde tamam, o kadar olmayabilir, ama böyle büyük bir çerçeve şeyler, çok büyük olsun) yavaştır işlevleri (özellikle üçüncü yaklaşım) bir dizi için.

EDIT: Beni yanlış kanıtlamak için çekinmeyin. Ben olabilir. Ben çok deneyimli ve her zaman bu şekilde gördüm, ama yanlış olabilir değilim.

Ben, yalnızca statik yöntemleri içeren hiç bir özelliğe sahip ve miras değil, bir Util() sınıf yapmak eğilimindedir. Esasen, bu yarar fonksiyonları bir grup için bir "ad" olarak görür. Ben bu sınıf boyutu büyümeye izin verecek, ancak bu yöntemler sadece belirli veri türleri ile veya ilgili yöntemler bir grup olması gerektiği açıktır eğer çalışmak üzere tasarlanmış olduğu açıktır ise bazen kendi sınıflara yöntemler bölecek belki, bazı özellikleri ile birlikte bir sınıfa gruplandırılmış.

Ben bu kadar uzun sapma kod iyi organize ve zor anlamak ve bakımını yapmak sisteminizde mimari kusurları yaratmak değil olduğu gibi tamamen cepten uygulamalardan sapma mükemmel Tamam olduğunu düşünüyorum.

Ben her zaman standart php fonksiyonları uzantıları olarak yarar fonksiyonları düşünüyorum. Eğer gerçekten onları OO yapmaktan herhangi bir fayda alamadım çünkü nesne yönelimli değildir.