CodeIgniter'daki benim web uygulaması için mobil bir sürümünü oluşturma

2 Cevap php

Ben yeni bir web uygulaması geliştirmek için CodeIgniter'ı kullanıyorum, ve ben kullanıcıların kendi telefonlarında onu ziyaret ettiğinizde yönlendirme olsun bir mobil sürümünü oluşturmak istiyorum.

App mobil sürümü, farklı bir akışı var, bu yüzden kod CSS / HTML dosyaları takas mobil versiyonu beri benim için bir seçenek değildir ve aynı Modelleri paylaşırken web sürümü, onların Kontrolörleri ve Görünümler farklı şeyler idare edecek gerekir .

Her neyse verimli bu nasıl yaparsın?

Senin yardım çok takdir. :)

2 Cevap

Eğer gerçekten 2 bağımsız uygulamalar gerekiyorsa, ayarlayabileceğiniz bu juste bir veya iki CodeIgniter çekirdek değişiklik, sen PHP4 veya 5 kullanıyorsanız bağlı olan.

We've done it following this CI's wiki page and it works great, we share models, libraries, configuration. Basically you got a project organization like this :

/application/
   /common/<similar to application directory, but used for shared libs/helper/models/configs files>
   /frontend/<similar to application directory>
   /backend/<similar to application directory>
/system/

Aynı lib / config ortak sınıflar veya app-özel) için varsa yükleyiciler kılarak Eğer yükleme önceliği uygulayabilirsiniz. Ayrıca tüm ortak kodu (kontrolörleri, özel yönlendirme sınıfı, vb) hareket ve uygulamalar sadece uygulama özel ve aşırı yük tutabilirsiniz.

Sonunda size (index.php dosyasına çoğunlukla aynı) iki Ön Kontrolörleri her uygulama için bir tane var, ve vb url yeniden yazma, belirli bir alt alan, ziyaretçileri filtre özgürsünüz

Eğer sunucularında çalışan PHP4 hedef iseniz, ben (bir yükleme sorunu var değişiklik olmadan) işe almak için çekirdek sınıfları değiştirmek görmek için this thread CodeIgniter forumlarda açıldı

Başka bir alternatif, ama ben henüz kullanmadım, kullanan HMVC organisation edilir

Çözelti (a):

  • Kullanıcının bir cep telefonu veya bir masaüstü istemcisi kullanır eğer küresel bir denetleyicisi kontrol
  • Istemci sürümü (controller_default.php / controller_mobile.php) dayalı yük kontrolörleri
  • Iki kez tüm istemci özgü şeyler yapmak
  • İzlenme farklı klasörlerde saklanabilir

Not: uygulama zamanla büyür, eğer (a) dağınık olur.

Çözelti (b):

  • Kullanılan müşteri dayalı farklı uygulama klasörleri yüklemek için index.php değiştirin
  • Paylaşılan bir klasörde modelleri / yapılandırmaları / kütüphanelerini Mağaza

CI çerçevenin yukarıda istenen (geniş?) Değişiklik Herhangi. Bir sonraki seferde güncellemek için muktedir mevcut sınıfları (MY_Controller vb) üzerine yazarak mümkün olduğunca yapmaya çalışın.