PHPackages                             xiaosongshu/fasterphpweb - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. xiaosongshu/fasterphpweb

ActiveProject[Framework](/categories/framework)

xiaosongshu/fasterphpweb
========================

一个常驻内存 php框架，提供http，rtmp，websocket服务

v5.3.7(1y ago)3161MITPHPPHP &gt;=8.1

Since Jul 12Pushed 1y ago1 watchersCompare

[ Source](https://github.com/2723659854/fasterphpweb)[ Packagist](https://packagist.org/packages/xiaosongshu/fasterphpweb)[ RSS](/packages/xiaosongshu-fasterphpweb/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (22)Versions (78)Used By (0)

FASTERPHPWEB
------------

[](#fasterphpweb)

一个使用socket编写的PHP常驻内存框架，本项目是想到哪里写到哪里，里面有记录了笔记。

### 框架简介

[](#框架简介)

 本框架旨在让用户了解和学习PHP实现web运行原理，涉及到了相对较多的底层基础知识。

 fasterphpweb是一款常驻内存的轻量级的php框架，遵循常用的mvc架构。

 本框架对timer,redis,mysql,rabbitmq,kafka,websocket,elasticsearch,nacos,sqlite 进行了简单封装，并且保留了部分代码实例。

 本框架提供基本的http服务，可支持api接口或者web网页。

 本框架提供基本的websocket服务，可支持长链接，适用于聊天等场景。

 本框架提供rtmp流媒体服务，纯PHP开发，不需要其他依赖。支持rtmp推流，rtmp拉流和flv拉流。适用于直播场景。

 本框架不对外提供服务了，仅作为作者个人学习项目，因为里面添加太多的笔记了。而且代码发生了很多变化，也添加很多第三方的插件，不能算纯原创了。

### 项目安装

[](#项目安装)

```
composer create-project xiaosongshu/fasterphpweb
```

### 启动项目

[](#启动项目)

linux环境

```
开启 php start.php start -d  关闭 php start.php stop
```

windows环境

```
开启 php windows.php 关闭 php windows.php stop
```

### 目录结构

[](#目录结构)

```
|-- app
    |-- controller
        |-- index
        |-- ...
    |-- facade
    |-- queue
    |-- rabbitmq
    |-- model
    |-- command
|-- config
    |--app.php
    |--database.php
    |--redis.php
    |--server.php
    |--timer.php
|-- mysql
    ...
|-- public
|-- root
    ...
|-- vendor
|-- view
        ...
|-- composer.json
|-- README.md
|-- start.php
|-- songshu

```

### 快速开始

[](#快速开始)

1，导入mysql文件到你的数据库或者自己创建
2，进入项目根目录:cd /your\_project\_root\_path
3，调试模式: php start.php start
4，守护进程模式: php start.php start -d
5，重启项目: php start.php restart
6，停止项目: php start.php stop
7，项目默认端口为：8000, 你可以自行修改
8，项目访问地址：localhost://127.0.0.1:8000
9，windows默认只开启一个http服务
10，windows若需要测试队列，请单独开启一个窗口执行 php start.php queue ，监听队列
11，windows不支持定时器
12，本项目支持普通的redis的list队列，同时支持rabbitmq队列，如果需要使用延时队列，需要安装插件
13，在windows上默认使用select的io多路复用模型，在linux上默认使用epoll的io多路复用模型
14，但是在linux系统上，如果使用开启后台运行，加入不支持epoll模型，则使用的多进程同步阻塞io模型。
15，系统环境搭建，默认需要php,mysql,redis，而rabbitmq不是必须的。你可以自己搭建所需要的环境，也可以 使用本项目下面的docker配置。
16，假设你使用docker配置，首先要安装docker，然后执行命令：docker-compose up -d 启动环境。注意修改 docker-compose.yaml 里面的目录映射，端口映射。

### 注意

[](#注意)

1，原则上本项目只依赖socket，mysqli，redis扩展和pcntl系列函数，如需要第三方扩展，请自行安装。
2，因为是常驻内存，所以每一次修改了php代码后需要重启项目。
3，start.php为项目启动源码，root目录为运行源码，除非你已经完全明白代码意图，否则不要轻易修改代码。
4，所有的控制器方法都必须返回一个字符串，否则连接一直占用进程，超时后系统自动断开连接。
5，业务代码不要使用sleep,exit这两个方法。否则导致整个进程阻塞或者中断。

联系开发者
-----

[](#联系开发者)

项目地址
----

[](#项目地址)

### 项目文档

[](#项目文档)

#### 项目基本配置

[](#项目基本配置)

```
# 请在config/server.php 当中配置项目的端口和进程数
