К основному контенту

HMVC в CodeIgniter

Что такое HMVC

Проблемы MVC привели к разработке HMVC. Это эволюция структуры MVC. Представлена еще в 2000 году.

image

Инструкция применения модели HMVC

статья на английском

Коротко установка и использование

1) скачиваем библиотеку HMVC,
2) ложим в папку library
3) перемещаем контроллеры, отображения и модели в новую папку modules, структура показана на картинке.
4) вызов методов из контроллера: modules::run('login/is_logged_in');  
5) вывод: echo modules::run('login/cp');?>  

каждая триада действует независимо друг от друга, и может обращаться к другим триадам через контроллер.

Почему надо использовать HMVC?

ее преимущества:

  • модульность
  • организация каталогов
  • повторное использование
  • расширяемость

настройка HMVC в Codeigniter

В уроках по подключению библиотек можно найти дополнительную информацию, тем не менее начнем без вступления

1) Установка codeigniter

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

выносим папку application в корень, так чтобы было две папки system и application. Это обычная практика, целью которой является отделение приложения от системного каркаса.

в файле application/config/config.php

$config['base_url'] = http://example.com/;

Скачивание и установка расширения HMVC

wiki CI

эти файлы нужно положить в папку application/library

далее создаем файловую структуру

примерно так:

application/modules/welcome/controllers

тоесть перемещаем контроллер application/controllers/welcome.php в подпапки modules 

application/modules/welcome/controllers/welcome.php – здесь скрипт контроллера
application/modules/welcome/views/ – здесь будут лежать отображения

в принципе уже должно все работать.

Пример сайта с авторизацией

есть

два контроллера
login, site
есть одна модель membership_model
отображения для ввода логина и вывода сообщений login_form, signup_form, signup_successful
отображения для вывода области доступной авторизованным пользователям logged_in_area (через контроллер и метод site/members_area)
в контроллере site сначала проверяется сессия, и вызывается die если не в сессии.
проверку сессии я вынес в модель, но это должна быть общая модель.
ниже я опишу куда вынести функцию is_logged_in() 

переносим все в описанной выше структуру:

контроллер LOGIN

  1. hmvcExample/application/modules/login/controllers/login.php   
  2. hmvcExample/application/modules/login/models/membership_model.php   
  3. hmvcExample/application/modules/login/views/login_form.php   
  4. hmvcExample/application/modules/login/views/signup_form.php   
  5. hmvcExample/application/modules/login/views/signup_successful.php 

контроллер SITE:

  1. hmvcExample/application/modules/site/controllers/site.php   
  2. hmvcExample/application/modules/site/views/logged_in_area.php 

Шаблоны будут при этом лежать в корневой папке views

  1. /css/*  
  2. /img/*  
  3. /application/views/includes/*

шаблоны лежат в папке includes
выше лежат файлы которые вставляются в шаблон.

image

например logged_in_area не содержит заголовка. это только тело которое будет вставлено между тегами <body>

вывод такой:

$data[‘content’]=’logged_in_arrea’;

$this->load->view(‘mycontroller/includes/template’,$data);

mycontroller – папка в которой все отображения для одного контроллера

includes – содержит несколько файлов для составления шаблона которые загружаются в один файл template.php

 

создаем базу

  1. CREATE TABLE  `ci_series`.`membership` (  
  2. `id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,  

Комментарии

Популярные сообщения из этого блога

Русская кодировка ASCII, ANSI и UTF-8, windows-1251 (CR, LF, CR LF)

Что нужно знать: Encoding – это кодировка для вывода данных (UTF-8, windows-1251) Line Endings – формат строк (CR, LF, CR LF) Byte Order Marker (BOM) – системная область в начале файла. LF – используется в UNIX вместе с кодировками UTF-8 или windows-1251 CR – используется в MAC системах. на сервере лучше использовать кодировку ANSI это и есть кириллица (Windows), символ занимает 1 байт (оптимизированный ASCII) UTF-8 может содержать заголовок BOM который содержит системную информацию, символ занимает 2 байта wysiwyg редакторы добавляют метатег в html страницы с кодировкой кирилицы. это не очень хорошо, если сервер настроен на UTF-8, в этой кодировке корректно работают некоторые библиотеки приложения и прочие

Как узнать время включения/выключения компьютера.

Способов масса, одни из них: в журнале событий windows  выбрать eventlog, теперь в таблице легко найти события с кодами: 6005 - событие остановки eventlog - компьютер выключился 6006 - событие запуска eventlog - компьютер включился обычно эта служба запускается и остонавли во время включения/выключения компьютера, и пишет в журнале событий системы код события и время.

Извлечение, редактирование и публикация файлов в SharePoint

Теги: Sharepoint в sharepoint designer на ленте за извлечение / редактирование или отмену извлечений отвечают кнопки  в браузере это выглядит по другому   файл извлечен и пока редактируется пользователем   страница с индивидуальным дизайном возврат страницы с индивидуальным дизайном к определению узла (к первоначальному виду не изменяя веб-части) Возврат извлеченной страницы с отменой всех внесенных изменений Изначально извлечение было создано для исключения конфликтов при редактировании файлов. Например если один пользователь открыл документ и редактирует, то второй не сможет открыть пока первый не вернет документ на место. Простыми словами извлечение значит, что пользователь забирает документ для редактирования. И возвращает после окончания редактирования. Само редактирование может выполняться и без подключения к сети, документ хранится в черновиках моих документов. В официальной документации сказано: Извлечение файлов позволяет избежать ситуации, когда несколь