CodeIgniter начало

CodeIgniter начало

Как уже упоминалось в статье Общие вопросы проектирования CMS, в качестве фреймворка для реализации движка  CMS мы будем использовать CodeIgniter. О его приемуществах и недостатках можно почитать на бескрайних просторах интернета. Мне же лично он нравится прежде всего своей простотой, гибкостью использования, хорошей документированностью, быстрой скоростью работы, элементарной установкой на сервер и т.д. В настоящей статье рассматривается вопрос установки фреймворка для работы двух приложений на одном ядре, а также некоторые подготовительные действия для дальнейшего разворачивания системы управления контентом.

Основные вводные.

  • Используем шаблон проектирования Модель-Отображение-Контроллер.
  • Модель будет представлять из себя класс, с набором методов, которые содержат запросы для работы с базой данных.
  • Отображение содержит HTML-код, по возможности с минимальным количеством PHP. Никаких SMARTY, а также других шаблонизаторов не используем.
  • Контроллер - координатор приложения, выступаещий в роли посредника между Моделью, Отображением, и  другими ресурсами, необходимыми для того чтобы по HTTP запросу сформировать веб-страницу.

Установка CodeIgniter.

Для установки CodeIgniter на сервер и создания необходимой нам конфигурации фреймворка, нам необходимо проделать следующие предварительные манипуляции:

  • Распаковать архив с дистрибутивом, последнюю версию можно скачать здесь: http://codeigniter.com/downloads/.
  • Загрузить папки и файлы CodeIgniter на сервер. Файл index.php должен оказаться в корне.
  • Поскольку у нас предполагается в наличии административная часть и собственно сам сайт, и эти две части связаны между собой только посредством базы данных, то наряду с файлом index.php в корне необходимо создать файл admin.php, который будет точкой входа в админку (его содержимое - аналогично содержимому файла index.php.
  • В директории "application" необходимо создать две поддиректории: "site", где будут располагаться файлы и папки для работы сайта и "admin", для работы админки. Соответственно в эти директории необходимо скопировать все папки и файлы из "application".  Теперь, файл index.php будет работать с папкой "application/site", а файл admin.php с папкой "application/admin". Единственное, надо не забыть это указать в файле admin.php и в соответствующей строке написать: $application_folder = "application/admin"; то же самое необходимо сделать в файле index.php: $application_folder = "application/site"; .
  • Дальше будем работать с админкой, поэтому, необходимо открыть файл application/admin/config/config.php и установить наш корневой URL.
  • Для установки настроек базы данных - открываем файл application/admin/config/database.php и производим соответствующие манипуляции.
  • В файле application/admin/config/routes.php прописываем контроллер по умолчанию: $route['default_controller'] = "main";.

Проверяем работоспособность.

  • Для проверки работоспособности нашей системы создадим первый файл контроллера в папке admin - main.php, например следующего содержания с выводом в браузер традиционного 'Hello World!':
class Main extends Controller {
  function index() {
    echo 'Hello World!';
  }
}
  • Теперь зайдем на наш сайт, используя такой адрес:
www.my-site.ru/admin.php
  • В результате должны получить:
Hello World!

Установка библиотек и расширений.

В папке application/admin/libraries/ создадим следующие файлы:

  1. MY_Controller.php - расширение главного контроллера.
  2. MY_Model.php - расширение главной модели.
  3. Session.php - библиотека Native Session, которую можно скачать здесь: http://cocodeigniter.com/wiki/Native_session/
  4. User.php - библиотека работы с правами пользователей.

Содержимое файлов (кроме файла Session.php) будет раскрыто в следующих постах, здесь осветим только их основное назначение:

  • MY_Controller.php - служит для инициализации основных переменных, также содержит некотроые часто используемые методы в работе системы управления контентом. Да, и каждый контроллер админки будет теперь являться дочерним по отношению к MY_Controller (статья Расширяем класс гланого контроллера).
  • MY_Model.php - в расширении главной модели будут содержаться наиболее часто используемые методы для работы с базой данных.
  • User.php - предназначен для проверки доступа пользователя к админке и разграничению прав доступа к основным операциям с содержимым.

Структура каталогов:

  • В папке application/admin/controllers создадим папку page, где будут сожержаться контроллеры, отвечающие за работу с данными админки - новости, события, настройки и т.д. Идея заключается в том, чтобы при клике на ссылке основного меню подключался соответствующий контроллер.
  • В папке application/admin/models также создадим папку page, где будут содержаться модели.
  • И в папке application/admin/views создаем папки: page - где будут лежать подпапки с представлениями для соответствующих страниц; block - с представлениями повторяющихся блоков; templates - где будут содержаться шаблоны оформления нашей системы управления (их может быть несколько, в соответствии с количеством тем оформления).

Ну, будем считать, что в основном проведена подготовка к использованию CodeIgniter для решения наших задач. В ближайших статьях будут рассмотрены вопросы по загрузке страниц админки с помощью AJAX и сделана первая страница для формирования основного меню админки.

Похожие пубикации

Облако тегов на CodeIgniter

Облако тегов на CodeIgniter

Облако тегов, Облако меток, или Облако ключевых слов (англ. tag cloud, wordle) — визуальное представление списка ярлыков (или категорий). Частота упоминаний, поисков, ссылок в интернете с определённого сайта неких слов, терминов, имён, отображается в специальной области в виде изображения этих слов в формате гиперссылок. Размер изображения тем больше, чем чаще использовался данный тег (слово, термин или имя).
Верстаем с помощью технологии XSLT

Верстаем с помощью технологии XSLT

В рубрике CMS - верстка, на момент написания статьи "Верстка элементов центрального контента" был сделан каркас будущей CMS и сверстана центральная часть нашей системы. Теперь сделаем тоже самое, но уже с использованием технологии XML / XSLT.
Верстка элементов центрального контента

Верстка элементов центрального контента

Центральная часть CMS будет содержать в основном табличные данные. Следуя принципам семантической верстки, необходимо сверстать просто таблицу, а потом ее приукрасить стилями и JavaScript. В верхней части таблицы необходимо предусмотреть место для общих заголовков, элементов управления, таких как постраничная навигация и форма поиска, и заголовков столбцов таблицы. Внизу, под таблицей будут кнопки управления для добавления, сохранения и удаления содержимого таблицы.
Комментарии (5):
Алексей | 27.02.2010 01:59
0
Подскажите, как избавиться от этой ошибки: Message: Cannot modify header information - headers already sent by (output started at \system\application\controllers\main.php:9) Filename: codeigniter/Common.php Line Number: 360 В файле main.php содержится пример из статьи "Делаем основное меню".

Алексей | 27.02.2010 03:31
0
Упс, извините :) Разобрался. Код примера надо было поместить в папке views.

Levik | 01.08.2010 20:48
0
А можно пару практических примеров, для чего следует расширять класс Controller.

Алексей | 06.08.2010 03:46
0
В расширении класса Controller можно устанавливать свойства, необходимые для работы всего приложения, например: Установка свойства $this->us (если пользователь авторизован, то это свойство устанавливается). private function set_user() { $this->load->library('user'); $this->authorised = $this->user->isAuthorised(); if($this->authorised) { $this->us = $this->user->getUser(); } } А также: установка языка сайта, шаблона, модулей, профилирования, динамическая загрузка модели и т.д. Таким образом отпадает необходимость прописывать это все в каждом контроллере.

Сергей | 16.01.2011 11:29
0
Единственный сайт где нашел установка фреймворка.Но не получилось.Единственное отличие у меня локальный сервер php5.mysql5,apache2.4.Поэтому url получился http://localhost/example.com/admin.php. На ответ не надеюсь.

Добавить комментарий:



Back to Top