MVC çerçeve içine alt etki alanlarını dahil nasıl

2 Cevap php

Zamanla benim kendi çerçevesi geliştirdi ve harika çalışıyor - bu, hafif bu hızlı ve iyi bir yük işleyebilir kanıtlanmıştır.

Şimdi her kullanıcı kendi ürün satışa sunulacak onun alt etki alanı olacak bir online mağaza olarak tarif edilebilir proje üzerinde çalışıyorum.

My framework works by splitting request url by / and determening what is the controller, actions params.. etc..

ve gayet güzel çalışıyor, ancak subdomainli ne yapmalı?

Benim almayabiliyorlar nesne değiştirilmiş, bu yüzden yazarken Diyelim ettik:

http://kodi.shop.local/

(I SeverAlias ​​*. Shop.local eklenmiştir)

Bu benim isteği nesne gibi bakmak nasıl:

DPLS_Request Object
(
    [_request] => Array
        (
            [0] => 
            [1] => 
            [action] => defaultAction
            [controller] => home
        )

    [_params] => Array
        (
        )

    [_rurl:private] => kodi.shop.local
    [_segment] => kodi
    [get_params] => Array
        (
        )

)

so _segment is the subdomain, and later i can use it in code to validate it vs username and other stuff but i'm having conceptual problems even before that. my problem is that my framework expect some controller and actions to be passed, and because all he gets at the end of URL is / he assumes that it shoud display index page :(

yani ne yapması gerektiğini ... nasıl bütün mvc denetleyicileri / eylemler hikaye alt etki alanlarını dahil etmek?

bir hızlı ve kirli sollution benim isteği sınıfın bir kısmını değiştirmek için:

if($this->_request['controller']==''){ 
    $this->_request['controller'] = DEFAULT_CONTROLLER; 
}
if($this->_request['action']==''){
    $this->_request['action'] = DEFAULT_ACTION; 
}

ve başka bu sarmak için if _segment mevcut olup olmadığını test etmek için, ve eğer o 'mağaza' Diyelim i gibi yapılandırma dosyasında tanımlamak, hangi kontrolör DEFAULT _SHOP _controller atamak

so the request above will be analog to typing http://shop.local/store/ (it will run 'store' controller and default action)

what would you do in this case? is there any "best practice" when dealing with subdomains and controllers and actions?

2 Cevap

Bana, sen açıklayan yaklaşım ekleyerek özelliklerini uygulamak için sonraki mantıklı adım, gibi geliyor. Yeni özellikler bazı eklenen karmaşıklığını getirecek ama Request nesnesi / Router mantığı sarmalamanın iyi bir iş yapmalıyım "bir kesimi ve bir kontrolör temin edildiğinde bir bölüm? Sağlanmaktadır ne kontrolörü I çağırmak mı?" vs Ben bunun için gitmek demek.

Ben şahsen, ne bir durumda demektir Subdomain'ler mutlaka başka bir durumda aynı şey demek değildir, çünkü, alt etki alanları ile ilgili kendi çerçevesi içine 'özel' koşullar her türlü ekleyerek başlamak olmaz. (Bunun yanı sıra, daha fazla çerçeve varsayar, crappier o alır)

Örneğin, bazı insanlar (... fransızca için ingilizce sürümü, fr.site.com için en.site.com) yerel ayarı tanımlamak için alt etki alanlarını kullanır, ancak bu kurmak ile, bu ne olursa olsun dil 'aynı' denetleyicileri kullanmak istiyorsunuz Site çevrilir.

Just do a simple rewrite rule like: rewrite *.store.site.com into *.site.com/store/