AngularJS'yi bir PHP çerçevesi ile karıştırmalı mıyım? [kapalı]


161

Etkileşimli HTML5 ve model bağlama söz konusu olduğunda AngularJS çok güçlüdür. Öte yandan, Yii gibi PHP çerçeveleri hızlı, iyi yapılandırılmış, güvenli ve güçlü web uygulaması geliştirmeyi mümkün kılar. Her iki teknoloji de veri erişimi, yineleme ve sayfa düzeni için gelişmiş araçlar sunar.

Bu iki yaklaşımı karıştırmak iyi mi ya da kötü bir uygulama mı (istemci tarafı ve sunucu tarafı "sayfa kurulumu") ya da bu etkileşimli, kesintisiz HTML5 AJAX web uygulamalarının anlamlarına karşı mı?

PHP kullanarak JS oluşturma hakkında konuşmuyorum ( Bu soruya bakın ) - AngularJS kullanacak bir görünüm oluşturma hakkında konuşuyorum.

Ayrıca bir AngularJS sayfası doğrudan PHP değişkenleri almak yerine veri ( Bu soruya bakın ) almak için REST hizmetleri aracılığıyla sunucu ile iletişim (veya olabilir) biliyorum . Ama bana göre PHP'de tüm web uygulaması için ayrı ayrı "çerçeve" tasarlamak daha uygun görünüyor (örneğin ana menüyü oluşturmak veya yetkilendirme / oturumları işlemek vb.)


28
Harika bir soru. Keşke bu tür bir soru için tasarlanmış bir StackExchange konum olsaydı. PHP'ye alışkınım ve kendim çok fazla veri toplamak için bir cURL projem var ve kütüphane üzerinde bir JavaScript çerçevesinin projeme iyi bir uyum sağlayacağına inanıyorum. Benim sorunum senin gibi, ben orijinal proje (PHP) vb hangi parçaları damla ile birlikte iyi bir uygulama (yukarı ve aşağı) ne bilmek istiyorum, bu görüşmelerin tartışma talep edebilir inanıyorum, ama nasıl alabilirim en iyi konuşma olmadan iki dilin birleşmesi.
Shane

Ben PHP / Jquery geri dönüştürmek bazı AngularJS projeleri var. Çok çeşitli mobil cihazlar ve tarayıcılarla çalışmak için açısal olmakla ilgili sonsuz sorun yaşadım. Açısal SEO zor ve google onun arkadaşı değil. Ben üst sıralaması olan siteler açısal geçiş nedeniyle SERPS ortadan kayboldu gördüm ...
HappyCoder

Yanıtlar:


180

Bu PHP web geliştirme ile tam potansiyeli kullanmak sizi geri izin izin PHP geliştirme ile daha rahat olabilir gibi görünüyor.

Gerçekten PHP kısmi ve tüm görünümleri render olması mümkündür, ama ben bunu tavsiye etmem.

Bir web uygulaması yapmak için HTML ve javascript olanaklarından tam olarak yararlanmak için, yani daha çok bir uygulama gibi davranan ve istemci tarafında oluşturma işlemine büyük ölçüde dayanan bir web sayfası, istemcinin durumu ve sunumu yönetme sorumluluğunu sürdürmesine izin vermeyi düşünmelisiniz. Bunun bakımı daha kolay olacak ve daha kullanıcı dostu olacaktır.

Daha API merkezli bir yaklaşımla daha rahat düşünmenizi tavsiye ederim. PHP'nin önceden işlenmiş bir görünüm üretmesi ve yalnızca DOM manipülasyonu için açısal kullanması yerine, PHP arka ucunun RESTFully üzerinde işlem görmesi gereken verileri almasını ve Açısal sunmasını düşünmelisiniz.

Görünümü oluşturmak için PHP kullanma:

/user/account

if($loggedIn)
{
    echo "<p>Logged in as ".$user."</p>";
}
else
{
    echo "Please log in.";
}

Aynı sorun, JSON çıktısını şu şekilde API merkezli bir yaklaşımla nasıl çözebilir:

api/auth/

{
  authorized:true,
  user: {
      username: 'Joe', 
      securityToken: 'secret'
  }
}

ve Angular'da bir get yapabilir ve yanıt istemcisi tarafını işleyebilirsiniz.

$http.post("http://example.com/api/auth", {})
.success(function(data) {
    $scope.isLoggedIn = data.authorized;
});

Hem istemci tarafı hem de sunucu tarafını önermek istediğiniz şekilde, bakımın önemli olmadığı ve tek yazar olduğunuz daha küçük projeler için uygun olabilir, ancak bu, tutarlı ve doğru bir şekilde ayrılması olacağından API merkezli yollara daha fazla eğilirim. bakımı daha kolay olur.


2
Basit bir örnek. Ben sadece herkesin yaptığı süper kandırılan bir temel girişten daha fazlasını arıyordum. <td> {{name}} </td> ve ardından 'app.run (function ($ rootScope) {$ rootScope.name = "Ari Lerner";}); ' Ben kendimi görmek / denemek veya PHP 'DİNAMİK' Açısal Sayfalar yapmak için çalışıyoruz ters bulmaya çalışıyorum. Ve görmüyorum. İstemcinin her bir öğeyi yüklemek ve şablonları doldurmak / değiştirmek için beklemesini sağlamak. Sadece henüz böyle bir javascript duvarı üreten PHP fikrine meraklı değil ve kolayca görüntülenebilir
Shawn Rebelo

2
@ShawnRebelo Ne demek istediğini biraz açıklayabilir misin a wall of javascript? Yıllarca PHP oluşturma sonra Angular / JS API dünyasında yeniyim, bu yüzden bu tartışma benim için ilginç.
Dan Nissenbaum

"PHP önceden oluşturulmuş bir görünüm çıktı yerine, sadece DOM manipülasyon için açısal kullanın ..." - Size yeni eski bir kavram tanıtmama izin verin .
Muhalif Rage

Tam olarak böyle olmalı, arka uçtan dinlendirici bir API herhangi bir dil olabilir ve arka uçtan bağımsız olarak ön uç için açısal bir uygulama çalışabilir.
Amir Savand

3
Anlayamadığım şey, neden yer tutucularla genel bir sayfa yüklemem ve daha sonra ilk sayfa yüklemesinde kullanıcı / kimlik doğrulama verileri gibi zaten sahip olduğum bir şeyi almak için bir veya daha fazla zaman uyumsuz istekle bir kısmını yüklemem gerektiğidir?
Tobia
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.