Создание и запуск проекта на CodeIgniter
Что такое CodeIgniter?
CodeIgniter — это лёгкий PHP-фреймворк, предназначенный для разработки быстрых и эффективных веб-приложений. Он следует паттерну проектирования MVC (Model-View-Controller) и предоставляет множество функций и инструментов, которые позволяют разработчикам быстро создавать качественные веб-приложения. CodeIgniter известен своей простотой, высокой производительностью и лёгкостью в освоении, являясь предпочтительным фреймворком для многих разработчиков.
Основные характеристики и преимущества CodeIgniter
- Лёгкий: Core-система CodeIgniter очень компактна и содержит только необходимые компоненты, что делает её очень быстрой при загрузке.
- Высокая производительность: CodeIgniter известен своей эффективной производительностью и быстрым откликом, что позволяет обрабатывать высокие нагрузки.
- Легко обучаемый: Предоставляет простой и удобный API и богатую документацию, что позволяет разработчикам быстро освоить работу с фреймворком.
- Гибкость: Позволяет разработчикам свободно выбирать и использовать сторонние библиотеки и плагины для расширения и настройки функционала.
- Мощная поддержка сообщества: Имеет активное сообщество разработчиков и богатый набор сторонних расширений.
CodeIgniter помогает разработчикам быстро создавать высокопроизводительные и качественные веб-приложения, которые подходят для проектов любого масштаба.
Создание и запуск проекта на CodeIgniter с помощью ServBay
В этой статье мы будем использовать PHP-среду, предоставляемую ServBay, для создания и запуска проекта на CodeIgniter. Мы воспользуемся функцией хостинга ServBay для настройки веб-сервера и доступ к проекту через простую конфигурацию.
Внимание: если вы раньше использовали NGINX или Apache
По умолчанию, ServBay использует Caddy в качестве веб-сервера. При переходе с NGINX или Apache на ServBay нужно учитывать несколько ключевых изменений:
Конфигурация Caddy
ServBay поставляется с предустановленным Caddy и оптимизированной конфигурацией. Разработчикам нужно просто управлять сайтами через функцию хостинга ServBay, без необходимости вручную редактировать конфигурационные файлы Caddy.
Правила Rewrite и .htaccess
В NGINX и Apache разработчики обычно сами пишут правила Rewrite и файлы .htaccess для обработки URL-перезаписей и других настроек. Однако, в ServBay эти правила уже предустановлены в конфигурации Caddy, поэтому разработчикам не нужно самим писать эти правила, если нет особых требований.
Узнать больше
Более подробную информацию можно найти в секциях Rewrite и htaccess, Как перенести сайт Apache на ServBay, Как перенести сайт NGINX на ServBay.
Создание проекта на CodeIgniter
TIP
ServBay рекомендует размещать сайты в директории /Applications/ServBay/www
для удобства управления.
Установка Composer
Composer уже предустановлен в ServBay, отдельная установка не требуется.
Создание проекта на CodeIgniter
Используйте Composer для создания нового проекта на CodeIgniter:
bashcd /Applications/ServBay/www mkdir servbay-codeigniter-app cd servbay-codeigniter-app composer create-project codeigniter4/appstarter .
1
2
3
4Переход в директорию проекта
Перейдите в директорию нового проекта:
bashcd /Applications/ServBay/www/servbay-codeigniter-app
1
Инициализация конфигурации
Настройка подключения к базе данных
В файле
app/Config/Database.php
настройте подключение к базе данных:phppublic $default = [ 'DSN' => '', 'hostname' => '127.0.0.1', 'username' => 'root', 'password' => 'password', 'database' => 'servbay_codeigniter_app', 'DBDriver' => 'MySQLi', 'DBPrefix' => '', 'pConnect' => false, 'DBDebug' => (ENVIRONMENT !== 'production'), 'charset' => 'utf8mb4', 'DBCollat' => 'utf8mb4_general_ci', 'swapPre' => '', 'encrypt' => false, 'compress' => false, 'strictOn' => false, 'failover' => [], 'port' => 3306, ];
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Настройка веб-сервера
Используйте функцию хостинга ServBay для доступа к проекту на CodeIgniter через веб-сервер. В настройках хостинга ServBay добавьте новый сайт:
- Имя:
My First CodeIgniter Dev Site
- Домен:
servbay-codeigniter-test.local
- Тип сайта:
PHP
- Версия PHP:
8.3
- Корневая директория сайта:
/Applications/ServBay/www/servbay-codeigniter-app/public
Подробные шаги можно найти в разделе Добавление первого сайта.
Добавление примера кода
В файле app/Controllers/Home.php
добавьте следующий код:
namespace App\Controllers;
use CodeIgniter\Controller;
class Home extends Controller
{
public function index()
{
return 'Hello ServBay!';
}
public function memcached()
{
$cache = \Config\Services::cache();
$cache->save('key', 'Hello Memcached!', 60);
$value = $cache->get('key');
return $value;
}
public function redis()
{
$redis = \Config\Services::cache();
$redis->set('key', 'Hello Redis!');
$value = $redis->get('key');
return $value;
}
public function mysqlAdd()
{
$db = \Config\Database::connect();
$db->table('users')->insert([
'name' => 'ServBay',
'email' => '[email protected]',
]);
return 'User added';
}
public function mysql()
{
$db = \Config\Database::connect();
$users = $db->table('users')->get()->getResult();
return json_encode($users);
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
Доступ к сайту
Откройте браузер и перейдите по следующему URL:
https://servbay-codeigniter-test.local
: Вы увидите сообщение "Hello ServBay!".
Примеры использования NoSQL баз данных
Пример использования Memcached
Установка расширения Memcached
В ServBay расширение Memcached уже предустановлено, дополнительная установка не требуется.
Настройка Memcached
В файле
app/Config/Cache.php
настройте подключение к Memcached:phppublic $memcached = [ 'host' => '127.0.0.1', 'port' => 11211, 'weight' => 1, ];
1
2
3
4
5Использование Memcached
Используйте кеширование в контроллере:
phppublic function memcached() { $cache = \Config\Services::cache(); $cache->save('key', 'Hello Memcached!', 60); $value = $cache->get('key'); return $value; }
1
2
3
4
5
6
7Добавьте маршрут в файле
app/Config/Routes.php
:php$routes->get('/memcached', 'Home::memcached');
1Откройте браузер и перейдите по адресу: https://servbay-codeigniter-test.local/memcached
Пример использования Redis
Установка расширения Redis
В ServBay расширение Redis уже предустановлено, дополнительная установка не требуется.
Настройка Redis
В файле
app/Config/Cache.php
настройте подключение к Redis:phppublic string $handler = 'redis'; public $default = [ 'host' => '127.0.0.1', 'password' => null, 'port' => 6379, 'timeout' => 0, 'database' => 0, ];
1
2
3
4
5
6
7
8
9Использование Redis
Используйте кеширование в контроллере:
phppublic function redis() { $redis = \Config\Services::cache(); $redis->save('key', 'Hello Redis!'); $value = $redis->get('key'); return $value; }
1
2
3
4
5
6
7Добавьте маршрут в файле
app/Config/Routes.php
:php$routes->get('/redis', 'Home::redis');
1Откройте браузер и перейдите по адресу: https://servbay-codeigniter-test.local/redis
Примеры использования реляционных баз данных
Создание структуры базы данных и файлов миграции
Создание файла миграции
Используйте CLI-инструмент CodeIgniter для создания файла миграции:
bashphp spark make:migration create_users_table
1Редактирование файла миграции
Найдите новый файл миграции в директории
app/Database/Migrations
и отредактируйте его для определения структуры таблицы:phpuse CodeIgniter\Database\RawSql; public function up() { $this->forge->addField([ 'id' => [ 'type' => 'INT', 'constraint' => 5, 'unsigned' => true, 'auto_increment' => true, ], 'name' => [ 'type' => 'VARCHAR', 'constraint' => '100', ], 'email' => [ 'type' => 'VARCHAR', 'constraint' => '100', 'unique' => true, ], 'created_at' => [ 'type' => 'TIMESTAMP', 'default' => new RawSql('CURRENT_TIMESTAMP'), ], 'updated_at' => [ 'type' => 'TIMESTAMP', 'default' => new RawSql('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'), ], ]); $this->forge->addKey('id', true); $this->forge->createTable('users'); }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32Запуск миграции
Используйте команду миграции CodeIgniter для запуска миграции и создания таблицы в базе данных:
bashphp spark migrate
1
Пример использования MySQL
Настройка MySQL
В файле
app/Config/Database.php
настройте подключение к MySQL:phppublic $default = [ 'DSN' => '', 'hostname' => '127.0.0.1', 'username' => 'root', 'password' => 'password', 'database' => 'servbay_codeigniter_app', 'DBDriver' => 'MySQLi', 'DBPrefix' => '', 'pConnect' => false, 'DBDebug' => (ENVIRONMENT !== 'production'), 'charset' => 'utf8', 'DBCollat' => 'utf8_general_ci', 'swapPre' => '', 'encrypt' => false, 'compress' => false, 'strictOn' => false, 'failover' => [], 'port' => 3306, ];
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19Добавление маршрутов
В файле
app/Config/Routes.php
добавьте следующие маршруты:php$routes->get('/mysql-add', 'Home::mysqlAdd'); $routes->get('/mysql', 'Home::mysql');
1
2Ввод данных пользователя
В контроллере введите данные пользователя:
phppublic function mysqlAdd() { $db = \Config\Database::connect(); $db->table('users')->insert([ 'name' => 'ServBay', 'email' => '[email protected]', ]); return 'User added'; }
1
2
3
4
5
6
7
8
9Использование MySQL
В контроллере вызовите базу данных:
phppublic function mysql() { $db = \Config\Database::connect(); $users = $db->table('users')->get()->getResult(); return json_encode($users); }
1
2
3
4
5
6Откройте браузер и перейдите по адресам:
https://servbay-codeigniter-test.local/mysql-add
иhttps://servbay-codeigniter-test.local/mysql
Пример использования PostgreSQL
Настройка PostgreSQL
В файле
app/Config/Database.php
настройте подключение к PostgreSQL:phppublic $default = [ 'DSN' => '', 'hostname' => '127.0.0.1', 'username' => 'root', 'password' => 'password', 'database' => 'servbay_codeigniter_app', 'DBDriver' => 'Postgre', 'DBPrefix' => '', 'pConnect' => false, 'DBDebug' => (ENVIRONMENT !== 'production'), 'charset' => 'utf8', 'DBCollat' => 'utf8_general_ci', 'swapPre' => '', 'encrypt' => false, 'compress' => false, 'strictOn' => false, 'failover' => [], 'port' => 5432, ];
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19Создание файла миграции
Используйте следующую команду для создания файла миграции:
bashphp spark make:migration create_users_table
1Редактирование файла миграции
phpuse CodeIgniter\Database\RawSql; public function up() { $this->forge->addField([ 'id' => [ 'type' => 'INT', 'constraint' => 5, 'unsigned' => true, 'auto_increment' => true, ], 'name' => [ 'type' => 'VARCHAR', 'constraint' => '100', ], 'email' => [ 'type' => 'VARCHAR', 'constraint' => '100', 'unique' => true, ], 'created_at' => [ 'type' => 'TIMESTAMP', 'default' => new RawSql('NOW()'), ], 'updated_at' => [ 'type' => 'TIMESTAMP', 'default' => new RawSql('NOW()'), ], ]); $this->forge->addKey('id', true); $this->forge->createTable('users'); }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32Запуск миграции
Выполните следующую команду, чтобы запустить миграцию и создать структуру таблицы:
bashphp spark migrate
1Добавление маршрутов
В файле
app/Config/Routes.php
добавьте следующие маршруты:php$routes->get('/pgsql-add', 'Home::pgsqlAdd'); $routes->get('/pgsql', 'Home::pgsql');
1
2Ввод данных пользователя
В контроллере введите данные пользователя:
phppublic function pgsqlAdd() { $db = \Config\Database::connect(); $db->table('users')->insert([ 'name' => 'ServBay', 'email' => '[email protected]', ]); return 'User added'; }
1
2
3
4
5
6
7
8
9Использование PostgreSQL
В контроллере вызовите базу данных:
phppublic function pgsql() { $db = \Config\Database::connect(); $users = $db->table('users')->get()->getResult(); return json_encode($users); }
1
2
3
4
5
6Откройте браузер и перейдите по адресам:
https://servbay-codeigniter-test.local/pgsql-add
иhttps://servbay-codeigniter-test.local/pgsql
Следуя данным шагам, вы успешно создадите и запустите проект на CodeIgniter с использованием возможностей ServBay для управления и доступа к проекту, а также подключения и работы с различными типами баз данных. Надеюсь, эта статья поможет вам быстро освоить работу с CodeIgniter и применить его в ваших проектах.