2013-10-28 2 views
0

Мне нужно сделать приложение в CodeIgniter (CI), которое будет иметь одинаковые файлы ядра для нескольких клиентов. Каждый клиент запускает приложение в своей собственной папке (используя субдомен), где находится его файл index.php. В этом index.php включен config для этой базы данных пользователей (каждый пользователь имеет свою собственную базу данных). Я попытался обернуть все поля и приложение из CI в один дополнительный класс, а затем создать экземпляр этого класса в каждой папке каждого поддомена. Но это не сработало.Запуск нескольких клиентов из тех же файлов CodeIgniter

Затем я попытался вызвать основной index.php из папки CI в каждом клиентском подкаталоге. Вот изображение структуры файла: http://img208.imageshack.us/img208/8596/shx8.png

index.php в каждой папке подобласти было так:

include "../../../application/engine.php"; 
$app = new Engine(); 
$app->start(); 

Затем, когда я бегу, что клиент index.php я получаю это:

Your system folder path does not appear to be set correctly. Please open the 
following file and correct this: index.php 

И я сделал пути к папкам изменения CI index.php к:

$system_path = '../../../application/engine/system'; 
$application_folder = '../../../application/engine/application'; 

Тогда я получаю следующее сообщение об ошибке:

Fatal error: Call to a member function item() on a non-object in C:\wamp\www\projectX\application\engine\system\core\Utf8.php on line 47 

Как вы видите, я получаю сообщение об ошибке в системе \ основной файл, и я уверен, что я не должен изменить его.

Utf8.php линия 47 является:

AND $CFG->item('charset') == 'UTF-8' 

И что $ CFG определяется как:

global $CFG; 

Даже если я комментирую эту линию, я получаю следующую ошибку в другом файле.

Fatal error: Call to a member function elapsed_time() on a non-object in C:\wamp\www\projectX\application\engine\system\core\Output.php on line 360 

Output.php линия 360 является:

$elapsed = $BM->elapsed_time('total_execution_time_start', 'total_execution_time_end'); 

Есть ли способ исправить эту проблему и закончить его так, или я должен иметь другую организацию файлов и папок? И как это сделать?

+0

Легко запускать несколько приложений с папкой файловой системы один и многократной папкой для приложения. Посетите сайт http://ellislab.com/codeigniter/user-guide/general/managing_apps.html. Также я использую тот же принцип на сайте www.thephpcode.com, чтобы просмотреть созданный веб-сайт для пользователей. – Nishanthan

+0

Я знаю это, но каждая папка приложения одинакова для каждого клиента. Итак, в чем смысл иметь 10-15 папок с одинаковыми файлами? – lolrs2013

ответ

1

Вы можете использовать его, как здесь сказано: http://ellislab.com/codeigniter/user-guide/general/managing_apps.html

Там нет необходимости для упаковки в классе.

Оставьте в корневой папке и приложении папку, все файлы из папки приложения, пакет в приложении/foo /.

Затем создайте папку в корневой папке/городе/клиенте.

Скопируйте index.php из папки CI по умолчанию и поместите ее внутри пользователей/города/клиента.

Установите пути к папкам с системой и приложениями, и вы хорошо пойдете.

Вы можете установить каждый клиент использовать приложение/Foo (так что вы получите несколько клиентов использовать одну такие же папку приложения)

+0

Thx. Попробуем это и сообщите результаты. – lolrs2013

+1

Это работает. спасибо! – lolrs2013

Смежные вопросы