PHP çerçeveler JavaScript oluşturmak gerekir?

9 Cevap php

Ben bir PHP çerçeveleri fark ettik; Zend, Cake ve Symfony; JavaScript oluşturmak veya PHP kendisi içine bir dize olarak gömülü izin ya görünmektedir. Bu iyi bir fikir mi? Bu çerçeveler / kütüphaneler kullandım insanlardan, ne deneyim Ajax ve JavaScript yardımcıları ile çalışıyor olmuştur? Onu korumak için kolay olmuştur? Kalkınma zamanı azaltmak mı?

9 Cevap

Hayır bu kötü bir fikir olduğunu,

Oluşturulan javascript genellikle site bile (çoğu asp.net siteleri gibi) onsuz çalışmaz anlamına gelir. Eğer daha karmaşık şeyler yapmak istiyorum veya erişilebilirlik geliştirmek istiyorsanız açıkça CSS ve Javascript HTML ayrılarak civarında daha başka bir yolu yoktur.

Eğer PHP kodu ve çevresinde başka bir yol ile istemci tarafında önuç geliştiriciler karışıklık olması gerekmez gibi Ayırma JavaScript kodu da daha rahat hale getirir.

Javascript kullanmak için en iyi yolu, ilk önce o sayfanın alt kısmında javascript dosyaları ve onDomReady gibi kullanım işlevselliği içerir, php Html'nizi oluşturmak izin vermektir. Bu aynı zamanda çerçeve onun ürettiği Javascript için üs olarak o kullanıyor sırf belirli bir kitaplığı kullanmaya zorlamaz.

Bu oldukça öznel bir soru, ama ben şahsen, bir arka-uç çerçevesi benim için bunu yapmak istemem. Bu nedenlerle bir dizi için iş mantığı, sunum, ve istemci tarafı UI davranışlar arasında temiz bir ayırımı tutmak daha iyidir:

  • Daha sürdürülebilir uygulamaları.
  • Bileşenleri tek tek test etmek daha kolay.
  • Daha kolay işbirliği. Farklı beceri setleri farklı alanlarda çalışabilir.
  • Uygulama son kullanıcılar ortamda JavaScript dayanmaz sağlamaya yardımcı olmalıdır.

Ben sadece örneğin ile doğru parametreleri document.domReady ekstra bir olay eklemek zorunda böylece Şahsen, ben öne çıkmayan, elle benim Javascript yazmak istiyorum. O küçük tetik işlevi sonra topu haddeleme alır.

Günün En iyi uygulama:

Keep frontend-code and backend code untangled as much as you can

I would say it depends, like anything. There is certainly some value in having "smart" server side widgets. For example, a widget that "knows" how to update itself through AJAX, or a form which can handle client side, and server side validation. The latter is an example of which it would be costly and time consuming and error prone to rewrite boring validation code in the client. It doesn't require rocket-science javascript, so as long as your framework can handle it unobtrusively, I would actually advise this route. Additionally, framework code that will handle GUI stuff also (a la ext or something similar), is also not a bad a idea.

Ancak, daha karmaşık bir şey, Javascript kendisi kullanın lütfen.

Ben şahsen bu yüzden gerçekten benim için yazılmış istemiyorum benim kendi Javascript yazma seviyorum, ama ben, sizin için bunu yapmak çerçeveler var, özellikle 'tehlikeli' ya da 'zararlı' olarak görmüyorum sürece olduğu gibi düzgün yapılmazsa. Onlarla benim en büyük sorun, çoğu sürece bir özellik standart davranışını istediğiniz gibi çalışacak, ancak en kısa sürede size projenin ihtiyaçlarını karşılamak için biraz farklı bir şey istediğiniz gibi daha iyi yapacağınız özelleştirmek için çok iş alır Daha iyi kendiniz yapmak için servis edilmiştir. En azından CakePHP'nin javascript otomasyon ile benim deneyim oldu.

CakePHP JavaScript ve Ajax yardımcıları ile benim deneyim çok olumlu olmuştur.

Onlar aksi takdirde hepsi "write" javascript kodunun kalitesi hakkında endişe olan ve gerçek ön çıkmadan yapmak, gerçek istemci tarafı deneyimi olan birisi gerektirecek özelliklere prototip ve inşa etmek için sunucu tarafı geliştiriciler sağladı -end gelişmiş istemci tarafı özelliklerine odaklanmak için ücretsiz mühendisleri.

Bu Javascript oluşturmak için PHP için iyi bir fikir değil. Ben ihracat tavsiye ederim sadece javascript aşağıdaki gibi basit JSON atamaları olduğunu:

<script type="text/javascript"><!--
  var MyNamespace.info = <?php echo json_encode($info_array) ?>
// --></script>

Bu PHP bilgi sterilize ve istemci üzerinde javascript erişilebilir olalım kolay yoludur. Ancak, başka bir şey belgenin başında etiketleri ile başvurulan gerçek javascript dosyaları yazılmalıdır. Ben iyi olduğunu söyleyebilirim sunucu tarafı dosyaları Javascript sadece diğer görünüm, "onclick" ve benzeri nitelikleri içine yerleştirilen şeyler.

Bunun mantığı Javascript Javascript biliyorum ön-uç insanlar tarafından yazılmış ve muhafaza edilmesi gerektiğini ve site javascript olmadan (en azından kısmen) çalışmak gerekir. Spagetti Javascript satır içi oluşturmak için hiçbir sebep yoktur.

Doğru bu uygulamak için nasıl bir örnek için benim PHP çerçeve, Pie On PHP (http://phponpie.com) göz atın. Yukarıda gösterildiği gibi JSON ihracat dışında, JS ve PHP ayrı tutar. Ancak aynı zamanda AJAX istemci ve sunucu arasında kolay operasyon için kuralları sağlar.

Ben ayrı dilleri tutmak gerektiğine inanıyorum. Birbirlerini tamamlayacak olsa bile. Eğer söz konusu dilin uygulanmasını almak ve size mükemmel uyan bir karışım oluşturmak edebilirsiniz.

Ben oluşturulan javascript için bir yer kesinlikle olduğunu düşünüyorum. (1)

Oluşturulan javascript için bir numaralı nedeni, bakım kolaylığı. Herhangi bağımlılıkları açıkça kodlanmış ve çerçevesi (PHP, yakut, scala, python) kendisinden yapılandırılır. Eğer varlık hareket veya yükleme dizinini değiştirmek Örneğin, sadece yapılandırmasını güncelleştirmek ve sadece çalışmaz şeyleri izleyebilirsiniz.

Lütfen sunucusu kapalı bazı yük almaya istemci tarafı giriş doğrulama ihtiyacınız var? (2) çerçeve sizin için veri modeli doğrudan elde Doğru doğrulama kodunu oluşturmak olsun. Oluşturulan, JavaScripted nüfusu ile çerçeve önbellek önceden render, statik HTML formları hizmet edebilir. Lütfen form seçer ve birçok seçenek içeriyorsa, bu çok büyük bir kazan olabilir.

1) müşteri site gerektirdiği tüm uyarılar ile, javascript) (daha fazla ya da daha az bağımlı olmak için tamam olduğuna karar olduğunu varsayarsak. Zarif bozulma ya da mümkündür ya da arzu edilebilir ya da olmayabilir.

2) Sen de sunucu tarafı tarafı doğrulama gerekir, ama sen bunu biliyordun, değil mi?