现代化编程 -- 在 Swoole 上开发 Laravel 框架的应用

Laravel

Laravel 是非常现代化的一套 PHP 框架, 基于 composer 的构建方式, 其很多核心依赖并非完全 Laravel 自己所维护, 而依赖于 symfony/http-, eloquent/ 等较成熟的 Library, 以此实现现代化框架的集众优于一身(站在巨人肩上)的特点.

LaravelFly

经过前面的了解, 我们已经知道 Swoole 给 PHP 带来的无可比拟的优势, 但因为 Swoole 一些局限, 我们无法将其直接用于成熟的 PHP 框架, 而需要进行部分改造方可在 Swoole 上运行. 而 LaravelFly 正是这样一款工具(or, you can call it something else, anyway).

好了, 下面我们开始操作吧.

先来新建一个全新的 Laravel

# Composer 下载 Laravel 安装包:
composer global require "laravel/installer"

# 新建项目
laravel new test
cd test/
composer update

cp .env.example .env
vim .env # 修改数据库配置
php artisan key:generate
php artisan serve

这时我们通过 http://localhost:8000 就可以访问这份新的 laravel 项目了

但我们还得继续往下

composer require "scil/laravel-fly":"dev-master"

vendor/bin/publish-laravelfly-config-files

vim app/Http/Kernel.php

#########################################
# class Kernel extends HttpKernel
#  -->
#
#
# if (defined('LARAVELFLY_GREEDY')) {
#     if (LARAVELFLY_GREEDY) {
#         class WhichKernel extends \LaravelFly\Greedy\Kernel { }
#     } else {
#         class WhichKernel extends \LaravelFly\Kernel { }
#     }
# } else {
#     class WhichKernel extends HttpKernel { }
# }
#
# class Kernel extends WhichKernel
#

vendor/bin/start-laravelfly-server

好了, 我们的 laravel 项目现在是在 Swoole 扩展上运行了, 几乎没有什么 bug, 不过, 经过测试发现 debugbar 有些许问题, debugbar 调试过程记录的查询历史不会在请求完成后清空, 而会继承到下一次请求, 这其实是 Swoole 并不会在每次请求完成后回收创建的资源, 而我们只需要在 config/laravelfly.php 声明需要在单次请求完成后回收的实例即可.

    原文作者:ARGUS
    原文地址: https://segmentfault.com/a/1190000008752329
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