Neden php üzerinde (raylar gibi) bir web çerçeve kullanmak?

12 Cevap php

Bu özelliği kullanmak için ne çerçeve hakkında bir soru değildir. Rails ve Django hem öğrendim, ve ben PHP benim webapps tüm yazın. Benim soru neden çerçeveler ile rahatsız edilir? O her zaman eski MySQL kodu yeniden ve phpMyAdmin ile "model" inşa etmek için daha bir çerçeve kullanmak bana daha uzun almış. Ben de ne oluyor biliyorum çünkü, her şeyi kendim yazma gibi. Hala vb fonksiyonlar, yeniden ve ben istiyorum nasıl şeyler yapmak, ve bu özgürlük en çerçeveler eksik gibi görünüyor olabilir.

Ben benim yolum doğru olduğunu söylemiyorum; Aslında, benim mantık başarısız nerede anlamaya çalışıyorum. Yutturmaca sadece ince hava olamaz. Ne eksik?

12 Cevap

Bir çerçevenin temel fikir abstruction daha yüksek bir düzeyde çalışmak ve size özel gereksinimlerini uygulamak için yazmak zorunda sadece kod yazmak için izin vermektir. Tüm diğer tekrarlayan şeyler çerçevesi tarafından sizin için ele, ve muhtemelen bunu kendiniz yapsam çok daha az hata ve güvenlik açıkları ile olduğunu.

Bu sadece kendiniz temel dil özellikleri ve standart API'leri kullanarak yapmak için daha bir çerçeve öğrenmek için daha uzun sürer olabilir feel gibi, ama bu sadece doğru değil - değil çerçeve iyi ve uygulaması olmayan önemsiz ise , ve özellikle de bunu tüm hataları bulmak ve ortadan kaldırmak için almak ve uzun zamandan beri tüm tasarım hataları düzeltmek istiyorum zamanında (her yeni proje için farklı bir dersin aptalca olurdu kullanarak) bir çerçeve ve faktör öğrendim kez , bulundu elimine ve geliştirici topluluğu tarafından çerçevesinde giderilmiştir.

Hemen hemen her geliştirici söyle kovboy kodlayıcı içgüdüleri var "şeyler yaparak kendinizi kod diğerlerini yazdım kullanarak çok daha eğlenceli olduğunu, ve ben doğru ilk kez almak için yeterince iyi değilim eminim, bu yüzden daha hızlı olacak ve daha iyi! ". Bu içgüdüleri hemen hemen her zaman yanlıştır.

Çerçeveler yerine size başka her uygulama için yazmak zorunda olurdu Demirbaş kodu endişesi daha uygulamanın kendisi konsantre sağlar. Onlar böyle bir model-view-kontrolör olarak denenmiş ve test edilmiş tasarım patters kullanarak, çok daha mantıklı (çoğunlukla nesne yönelimli) bir şekilde size site yapısı sağlar. Çerçevesinde kod genellikle daha olgun ve çerçeve olarak yılda kodunu mükemmelleştirmek kodunu mükemmelleştirmek geliştiricilerin büyük bir topluluk var kod daha yüksek bir standart tek-off projeler için kendinizi yazarsınız. Bu çerçeve odaklı siteler genellikle daha iyi performans ve daha güvenli olduğu anlamına gelir.

Ayrıca şeyleri kendiniz yazmayı seviyorum sözü - Ben sizden geldiğini biliyorum. Bu benim çözüm kendi çerçevesi yazmak oldu - Ben yaptığım her proje ile benim kodu yeniden ve geliştirmek için olsun ve ben tersyüz tüm kod temeli biliyorum.

Bunu kendi kendine yazma daha kolay şeyleri kendi kendine anlamak için ama ne yazık ki bu çok zor, diğer geliştiricilerin neler olup bittiğini anlamak için yapabilirsiniz için yapabilir. Altyapıları genellikle daha iyi belgelenmiş olması ve yazdı uygulaması üzerinde çalışan yeni bir geliştirici destekleyen daha büyük bir topluluk olacaktır.

Ben bunun büyük bir parçası odaklanmak ne olduğunu düşünüyorum. Altyapıları Eğer bir bütün olarak uygulama odaklanmak yardımcı Alptekin'in, tutmak zorunda olmamalıdır parçaları standardize. Kendi kodunu her zaman yeniden Eğer zaten kendi derme çatma çerçevesini kullanarak ediyoruz.

Sizin bir dili (PHP) için bir çerçeve (Raylar) karşılaştırma. Bir çerçeve Eğer proje benzersiz kılan ne zaman harcamak böylece size önceden oluşturulmuş bileşenler verecek.

Sen zaten sizin için bunu yapmak yardımcı olan bir kod tabanı olabilir. Eğer daha rahat nerede olduğunu beri PHP çerçeveler bazı göz atın. CakePHP, CodeIgnitor ve / veya Zend Framework bir göz atın.

Birçok küçük uygulamalar / siteler inşa ediyorsanız, bir çerçeve kullanarak hayatınızı kolaylaştırabilir.

Eğer aşina değiliz - Bu başlangıçta bir PHP geliştiricisi başlangıçta Ruby kullanmak artık alacağını aynı nedenlerle bir çerçeve kullanmak artık götüreceğiz.

