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

Laravel

Laravel 是很是现代化的一套 PHP 框架, 基于 composer 的构建方式, 其不少核心依赖并不是彻底 Laravel 本身所维护, 而依赖于 symfony/http-, eloquent/ 等较成熟的 Library, 以此实现现代化框架的集众优于一身(站在巨人肩上)的特色.php

LaravelFly

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

好了, 下面咱们开始操做吧.shell

先来新建一个全新的 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 项目了vim

但咱们还得继续往下app

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 声明须要在单次请求完成后回收的实例便可.composer

相关文章
相关标签/搜索