Создание и Запуск Проекта CodeIgniter
Что такое CodeIgniter?
CodeIgniter — это легковесный фреймворк PHP, подходящий для разработки быстрых и эффективных веб-приложений. Он следует шаблону проектирования MVC (Model-View-Controller) и предлагает богатый набор функций и инструментов, которые позволяют разработчикам быстро создавать высококачественные веб-приложения. Благодаря простоте, высокой производительности и легкости в обучении, CodeIgniter пользуется популярностью среди разработчиков.
Основные Особенности и Преимущества CodeIgniter
- Легковесный: Основная система CodeIgniter очень мала, содержит только необходимые компоненты, что делает ее очень быстрой в загрузке.
- Высокая Производительность: CodeIgniter известен своей эффективностью и скоростью выполнения, способен обрабатывать высокую нагрузку.
- Простота в Обучении: Предлагает простой и легкий в использовании API вместе с подробной документацией, что позволяет разработчикам быстро начать работу.
- Гибкость: Позволяет разработчикам свободно выбирать и использовать сторонние библиотеки и плагины, что делает расширения и настройки удобными.
- Сильная Поддержка Сообщества: Существует активное сообщество разработчиков и множество сторонних расширений.
CodeIgniter помогает разработчикам быстро создавать высокопроизводительные и качественные веб-приложения, подходящие для проектов любого масштаба.
Создание и Запуск Проекта CodeIgniter с Использованием ServBay
В этой статье мы будем использовать PHP-окружение ServBay для создания и запуска проекта CodeIgniter. Мы будем использовать функцию 'Host' ServBay для настройки веб-сервера и доступа к проекту через простую конфигурацию.
::: внимание Внимание: Если вы раньше использовали NGINX или Apache
ServBay использует Caddy в качестве веб-сервера по умолчанию. Для пользователей, переходящих с NGINX и Apache на ServBay, существует несколько ключевых изменений, о которых нужно знать:
Конфигурация Caddy
Caddy уже встроен в ServBay, и настройка по умолчанию оптимизирована и отлажена. Разработчикам нужно только управлять сайтом через функцию ‘Host’ ServBay без необходимости вручную изменять файлы конфигурации Caddy.
Правила Переписывания и .htaccess
В NGINX и Apache разработчики обычно сами пишут свои правила переписывания и файлы .htaccess для переписывания URL и других конфигураций. Однако с ServBay правила для Caddy уже предустановлены, и если нет особых требований, разработчикам не нужно писать эти правила самостоятельно.
Узнать Больше
Для получения дополнительной информации, пожалуйста, обращайтесь к Rewrite and htaccess, How to Migrate Apache Website to ServBay, How to Migrate NGINX Website to 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Вход в Каталог Проекта
Войдите в каталог нового проекта CodeIgniter:
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
Настройка Веб-Сервера
Используйте функцию 'Host' ServBay для доступа к проекту CodeIgniter через веб-сервер. Добавьте новый хост в настройках 'Host' ServBay:
- Имя:
My First CodeIgniter Dev Site
- Домен:
servbay-codeigniter-test.local
- Тип Сайта:
PHP
- Версия PHP: Выберите
8.3
- Корневая Директория Сайта:
/Applications/ServBay/www/servbay-codeigniter-app/public
Для подробных шагов настройки, пожалуйста, обратитесь к Adding the First Website.
Добавление Примерного Кода
Добавьте следующий код в файл 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
Расширение Memcached предустановлено в ServBay, дополнительных установок не требуется.
Настройка Memcached
Настройте информацию о подключении к Memcached в файле
app/Config/Cache.php
: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
Расширение Redis предустановлено в ServBay, дополнительных установок не требуется.
Настройка Redis
Настройте информацию о подключении к Redis в файле
app/Config/Cache.php
: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
Примеры Реляционных Баз Данных
Пример с MySQL
Настройка MySQL
Настройте информацию о подключении к MySQL в файле
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Создание Файла Миграции
Используйте инструмент 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Добавление Маршрута
Добавьте следующие маршруты в
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
Настройте информацию о подключении к PostgreSQL в файле
app/Config/Database.php
: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Создание Файла Миграции
Используйте инструмент CLI CodeIgniter для создания файла миграции:
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Запуск Миграции
Используйте команду миграции CodeIgniter для выполнения миграции и создания таблицы в базе данных:
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/p;pgsql-add
иhttps://servbay-codeigniter-test.local/pgsql
С помощью этих шагов вы успешно создали и запустили проект CodeIgniter, использовали функции ServBay для управления и доступа к вашему проекту, а также подключились к различным базам данных для взаимодействия с данными. Надеюсь, эта статья поможет вам быстро начать работу с CodeIgniter и применить его в ваших проектах.