Onlarla öğrendikten sonra, çerçeveler sıradan atlamak ve aslında app önemli parçalarını yazmaya odaklanmak için yeteneğini sunabilir.

I think a good step for you is to create your own framework with the code you've programmed so far. ;)

Diğer bir deyişle, kod parametrizeable yapmak için çalışın: veya farklı web siteleri (form jeneratörler / validators) in: Eğer (tarz kaplar örneğin) bir web sitesinin farklı yerlerinde yeniden kullanabilirsiniz bileşenleri oluşturmak.

Hatta daha ileri gidip size web siteleri oluşturmak için yeni sınıflar uzandığı baz sınıflar oluşturabilirsiniz. (Örneğin: veri genel select / ekleme / güncelleme / silme yöntemleri ile nesneleri).

Ben bu size çerçeveler kadar lanet kullanışlı neden iyi görünümü verir bahis ;)

Zaten php kendi çerçevesini yazdım gibi kodu yeniden söz yapmak beri, bana geliyor.

Ben başkasının uyum yerine tekerleklerin kendi kümesi kullanmak daha kolay olmak hayal edebilirsiniz. Bunda utanılacak birşey yok.

Ayrıca, sadece onlara önemli ölçüde üretim süresini kısaltacak kullanarak Symfony'de veya CakePHP gibi PHP tabanlı bir çerçeve kullanmalısınız.

Bir çerçeve iş kullanmak için bir neden kodu ayrılıktır. Örneğin Symfony al. Modeli tüm itmek veya doktrin kütüphaneleri ile yapılır. Çok az SQL gerekli. Sen, yeni bir nesne ve kullanıcı alıcı ve ayarlayıcıları örneğini veri depolamak için, ve yerine sayfa kodunda SQL yazma sorguya ilgili nesneleri işlevleri oluşturabilir. Eğer olması gerektiği modeli ile iş mantığı tutmak, bunun için modelini soran farklı sayfalarda verilerin aynı tür erişmek gerekir, bu yüzden herhangi bir fark var asla zaman. Tüm iş "eylem denetleyici fonksiyonu" yapılır. Koşullar için ifadeler. Bunun bir daha bulduk eğer size ihtiyacınız olan tüm verileri almak ve daha sonra temelde sadece döngüler ve bazı dışında eylem denetleyicisi, (var değişkenleri yankılanan, ekranda az php koymak kod etkili yolu, ve benim 2 proje üzerinde üretim zamanı yarıya gördüm.

Sadece sizin için çalışıyor fin biri var, sadece büyük bir çerçeve kullanmak için yeni bir dil python / ruby ​​öğrenmek gerekmez.

İlk olarak, PHP de çerçeveler vardır, bu nedenle belirtilen soru noktası özlüyor.

Evet, kendi çerçevesi yazabilirsiniz, ve Kris dediği gibi, bu ayıp yoktur. Ancak, kodu yeniden kaldıraç parçası birçok çabalarının kolektif değerdir. Bu sadece kendi kodu yeniden ilgili değil. Altyapıları ortak görevleri ve desenleri hepimizin payı saklanması ve eden gelişmeler birçok yineleme ile de test çözümleri sunmak. Hiçbir bireysel çaba olursa olsun, kim o kadar ölçmek için gidiyor.

Kendi atarsanız, sadece dünya standartlarında insanların kolektif çaba nedeniyle dünya standartlarında olacak, ve senin fikrin yararları dikkat eğer sadece olur. Orada üst çerçeveler zaten bu kriterlere kanıtlanmıştır.

DHH akıllı bir adam olduğunu, ancak bugün sahip Rayları yalnız onun tarafından gerçekleştirilmiş olabilir asla. Bile yakın değil.

Eğer dediğiniz gibi o zaman senin eşleşen bir çekirdek felsefesi ile bir çerçeve seçin ve iyileştirilmesi için oda görebilirsiniz alanlarında temel katkılar yapmaya başlamak, "her şeyi kendin yazma" isterseniz.

Web Uygulama fonksiyonları bağlı olarak, bir çerçeve olmadan geliştirmek için daha hızlı olabilir. WebApp sadece bazı tür veri görüntüleyici olduğunda örneğin.

Ama en kısa sürede daha gelişmiş fonksiyonları uygulamaya başladığınızda, çok daha verimli bir çerçeve vardır.

Try do do this from scratch: - proper Form validation - Handling of multiple Language and Date/Time formatting - Authentication

Ücretsiz araçlar ve kullanmak için kararlı uygulanan fonksiyonu olarak bir çerçeve görüyorum.

Altyapıları PHP (veya üzerine inşa edilmiş belirli bir dil) o olmadan sitenize ekstra parçalar eklemek için güvenli ve yeterli kolay olduğunu bir ölçüde bir web sitesi oluşturmak edebilmek için yarı-yeni olan insanlara yardım etmek için ağırlıklı olarak vardır güvenlik, MySQL (veya diğer veritabanı türleri) gibi özellikleriyle ilgili bir şey bilmek zorunda. Bence bu çerçeve elbette çok karmaşık olmadığı gerçeği için izin, bir dile mola coder'lara yardım için oldukça iyi bir yoldur.

Onlar yeni başlayanlar için olduğunu söyleyerek arkamda EDIT Neden çünkü kendimi, bir acemi çok daha iyi dile kendimi kırmak için çerçeveler kullanılır gibi.