PHP İşlev Kötüye?

3 Cevap php

Ben kodlanmış geniş bir sistemi var ve ben kodu (Diyebilirim ki) daha basit ve kolay okunur yapmak istiyoruz. Ne yazık ki bu daha önce, ben çok kullanılan fonksiyonlara değil.

Benim kod çalıştırmak birçok farklı MySQL sorguları var, ben fonksiyonları içine çeşitli görüntüler yapmak ve ayrı bir dosyada saklayabilirsiniz eğer (aslında, ben olsam bilmek isterdim) korumak için kod çok daha kolay olacağını hissediyorum.

Eğer performans açısından ve diğer faktörler uzun vadede beni incitecek düşünüyorsanız, bu yaygın bir uygulamadır ve eğer ben merak ediyorum tek şey vardır. İşte şu anda kullanıyorum ne bir örnek:

$result = mysql_query("SELECT * FROM table");

while($row = mysql_fetch_array($result)){

/* Display code will go here */

}

Tahmin edebileceğiniz gibi bu uzun alabilirsiniz. Ben böylece, sonuç değişkeni almak ve bunu gerçekleştirmek, ve sonra sonuçları dönecektir bir işlevi yapma düşünüyorum:

$result = mysql_query("SELECT * FROM table");

dsiplayinfo($result);

Bu gitmek için doğru yol olduğunu düşünüyor musunuz?

[Edit]

Bunların her biri farklı şekillerde verileri görüntülemek gerekiyor çünkü fonksiyonları çok farklı olurdu. Her senaryoda gösterilen gereken veritabanı farklı alanlar vardır. Eğer bu yaklaşım hala bile bu faktörü ile iyi biri olduğunu düşünüyor musunuz? AKA Modüler tasarımı tamamen başarılı olmak değil, ama kolay bakım.

3 Cevap

Daha fonksiyonları kullanarak yardımcı olabilir, ve yaralayıcı olabilir. Teorik olarak bu yeniden yazmak o gerek kalmadan birden apps ve üzerinde bir işlevi kullanabilirsiniz, yani modüler tasarımı karşı daha taşır.

Ben dürüst MVC Frameworks gibi orada, daha büyük kongre doğru sizi teşvik edecektir. Kohana büyük bir tanesidir. Bu mantık tüm gerçekleştirmek için dışardan ek işlevsellik için Yapanlar, veritabanını sorgulamak için Modeller ve Kontrolörleri gibi şeyler kullanır - ve nihai sonucu HTML / CSS ile biçimlendirilmiş ve Javascript ile baharatlı edilecek View aktarılır.

Aklınızda tutmak istediğiniz bir şey KURU ilkedir: Kendinizi Tekrar etmeyin.

Eğer bulgu varsa orada birden çok kez kullandığınız bir kod bloğu, ya da aynı yapılabilir çok benzer, o bir işlevi içine taşınıyor için ideal bir adaydır.

Evet, aynı zamanda bir ORM veya bazı veritabanı agnostik arayüzü içine bakarak düşünün. Bu aynı zamanda tekrarını azaltmak (ve kesinlikle daha kolay yeni bir DB taşıma yapmak, bu hiç gelmelidir) yardımcı olabilir.

Temelde Eğer uygulama arasında paylaşılabilir fonksiyonlar içine dışarı faktör bir fırsat var (bu yapıda ya da işlevsellik olması) benzer görünümlü kodu görmek her zaman. Dikkat etmeniz gereken bir kural Yourself (DRY) tekrarlayın etmeyin