it-swarm-tr.com

Joomla! Joomla! İle CMS Bileşeni Çerçeve?

Joomla'nın üstüne CMS bileşenleri oluşturmayı merak ediyorum! Temel olarak bileşenlerimin bağımsız uygulamalar olarak çalışmasını istiyorum.

Bu saldırı olmadan yapılabilir mi? Değilse, buna yaklaşmanın tercih edilen bir yolu var mı?

7
Nestor Ledon

Bu soruyu kesin olarak cevaplamak imkansızdır, ancak kod taşıma konusunda sizi uyarabilecek en yaygın parçalardan bazılarını bıçaklamaya değer olduğunu düşünüyorum (ve oldukça az olacak).

Özelliklere girmeden önce, bakış açınıza bağlı olarak bunların hepsi bir kesmek olarak kabul edilebilir. CMS ve Framework, bir bileşenin bakış açısından çok farklıdır. CMS, kullanılacak tam yapıyı tanımlar. Çerçeve, uygulamanızın çalışma ve etkileşim şeklini özelleştirmenize olanak tanıyacak şekilde tasarlanmıştır. Çerçeve kesinlikle CMS'den bileşenleri çalıştırmak üzere tasarlanabilir, ancak belirli bir noktada bu sadece anlamsız görünen CMS'yi yeniden yaratıyorsunuz.

İlk olarak, süper kısa ve basit cevap: bileşeninizin CMS ile etkileşime girdiği her yolun yeniden yapılması gerekir, bir yönlendirici eklemeniz gerekir ve muhtemelen ad alanları veya yeni bir otomatik yükleyici eklemeniz gerekir.

Bunun ikinci yarısı ile başlayalım. Oranlar, composer Joomla Framework ile kullanmanızdır, bu nedenle bestecilerin sınıfları istediğiniz gibi yüklemesini sağlayan otomatik yükleyiciye güvenebilirsiniz.Bu, ad alanları içinde çalışacak şekilde tasarlanmıştır ve buna göre yük, bileşeniniz otomatik olarak yüklenmeyecektir. (Bunu tahmin ediyorum, bu yüzden daha iyi bir yol varsa, lütfen yorum yapın.) Bu, MVC sınıfları için kendi otomatik yükleyicinizi eklemeniz veya bunları bir ad alanında yeniden yazmanız gerektiği anlamına gelir. .

İkinci olarak, uygulamaya kendi yönlendirici dosyanızı eklemeniz gerekir. Artık menü yöneticiniz olmadığından, Router sınıfını kullanarak bunu yeniden oluşturmanız gerekir. Bu, url'leri bir denetleyiciye eşlemek için oldukça basittir, ancak bunun uygulamada olduğundan emin olmanız gerekir.

Son olarak, bileşende kullandığınız herhangi bir CMS özelliğini desteklemeniz gerekir. Akla gelen en büyük şey JFactory. Oturum, veritabanı veya belgeyi almak için o sınıfı çağıran komut dosyaları çalışmaz. (Bu sınıfı üzerinde bağlantı kurmaz ve kancaları uygulamanıza uyacak şekilde yeniden tanımlamazsanız.

Bir yere JComponentHelper diyor musunuz? Bunun için destek eklemeniz gerekir. Com_content veya com_users gibi bir çekirdek uzantı için başka bir yardımcıyı mı arıyorsunuz? Bu artık işe yaramayacak.

Bazı basit uzantıları kolayca çerçeve üzerinde çalıştırabilirsiniz. CMS'ye birçok şekilde bağlananlar, temel olarak tüm parçaları yapmak için CMS'nin yeniden oluşturulmasını gerektirebilir. Bu kısım gerçekten uzantıya bağlıdır.


Kapanışta, bu aşamada, büyük olasılıkla CMS'den kodun bir tür saldırı veya kopyala/yapıştırılmasını ihtiyacınız olan çerçeveye dahil edecektir.

CMS'nin bunu daha kolay hale getirecek çerçevenin yapısı (yani besteci kullanır, ad alanları kullanır, vb.) İle daha uyumlu hale geleceğine inanıyorum. Şu anda, bu oldukça zor bir görev.

5
David Fritsch