PHP'de çerçeveler gerçekten gerekli mi?
Birini kullanmanın avantajları ve dezavantajları nelerdir?
PHP'de çerçeveler gerçekten gerekli mi?
Birini kullanmanın avantajları ve dezavantajları nelerdir?
Yanıtlar:
Hayýr. Ama güzeller.
Artıları : Kodu kendiniz yeniden oluşturmak zorunda kalmadan zaman kazandırır. Projeniz için geçerli olan, sayısız özellik, işlev ve veri yapısını kullanın.
Eksileri : Kodu kendiniz oluşturmamak, projenizin çalıştığı temel üzerinde daha iyi bir anlayış düzeyinde bir kayıp olabilir.
Web uygulama çerçeveleri yalnızca onlarla olan deneyiminiz kadar iyidir.
Her çerçevenin bir öğrenme eğrisi vardır, bu eğrinin üstesinden gelene kadar, muhtemelen bir çerçeveyi kullanmanın tüm faydalarını reddedecek kadar geriye doğru bir şeyler yapacaksınız. Uygulamanızın geliştirilmesi gereksiz derecede yavaş olacak, kodun izlenmesi zor olacak ve çerçevenin yeni bir sürümü yayınlandığında her şey kırılacak. Sıkı bir son teslim tarihi olan projeler için yabancı bir çerçeve (ya da yabancı bir teknoloji) kullanmaya teşebbüs etmemeyi tavsiye ederim.
Çerçeveleri kullanmada nasıl daha iyi olur?
Bir avuç tanrı korkunç uygulamalar inşa etmeli ve yinelemelisiniz. Sonunda tuhaflıkları anlayacaksınız ve bir çerçeve kullanmak size daha kısa geliştirme süresi ve daha iyi organize edilmiş kod sağlayacaktır.
Bir PHP çerçevesi kullanmalı mısınız?
Yeterli PHP kodlayan herkes sonunda bir çerçeve kullanır. Soru şu ki, kendi çerçevenizi mi yoksa üçüncü bir tarafça geliştirilen çerçeveyi mi kullanacaksınız? Deneyimlerime göre, üçüncü taraf çerçevesinin sağlamlığına ve kalitesine uygun hiçbir zaman kendi çerçevenizi geliştirmeyeceksiniz. Bununla birlikte, kendi çerçevenizi geliştirmek PHP topluluğunda bir geçiş hakkı gibi görünüyor, bu yüzden kendi veritabanı soyutlama sınıfınızı yazmaktan vazgeçmeme izin vermeyin.
İşte yararlı bir grafik:
Rasmus Lerdorf'a göre PHP'nin kendisi bir çerçeve olduğu için ek bir çerçeveye ihtiyacınız yok. http://toys.lerdorf.com/archives/38-The-no-framework-PHP-MVC-framework.html
Gerçekten, projenizin büyüklüğüne bağlı. Veri tabanı olmayan ve 10 sayfadan fazla olmayan bir ana sayfa, bir çerçeve çok fazla olacaktır, çünkü çerçeve çerçeveleri her zaman belirli ihtiyaçlara uyacak şekilde çok fazla yapılandırma ve özelleştirmeye ihtiyaç duyar. Ve bazı durumlarda bir dosyada yer alan birkaç sayfadan biraz daha yavaş olabilirler (özelliklerini kullanmak için tüm çerçevenin yüklenmesi gerekir.).
Şimdi, veritabanı etkileşimleri, web hizmetleri vb.İle orta / büyük boyutlu bir site planlıyorsanız, farklı teknolojilerle etkileşime girmenize ve kodunuzu işler bozulduğunda, düzenleyeceğiniz şekilde düzenlemenize yardımcı olacak bir çerçeveye ihtiyacınız olacak. hızlı bir şekilde tespit etmek ve onarmak için habilitie. Ayrıca istemciler hakkında düşünürseniz, her zaman yazılım hakkındaki düşüncelerini değiştirirler, bu nedenle istemcinin yeni bir özelliği değiştirmesi veya eklemesi gerekiyorsa, tüm kodunuzdan geçmeniz ve bu yeni özelliği nasıl takacağımı düşünmeniz gerekmez. bu sphagetti.
Birçok başka artıları ve eksileri var, ama bunlar ilk aklımdan geçti.
Düzenleme: Ben günlük üslerde symfony çerçeve kullanın ve ayrıca üniversite için php ile çalışma yaptım (herhangi bir çerçeve kullanmak için izin verilmeyen web geliştirme hakkında bazı dersler vardı), bu yüzden çoğu bu deneyim geliyor.
Şaka yapıyorsun değil mi?
Gereklilik kullanıma bağlıdır. Bilgisayarlar insanlığa, arabaya vb. İhtiyaç duymaz.
Avantajları / dezavantajları gelince, her biri kendi!
Kendi çerçevemden bazı örnek kodlar göstermek istiyorum:
class Product extends DatabaseRow {
public $name='';
public $price=0.0;
public $images=array();
public $description='';
public table(){
return 'products';
}
}
$p=new Product();
$p->name='Bread';
$p->price=0.5;
$p->images=array('loaf1.jpg','bakery.jpg');
$p->description='Our premium diet bread.';
$p->save();
Orada ne yaptığımı gördün mü? Bu sınıf bir dükkan için bir model görevi görür. OO'dan başka özel olan nedir? Tablo veya herhangi bir sütun yoksa, dinamik olarak oluşturulur. 0 betik yükle. Tabii ki, bu benim çerçevemde belirli bir özellik. Ama fikri anladınız.
$p=new Product($the_id); $p->load();
load()
Tüm uygulamalar bir çerçeve gerektirmez, ancak sonuç olarak çoğu uygulama gerektirir.
Avantajları:
Dezavantajları:
Sonuçta, birini kullanmak daha iyidir.