CodeIgniter Web App + публичный сайт - PullRequest
1 голос
/ 03 мая 2011

Я работаю над проектом, в котором находятся следующие разработки:

  • общедоступный информационный веб-сайт с защищенными областями ресурсов
  • веб-приложение

Оба будут находиться на одном сервере, в одном домене.

Веб-приложение защищено входом в систему.Если участник входит в веб-приложение, он также может получить доступ к защищенным областям ресурсов на общедоступном сайте и наоборот.

Q. Обе они разрабатываются с использованием CodeIgniter.Поскольку существует необходимость в этом общем входе в систему, целесообразно ли хранить оба проекта как один проект / одну большую структуру сайта?или 2 отдельных проекта / структуры CI с возможностью совместного использования логина.

Один разработчик занимается веб-приложением, а другой (я) занимается общедоступным сайтом - поэтому мне кажется, что было бы легче сохранитьони представляют собой отдельные структуры с некоторым переходом для управления входом / сеансом.

Ответы [ 2 ]

1 голос
/ 03 мая 2011

Возможно, вы захотите рассмотреть возможность использования модульной системы и совместного использования ресурсов. Codeigniter не имеет встроенной модульной поддержки, но есть несколько пакетов, которые позволят это сделать. Я годами пользуюсь пакетом Modular Extensions , и не могу представить себе использование CI без него.

https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/wiki/Home

Возможно, вы уже знакомы с концепцией: каждый модуль - это собственное мини-приложение. Он имеет ту же структуру, что и в папке приложения Codeigniter. Вы даже можете иметь несколько каталогов модулей, чтобы еще больше отделить структуру приложения.

Любые общие ресурсы (библиотеки, помощники и т. Д.) Могут оставаться в каталоге приложения по умолчанию, но при необходимости вы все равно можете загружать их из других модулей. Даже если бы вы работали в одиночку, я все равно порекомендовал бы это, потому что это действительно поддерживает порядок.

Используя модули, вы можете работать с приложением независимо друг от друга, не наступая друг другу на ноги и даже не видя никаких файлов, с которыми вы не работаете, и в то же время имея доступ к одним и тем же общим ресурсам (например, вашей модели входа / авторизации) сохраняя все в порядке и без необходимости создавать два отдельных приложения.

0 голосов
/ 03 мая 2011

Я не вижу причин, по которым у вас не может быть одного общего CI-приложения, а просто разделяйте частную и публичную части внутри приложения. Это может быть легко достигнуто через структуру папок в областях Controller, Model и View. И затем, при управлении пользователями, у вас может быть поле разрешений или настройка таблицы, чтобы дать пользователю права и привилегии.

Так, например, вы можете представить, что ваши подпапки в разделе «Контроллер», «Модель» или «Представление»: Public, Private и Admin.

Тогда ваша таблица пользователей будет иметь поле, называемое «разрешение», и вы можете иметь различные уровни (то есть 1, 2 или 3).

Тогда в вашем контроллере для администратора (или чего-то еще) вы могли бы иметь:

function index()
{
   if (!this->auth->is_logged_in()) {
       redirect('/auth/login');
      }
   else {

   if (!this->auth->is_level(1)){
       redirect('/user/notallowed);
     }
}

Вы поняли.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...