DoaminManager.php adında bi dosya ekledim components in içine
domain manager.php
<?php
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
echo "çalışıyor";
class DomainManager
{
public static function route()
{
//check if domain is valid/active and set it to Yii::app()->params['store_domain'] + some other things like preloaded store AR
//add url rules with domain names
$urls = array(
// your main site domain from config
'http://tr.uludag/<controller:\w+>/<id:\d+>'=>'tr/<controller>/view',
//'http://' . Yii::app()->params['tr.uludag'] . '/<controller:\w+>/<id:\d+>'=>'tr/<controller>/view',
// store domain/subdomain
'http://en.uludag/<controller:\w+>/<id:\d+>'=>'en/<controller>/view',
// all other rules
);
Yii::app()->getUrlManager()->addRules($urls);
}
}
?>
daha sonra main config in içinde çağırdım.
config/main
return array(
'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..',
'name'=>'My Web Application',
'language'=>'tr',
'onBeginRequest' => array('DomainManager', 'route'), /* Burada Çağırdım */
// preloading 'log' component
'preload'=>array('log'),
birden fazla domainle çalışabilmeniz için size farklı bir önerim olacak,
1- sub-domainleri tanımlayıp hepsini tek bir yere yönlendirin,
2- yönlendirdiğiniz yerin içerisinde Yii Frameworku ve kodlarınızı yerleştirin,
3- tanımladığınız her bir sub-domaini projenizin veritabanındaki bir tabloya ekleyin (böylelikle her bir sub-domain için birer ID oluşturulmuş olur),
4- gelen isteğe göre hangi sub domainle ilgili işlem yapılmak isteniyorsa o ID ye göre işlemlerinizi yapın
yüzlerce sub-domainin yönetimini bu şekilde yapabiliyoruz.
Bunların artıları eksileri tartışılabilir,
Örneğin bölümlerinize ait tek bir CMS ve yüzlerce temayı tek bir projeyle kolayca yönetebilirsiniz,
Böylelikle hem versiyon takibinizi kolay takip edebilir, hemde bir sub domain için yapılan işlevleri modül olarak ekleyip diğer sub-domainlerin de kullanımına sunabilirsiniz, bu arada extensionları da tek bir yerde toplamış olursunuz. vs. vs.
ftp bilgilerinizi kimseyle paylaşmamanız gerekir (eksi gibi görünsede aslında olması gereken de budur)
Beliki şunu yapabilirsin. CApplication abstract bir class olduğundan bunu extend edip yeni bir apliaction class oluşturabilirsin tabi burada preinit overide ederek
hocam database de tablo açıp url lere id vermek kolay da bunu yii ye nasıl yaptırcam onu biraz açarmısın. (gelen URL ye göre yii hangi işi yapcak ona yii de nasıl karar verdirtcem onu bilmiyorum ki zaten)
mesela
http://tr.uludag dediğimde adres çubuguna yii url ye göre nasıl işlem yapacak.
zaten yazdığım class da da şu url ye göre şunu yap dedirtemedim ki. senin söylediğini yapabilcek seviyede olsam yii de bu şekilde de çözcek bi kaç şey aklıma gelir.
URL yi explode edip yönlendirme yapınca SİTE/İNDEX in içinde oluyo ama o da çok amatör bi çözüm oldu.
Daha detaylı bu yazdığım örnek üzerinden cavap verebilir misin ?
ek olarak farklı kurallar yazmak için ayrı bi dosya üzerinden gittim. main / config de de yapılabilr bunlar ama ektra bişe tanımlamak gerekirse ileride sorun olmasın diye.
benzer durumda olan arkadaşlara kaynak olması açısından bu haliyle gayet güzel çalışıyo.
Domain manager dedigin dosya zate Yii de Url Manager adinda var orada Yii nin thema ve language ozelliklerini kullansaydiniz daha guzel bir cozum olurdu. Bu sekilde biz ayni kodla 100 un uzerinde site yonetiyoruz.
Eger framework kullaniyorsan ek dosyalar yazmak yerine framawork ozelliklerini kullanmanin daha guzel bir cozum olacagini yazdim. Tabi karar sizin saygilar.
Tema kullanmadım böyle bi çözüm aklıma geldi. eğer vaktin varsa tema ile ilgili detaylı bi başlık açıp bi örneği paylaşırsan benim gibi yeni başlayanlara da kaynak olur.