Codeigniter и большая картина - PullRequest
0 голосов
/ 30 января 2011

Недавно начали использовать Codeigniter и прошли большинство уроков. Я хотел бы преобразовать небольшой сайт PHP / MySQL, чтобы он полностью работал на CI. Коду четыре года, он написан на PHP4 и является беспорядком. Я не против переписать все это.

У меня проблема в том, чтобы найти «правильное» решение этой проблемы. Я хотел бы сохранить код как можно более ООП / PHP5, а также как можно более чистым. Веб-сайт состоит из пяти шести основных компонентов, расположенных в DIV. Два стека для формирования центрального столбца, один левый, один правый, один заголовок / меню и один динамически заполненный Fancybox. Текущий index.php просто вызывает header.php, затем переходит на <div class="class1"><include ('box1.php')</div> и т. Д.

В примерах кода, которые я видел, используется $this->load->view('header') и нижний колонтитул в каждом файле шаблона для настройки структуры. Это кажется избыточным и грязным способом обработки заголовка, загрузки файла CSS и т. Д.

Как правильно загрузить эти контроллеры и связанные представления? Кодовая версия «обертки», если хотите.

1 Ответ

2 голосов
/ 30 января 2011

получите библиотеку шаблонов, лично я предпочитаю работать с Колином Уильямсом или Филом Осетровым .

по сути, вы делаете что-то вроде этого: (при условии"layout" - это ваш HTML-шаблон)

layout.php (просмотр)

<html>
<head>
  <title><?=$title;?></title>
  <?=$metaData;?>
</head>
<body>
  <div id="left">
    <?=$leftContent;?>
  </div>
  <div id="main">
    <?=$main;?>
  </div>
</body>
</html>

, затем в вашем контроллере:

site.php (контроллер)

class Site extends Controller {

  function __construct()
  {
      $this->load->library('template');
      $this->template->set_layout('layout');
  }

  function index()
  {
      $this->template->write_region('title', 'This is my title');
      $data['somedata'] = 'foo'
      $this->template->write_region('main', 'My content', $data);
      $this->template->render();
  }
}

Это выведет ваши данные в ваш шаблон, без необходимости каждый раз загружать представления и т. д.

Мой синтаксис немного отключен,поэтому проверьте правильность кода в документации для конкретных библиотек, но библиотеки шаблонов - это путь imo.

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