codeigniter учебник
Начало работы с codeigniter
Поиск…
замечания
CodeIgniter - это структура MVC, написанная и для PHP.
Он является легким по сравнению с другими инфраструктурами MVC, за счет меньшего количества функциональных возможностей, например, нет встроенной системы аутентификации, которая может быть частью других фреймворков.
CodeIgniter - хороший выбор фреймворков для тех, кто начинает работать с MVC, поскольку он не заставляет каких-либо конкретных стандартов для именования и структуры кода; но он также подходит для более крупных проектов, где может не потребоваться большой набор функций, содержащихся в других рамках.
Версии
Версия | Дата выхода |
---|---|
Версия Beta 1.0 | 2006-02-28 |
Версия 2.0.0 | 2011-01-28 |
Версия 2.2.0 | 2014-06-02 |
Версия 3.0.0 | 2015-03-30 |
Версия 3.1.3 | 2017-01-09 |
Версия 3.1.4 | 2017-03-20 |
Версия 3.1.5 | 2017-06-19 |
Установка и настройка
Среда Windows
- Установите XAMPP или WAMP
- Загрузите и распакуйте пакет с сайта Codeigniter.com
- Извлеките весь документ в пространстве сервера (htdocs или каталог www)
Mac Environment
- Установите MAMP
- Загрузите и распакуйте пакет с сайта Codeigniter.com
- Извлеките весь документ в пространстве сервера (htdocs)
Linux-среда
- Загрузите и распакуйте пакет с сайта Codeigniter.com
- Поместите извлеченную папку в / var / www (в WAMP) или xampp / htdocs (XAMPP)
GitHub
git clone https://github.com/bcit-ci/CodeIgniter.git
Если вы будете следовать системе правильно, вы получите экран ниже.
Базовый URL
- Перейдите в
application/config/config.php
- Определите базовый URL как
$config['base_url'] = 'http://localhost/path/to/folder';
Удалить index.php
из URL
Конфигурация Apache |
---|
идти в корне
создать файл htaccess
Добавьте внутри него код ниже
RewriteEngine on RewriteCond $1 !^(index\.php|assets|image|resources|robots\.txt) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L,QSA]
Примечание: .htaccess код зависит от сервера хостинга. На каком-то сервере хостинга (например: Godaddy) нужно использовать дополнительный ?
в последней строке выше кода. Следующая строка будет заменена последней строкой в применимом случае:
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
Конфигурация Nginx |
---|
Откройте файл конфигурации nginx (по умолчанию:
/etc/nginx/sites-available/default
)Добавьте внутри него код ниже
server { server_name domain.tld; root /path-to-codeigniter-folder; //you codeigniter path index index.html index.php; # set expiration of assets to MAX for caching location ~* \.(ico|css|js|gif|jpe?g|png)(\?[0-9]+)?$ { expires max; log_not_found off; } location / { # Check if a file or directory index file exists, else route it to index.php. try_files $uri $uri/ /index.php; } location ~* \.php$ { fastcgi_pass 127.0.0.1:9000; include fastcgi.conf; } }
Настройка базы данных
- Перейдите в
application/config/database.php
- Установите следующие параметры конфигурации.
- хозяин
- имя пользователя
- пароль
- Название базы данных
- порт
Установить контроллер по умолчанию
- Перейдите в
application/config/routes.php
- установите следующее значение переменной конфигурации с именем вашего контроллера.
- default_controller
Библиотека и помощник автозагрузки
- Перейдите в
application/config/autoload.php
- set Значение автоматической загрузки, например
$autoload['libraries'] = array('database', 'session');
- set Helper value, например
$autoload['helper'] = array('url', 'file', 'form', 'html', 'text');
Запуск нескольких приложений в одной системе CI
Codeigniter может быть сконфигурирован для запуска нескольких проектов без дублирования основных файлов CI.
Это возможно, разбив CI Application. Для примера возьмем проект веб - сайта, который содержит front-end
и back-end
системы управления контентом (CMS) приложения. В этом случае структура папок CI будет выглядеть так:
Структура папок:
├── Codeigniter
│ ├── applications
│ │ ├─ front-end
│ │ │ ├── views
│ │ │ ├── models
│ │ │ ├── controllers
│ │ │ ├── config
│ │ │ └── ...
│ │ ├─ back-end
│ │ │ ├── views
│ │ │ ├── models
│ │ │ ├── controllers
│ │ │ ├── config
│ │ │ └── ...
│ │ │
│ ├── system
│ │ ├── core
│ │ ├── database
│ │ ├── helpers
│ │ └── ...
│ │
│ ├── index.php
└ └── backend.php
В папке applications
мы создали две папки: front-end
и back-end
и скопировали все содержимое applications
по умолчанию в этих двух папках.
Также мы дублируем файл index.php
в корневой папке как backend.php
Далее следует настроить CI
для работы с этими двумя экземплярами приложения.
Конфигурация Codeigniter :
Откройте файлы index.php и backend.php и обновите application_folder
confg:
//index.php
$application_folder = 'applications/front-end';
//backend.php
$application_folder = 'applications/back-end';
После настройки выше CI готов запустить два приложения в одной системе CI:
Запрос на
example.com/Codeigniter/index.php
откроетfront-end
приложение
Запрос на
example.com/Codeigniter/backend.php
откроетback-end
приложение
Повысьте безопасность, спрятав местоположение файлов CodeIgniter
Внутри CodeIgniter есть два основных справочника: система и приложение . Системная папка содержит основные кишки CodeIgniter. Папка приложения будет содержать весь код, специфичный для вашего приложения, включая модели, контроллеры, представления и другие соответствующие библиотеки.
В инструкциях по установке CodeIgniter, в интересах обеспечения безопасности вашего приложения, папка системы и приложения должна быть размещена над веб-корнем, чтобы они не были напрямую доступны через браузер. По умолчанию файлы в формате .htaccess включены в каждую папку, чтобы предотвратить прямой доступ, но лучше всего удалить их из общего доступа, если конфигурация веб-сервера изменится или не будет выполняться .htaccess.
├── CodeIgniter
│ ├── application
│ ├── system
│ ├── wwwroot
│ │ ├── index.php
После перемещения системных и прикладных папок откройте основной файл index.php
и установите переменные $system_path
, $application_folder
, предпочтительно с полным путем, например ' /www/MyUser/system'
. Однако относительные пути должны работать.
Для Linux / Apache:
$application_folder = './application';
$system_path = './system';
Для Windows / IIS:
$application_folder = '../application/';
$system_path = '../system/';