Расширение YAF-фреймворка: упаковка часто используемых классов DB, Cache и Log, подходящих для разработки API-интерфейсов
Расширение фреймворка YAF (Yet Another Framework) позволяет упаковать часто используемые классы DB, Cache и Log. Это решение подходит для разработки API-интерфейсов и обладает следующими характеристиками:
Расширение: установка и конфигурация
Для установки расширения необходимы Redis, Memcache, Seaslog и YAF. Скачать их можно по следующим ссылкам:
После скачивания необходимо выполнить следующие шаги:
Затем необходимо настроить параметры PHP.ini для расширений и перезапустить PHP-FPM для активации изменений.
[redis]
extension="redis.so"
[memcahe]
extension="memcache.so"
[opcache]
zend_extension="opcache.so"
opcache.enable=1
opcache.memory_consumption = 100
opcache.interned_strings_buffer = 8
opcache.max_accelerated_files = 5000
opcache.revalidate_freq = 240
opcache.fast_shutdown = 1
opcache.enable_cli = 1
opcache.huge_code_pages=1
[yaf]
extension="yaf.so"
yaf.environ=product
[seaslog]
extension="seaslog.so"
seaslog.level= 0
seaslog.default_basepath= "/webs/yaf/two/logs" //Путь должен быть указан корректно
seaslog.default_logger = logger
seaslog.disting_type = 1
seaslog.disting_by_hour = 1
seaslog.use_buffer = 1
seaslog.buffer_size = 100
seaslog.level = 0
[yar]
extension="yar.so"
Чтобы проверить установку модулей, можно использовать команду «php -m» в командной строке.
Развёртывание
Рекомендуется использовать Nginx вместо Apache для достижения высокой производительности. В качестве примера используется виртуальный домен xxxxx, а версия PHP — PHP7.
Конфигурация Nginx:
server {
listen 80;
server_name xxxxx;
root /webs/yaf/two/public;
index index.php index.html index.htm;
location ~ .*\.(php|php5)?$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
if (!-e $request_filename) {
rewrite ^/(.*) /index.php?$1 last;
}
}
Apache конфигурация:
<VirtualHost *:80>
ServerAdmin zfeig
DocumentRoot /webs/yaf/two/public
ServerName xxxxx
ErrorLog "/logs/xxxxx.log"
CustomLog "/logs/xxxxx_access.log" common
</VirtualHost>
127.0.0.1 xxxxx
Тестирование базы данных:
По умолчанию используется база данных MySQL. Необходимо импортировать файл article.sql в базу данных test, используя кодировку utf-8.
RPC-сервисы и клиентские вызовы
В контексте разработки API, RPC-сервисы могут использоваться для вызова других микросервисов. В этом случае API-фреймворк выступает в роли клиента, а микросервис — в роли сервера.
Пример RPC-сервера:
Этот пример использует единый вход Server.php и распределяет различные сервисы на основе параметров клиента. Структура микросервиса включает в себя:
Использование RPC-клиента:
Библиотека Rpc/Client.php включена в BootStrap. Вызов RPC-сервисов осуществляется через класс Client. Для этого необходимо убедиться, что конкретный сервис зарегистрирован в узле rpc.services конфигурации, и вызвать его в контроллере action.
Настройка узла rpc:
;Удаленный адрес RPC-запроса
rpc.address = "http://192.168.145.162:8000/Server.php"
;Список удаленных RPC-сервисов
rpc.services = "IndexService,TestService"
rpc.defaultService = "IndexService"
Вызов в action:
$rpcServer = Client::init("TestService"); //Удаленный сервис TestService зарегистрирован в конфигурации rpc.services
$ret = $rpcServer->api(['id'=>1]); //Метод api удаленного сервиса TestService
Запуск
Необходимо убедиться, что службы Redis, Nginx, PHP-FPM и MySQL запущены. После этого можно просматривать интерфейс.
Пример использования
В корневом каталоге приложения находится файл BootStrap.php, который включает перезапись маршрутов и реализует несколько простых интерфейсов:
При посещении URL http://xxxxx/v2/user/8, возвращается следующий результат:
{
"status": 200,
"msg": "Получение успешно",
"result": {
"id": "8",
"author": "admin",
"cid": "1",
"add_time": "1448333293",
"title": "О жилищном фонде",
"content": "О жилищном фонде, поскольку была опубликована новая политика, жилищная политика продолжает корректироваться, это будет все больше влиять на некоторых людей, работающих за границей, которые планируют вернуться домой и купить жилье, здесь мы подробно расскажем вам о жилищных знаниях",
"brief": "Из-за новой политики публикация, жилищная политика продолжает регулироваться, это повлияет на некоторых людей, которые работают за границей и планируют вернуться домой, чтобы купить дом",
"version": "2"
}
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )