PHP'de çerçeveler gerekli mi? [kapalı]


9

PHP'de çerçeveler gerçekten gerekli mi?

Birini kullanmanın avantajları ve dezavantajları nelerdir?


2
Son zamanlarda bir çerçeve olmadan PHP kullanımı ile ilgili oldukça anlayışlı görünüyor bu SO yazı koştu stackoverflow.com/questions/3655145/…
Matt Molnar

Yanıtlar:


17

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.


1
ama sorun şu ki, her gün hangisini kullanacağımı bilmediğim çerçeveler var
Tayyab Gulsher Vohra

4
@Tayyab Hepsini kullanmalısın!
Arnis Lapsa

1
Bir çerçeve seçmek, uygulamanızın ihtiyaçlarına ve kodlama stilinize göre karar vermeniz içindir. Ayrıca kendinize sorun, kendi uygulamanızı veya bir CMS'yi (Joomla, Drupal, vb.) Döndürmek için bir çerçeveye mi ihtiyacınız var?
Darren Newton

2
"Bilinmeyen bilinmeyenler" konusunda dikkatli olmalısınız. Bir çerçeve kullanmazsanız, çerçevelerin sizin için çözdüğü bazı şeyleri unutma veya bilmeme riski büyüktür. Örneğin, CSRF saldırılarının önlenmesi ile doğru bir şekilde ilgileniyor musunuz? Uygulamanız böyle bir önleme olmadan çalışır, ancak kolayca saldırıya uğrayacaktır. Büyük bir çerçeve seçmek (bunlardan herhangi biri), henüz öğrenmemiş olsanız bile, web uygulamalarının kendileriyle ilgilenmesi gereken tüm şeylerden faydalandığınız anlamına gelir.
Joeri Sebrechts

9

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:

resim açıklamasını buraya girin


7

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


iyi adamlar ben bir biginner ve ben kod yazmak için çalışıyorum ben yeni ve ben php bir çekirdek geliştirici olmak istiyorum lütfen çocuklar bana önermek
Tayyab Gulsher Vohra

3
Bu makale 2006'dan kalmadır ve utanç verici bir şekilde güncel değildir.
Jonathan Rich

1
@JonathanRich: bu makale güncel olmayabilir, ancak yine de utanç verici derecede ilginç!

4

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.


1
iyi ben php bir acemi ve henüz büyük bir şey geliştirmek değil ve ben ne kullanacağım ve hangi için gitmek gerekir ben tamamen boş olduğumu karıştırmak için
Tayyab Gulsher Vohra

İlk adım onları kullanmaz, teknolojileri ve nasıl çalıştıklarını öğrenir (php, framework, js, css, vb.), Sonra php programlamanın temelini anladıktan sonra öğrenmek için Zend veya Symfony veya CakePHP gibi bir çerçeve kullanın nasıl uygulama artırmak için
guiman

2

Ş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.


Ben u bir şey söylemek istiyorum çocuklar aslında ben 2 kodları kullanıyorum biri codeigniter ve diğer yii ve bir çekirdek geliştirici olmak istiyorum ama benim OOP Kavramlar gerçeği o kadar iyi değil.
Tayyab Gulsher Vohra

$ P-> save () yöntemindeki bir 'UPDATE' ve 'INSERT' ifadesi arasındaki farkı nasıl buluyorsunuz?
Srisa

@Srisa - Kimlik belirlemedim. Bir UPDATE yapmak için, ben gerekir: tüm satır üzerine yazarak aksine bir satır birleştirme etmektir. $p=new Product($the_id); $p->load();load()
Christian

2

Tüm uygulamalar bir çerçeve gerektirmez, ancak sonuç olarak çoğu uygulama gerektirir.

Avantajları:

  • Kendinizi tekrar etmeyin - Herhangi bir yeni uygulamanın mevcut birçok uygulama ile ortak işlevselliği olacaktır. Kendinizi tekrar etmekten kaçınmak mantıklıdır. Bir çerçeve, çoğu uygulama için ihtiyacınız olan işlevselliği bir araya getirir. Sonuç olarak zamandan (ve paradan) tasarruf edersiniz.
  • Kendinizi yormayın - Genel olarak yazılım geliştirme oldukça acı verici olabilir. Sıradan şeyleri otomatikleştirmek mantıklı. Bir çerçeve sıhhi tesisatla ilgilenir, böylece son derece yaratıcı olmaya odaklanabilirsiniz. Sonuç olarak çabadan (ve paradan) tasarruf edersiniz.

Dezavantajları:

  • Yolumuz ya da yolumuz yok - Çerçevenin, işlerin nasıl yapılması gerektiğine (ve dolayısıyla sizi öfkelendirmeye) dair dogmatik inançlarınıza aykırı olabilecek katı sözleşmeleri izlemeniz gerekebilir.
  • Edinilmiş çerçeve sendromu - En basit şeyleri bile yapmak için çerçevelere çok bağımlı olabilirsiniz. Çerçeve tüm bunları ele aldığından, istekleri nasıl yönlendireceğinizi, veritabanlarına erişmeyi, nesneleri veritabanı sorgularıyla eşleştirmeyi vb.

Sonuçta, birini kullanmak daha iyidir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.