Kod ateşleyici uygulamalarında paylaşılan modeli patlak

1 Cevap php

Ben kod ateşleyici için oldukça yeni ve php için (bir java arka plandan geliyor).

I want to create a model that's shared by three apps that may or may not run on the same machine. So I want to keep the model classes portable to be shared by all three and easily handled by SCM systems.

So my thought was to do the following: If I have already broken the applications out into separate directories to share CI: /var/www/app1 /var/www/app1/models /var/www/app1/controllers ... /var/www/app2 /var/www/app3 /var/www/system

Sonra da bu modeli koymak için paylaşılan bir klasör oluşturun:

/ Var / www / paylaşılan / modelleri

Now I could either hack CI to look for the models there, or I could use symlinks, ie /var/www/app1/models -> ../shared/models /var/www/app2/models -> ../shared/models /var/www/app3/models -> ../shared/models

Ben PHP iç işleyişini yeniyim, bu yüzden bu var olacak sadece barf çünkü model dosyaları 3 kez (belki 4) kadar yüklü olabilir, çünkü bir performans isabet oluşturmak, ya da daha kötüsü olacak asgari düşünüyorum dosyaların 4 kopyaları aynı şeyi adlandırılmış.

Bu kötü bir fikir mi? Bunu yapmak için daha iyi bir yolu var mı?

1 Cevap

Yerine Kohana kullanarak düşündünüz mü? Kohana başlangıçta CI kapalı bir çatal ama kendi mükemmel bir çerçeve haline gelmiştir. Eğer herhangi bir diğer web çerçeveler bulamıyorum cascading filesystem özellik vb modelleri / views / kontrolörleri / kütüphaneleri / yardımcıları paylaşmak için birden fazla uygulama olması gerçekten yararlı

İşte Kohana 2.x bunu nasıl olduğunu:

  • Http kök dışında bir konuma sistemi ve modülleri klasörleri karşıya, örneğin /apps/kohana/system ve /apps/kohana/modules

  • Yere yakın uygulama klasörünü koyun, örneğin /apps/kohana/applications/app1

  • 3 klasörlere işaret etmek /public_html/index.php kurmak.

$kohana_application = '../apps/kohana/applications/app1';
$kohana_modules = '../apps/kohana/modules';
$kohana_system = '../apps/kohana/system';
  • Şimdi sadece /apps/kohana/system/models/ içine uygulamalar arasında paylaşılan istediğiniz modeli atmak. Yoksa, sadece bazı uygulamalar kısıtlamak /apps/kohana/modules/mymodule1, örneğin bir modül oluşturun ve modülü kullanmak için bu uygulamaları yapılandırmak istiyorsanız.