Создание и запуск проекта на FuelPHP
Что такое FuelPHP?
FuelPHP — это гибкий и модульный PHP фреймворк, предназначенный для разработки современных веб-приложений. Он следует паттерну проектирования HMVC (Иерархическая Модель-Вид-Контроллер) и предоставляет богатый набор функций и инструментов, позволяющих разработчикам быстро создавать высококачественные веб-приложения. Известный своей гибкостью, высокой производительностью и легкостью расширения, FuelPHP является предпочтительным выбором для многих разработчиков.
Ключевые особенности и преимущества FuelPHP
- HMVC архитектура: Поддержка иерархических паттернов MVC, способствующих повторному использованию кода и модульной разработке.
- Высокая производительность: FuelPHP известен своей эффективной производительностью и скоростью, способной обрабатывать высококонкурентные запросы.
- Легкость в расширении: Предлагает богатый механизм расширения, позволяющий разработчикам легко добавлять пользовательские функции.
- Безопасность: Включает несколько встроенных функций безопасности, таких как валидация ввода, фильтрация вывода и защита от CSRF.
- Сильная поддержка сообщества: Имеет активное сообщество разработчиков и множество сторонних расширений.
FuelPHP может помочь разработчикам быстро создавать высокопроизводительные, высококачественные веб-приложения, подходящие для проектов различного масштаба.
Создание и запуск проекта FuelPHP с использованием ServBay
В этой статье мы используем окружение PHP, предоставленное ServBay, для создания и запуска проекта FuelPHP. Мы настроим веб-сервер, используя функцию "Host" в ServBay, и достигнем доступа к проекту через простую конфигурацию.
Примечание: Для пользователей, ранее использовавших NGINX или Apache
По умолчанию ServBay использует Caddy в качестве веб-сервера. Для пользователей, переходящих с NGINX и Apache на ServBay, есть несколько ключевых изменений:
Конфигурация Caddy
В ServBay интегрирован Caddy, и его конфигурация оптимизирована и отлажена по умолчанию. Разработчикам нужно только управлять сайтами через функцию "Host" в ServBay без необходимости ручного изменения конфигурационного файла Caddy.
Правила перезаписи и .htaccess
В NGINX и Apache разработчики обычно пишут свои собственные правила перезаписи и файлы .htaccess для изменения URL и других конфигураций. Однако в ServBay Caddy уже настроен, поэтому разработчикам не нужно писать эти правила, если нет особых требований.
Узнайте больше
Для получения дополнительной информации, пожалуйста, обратитесь к статьям Перезапись и htaccess, Как мигрировать сайты Apache на ServBay, и Как мигрировать сайты NGINX на ServBay.
Создание проекта FuelPHP
TIP
ServBay рекомендует размещать сайты в каталоге /Applications/ServBay/www
для облегчения управления.
Установка Composer
Composer предустановлен с ServBay, поэтому отдельно устанавливать его не нужно.
Создание проекта FuelPHP
Используйте Composer для создания нового проекта FuelPHP:
bashcd /Applications/ServBay/www mkdir servbay-fuelphp-app cd servbay-fuelphp-app composer create-project fuel/fuel .
1
2
3
4Перейдите в каталог проекта
Перейдите в каталог созданного проекта FuelPHP:
bashcd /Applications/ServBay/www/servbay-fuelphp-app
1
Первоначальная конфигурация
Настройка соединения с базой данных
Настройте информацию о соединении с базой данных в файле
fuel/app/config/development/db.php
:phpreturn [ 'default' => [ 'connection' => [ 'dsn' => 'mysql:host=localhost;dbname=fuel_dev', 'username' => 'root', 'password' => 'root', ], ], ];
1
2
3
4
5
6
7
8
9
Настройка веб-сервера
Используйте функцию "Host" в ServBay для доступа к проекту FuelPHP через веб-сервер. В настройках ServBay "Host" добавьте новый хост:
- Имя:
Мой первый сайт разработки FuelPHP
- Домен:
servbay-fuelphp-test.local
- Тип сайта:
PHP
- Версия PHP: выберите
8.3
- Корневой каталог сайта:
/Applications/ServBay/www/servbay-fuelphp-app/public
Для детальных шагов настройки, пожалуйста, обратитесь к статье Добавление первого сайта.
Добавление примера кода
Добавьте следующий код в файл fuel/app/classes/controller/welcome.php
:
use Fuel\Core\Controller;
use Fuel\Core\Response;
use Fuel\Core\Cache;
use Fuel\Core\DB;
class Controller_Welcome extends Controller
{
public function action_index()
{
return Response::forge('Hello ServBay!');
}
public function action_memcached()
{
Cache::set('key', 'Hello Memcached!', 60);
$value = Cache::get('key');
return Response::forge($value);
}
public function action_redis()
{
Cache::set('key', 'Hello Redis!', 60);
$value = Cache::get('key');
return Response::forge($value);
}
public function action_mysql_add()
{
DB::insert('users')->set([
'name' => 'ServBay',
'email' => '[email protected]',
])->execute();
return Response::forge('User added');
}
public function action_mysql()
{
$users = DB::select()->from('users')->execute()->as_array();
return Response::forge(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
45
Доступ к сайту
Откройте свой браузер и перейдите по следующему URL:
https://servbay-fuelphp-test.local
: вы увидите страницу с выводомHello ServBay!
.
Примеры использования NoSQL баз данных
Пример с Memcached
Установка расширения Memcached
Расширение Memcached предустановлено с ServBay, дополнительная установка не требуется.
Настройка Memcached
Настройте информацию о соединении с Memcached в файле
fuel/core/config/cache.php
:phpreturn [ 'driver' => 'memcached', 'memcached' => [ 'cache_id' => 'fuel', 'servers' => [ 'default' => [ 'host' => '127.0.0.1', 'port' => 11211, 'weight' => 100, ], ] ], ];
1
2
3
4
5
6
7
8
9
10
11
12
13
14Добавление маршрутов
Добавьте следующие маршруты в файл
fuel/app/config/routes.php
:phpreturn array( 'memcached' => 'welcome/memcached', )
1
2
3Использование Memcached
Используйте кэш в контроллере:
phppublic function action_memcached() { Cache::set('key', 'Hello Memcached!', 60); $value = Cache::get('key'); return Response::forge($value); }
1
2
3
4
5
6
7Откройте браузер и перейдите по адресу https://servbay-fuelphp-test.local/memcached
Пример с Redis
Установка расширения Redis
Расширение Redis предустановлено с ServBay, дополнительная установка не требуется.
Настройка Redis
Настройте информацию о соединении с Redis в файле
fuel/app/config/redis.php
:phpreturn [ 'driver' => 'redis', 'redis' => [ 'database' => 'default', ], ];
1
2
3
4
5
6Добавление маршрутов
Добавьте следующие маршруты в файл
fuel/app/config/routes.php
:phpreturn array( 'redis' => 'welcome/redis', )
1
2
3Использование Redis
Используйте кэш в контроллере:
phppublic function action_redis() { Cache::set('key', 'Hello Redis!', 60); $value = Cache::get('key'); return Response::forge($value); }
1
2
3
4
5
6
7Откройте браузер и перейдите по адресу https://servbay-fuelphp-test.local/redis
Примеры использования реляционных баз данных
Пример с MySQL
Настройка MySQL
Настройте информацию о соединении с MySQL в файле
fuel/app/config/development/db.php
:phpreturn [ 'default' => [ 'connection' => [ 'dsn' => 'mysql:host=localhost;dbname=fuel_dev', 'username' => 'root', 'password' => 'root', ], ], ];
1
2
3
4
5
6
7
8
9Создание файлов миграции
Используйте инструмент oil от FuelPHP для создания файлов миграции:
bashphp oil g migration create_users_table
1Редактирование файлов миграции
Найдите вновь созданный файл миграции в каталоге
fuel/app/migrations
и отредактируйте его для определения структуры таблицы базы данных:php<?php namespace Fuel\Migrations; use Fuel\Core\DBUtil; class Create_users_table { public function up() { DBUtil::create_table('users', [ 'id' => ['type' => 'int', 'constraint' => 11, 'auto_increment' => true], 'name' => ['type' => 'varchar', 'constraint' => 100], 'email' => ['type' => 'varchar', 'constraint' => 100, 'unique' => true], ], ['id']); } public function down() { DBUtil::drop_table('users'); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21Запуск миграции
Используйте инструмент oil от FuelPHP для выполнения миграции и создания таблицы в базе данных:
bashphp oil refine migrate
1Добавление маршрутов
Добавьте следующие маршруты в файл
fuel/app/config/routes.php
:phpreturn array( 'mysql_add' => 'welcome/mysql_add', 'mysql' => 'welcome/mysql', )
1
2
3
4Вставка данных пользователя
Вставьте данные пользователя в контроллере:
phppublic function action_mysql_add() { DB::insert('users')->set([ 'name' => 'ServBay', 'email' => '[email protected]', ])->execute(); return Response::forge('User added'); }
1
2
3
4
5
6
7
8
9Использование MySQL
Обращайтесь к базе данных в контроллере:
phppublic function action_mysql() { $users = DB::select()->from('users')->execute()->as_array(); return Response::forge(json_encode($users)); }
1
2
3
4
5
6Откройте браузер и перейдите по адресу
https://servbay-fuelphp-test.local/mysql_add
иhttps://servbay-fuelphp-test.local/mysql
Следуя вышеуказанным шагам, вы успешно создали и запустили проект FuelPHP, используя функции ServBay для управления и доступа к вашему проекту, а также подключения и выполнения запросов к нескольким базам данных. Надеемся, эта статья поможет вам быстро начать работу с FuelPHP и применить его в ваших проектах.