v1.1.0 已发布

构建优雅的
PHP 应用

Longphp 是一款轻量级、零依赖的 PHP MVC 开发框架。简洁的架构设计,让开发回归纯粹。

0
第三方依赖
8.0+
PHP 版本要求
MVC
架构模式

为高效开发而生

精心设计的每一个特性,都是为了让您的开发体验更加流畅

零依赖设计

不依赖 Composer,纯原生 PHP 实现。下载即用,无需额外配置,让项目保持轻盈。

MVC 架构

清晰的 Controller → Service → Model 三层分离,代码组织井然有序,易于维护。

双模式运行

CLI 命令行 + WEB HTTP 统一控制器编写方式,一套代码,多种运行方式。

自动依赖注入

基于反射的自动 DI 容器,构造器自动注入依赖,告别手动实例化的繁琐。

智能自动加载

命名空间直接映射文件路径,无需手动 require,代码组织更加清晰。

日志系统

按日期自动分文件,支持 info/error/warn 三级日志,问题排查更加高效。

三步上手

从零开始构建您的第一个 Longphp 应用,只需简单三步

  1. 克隆项目到本地
  2. 配置环境变量 .env
  3. 启动开发服务器
terminal
# 克隆项目
git clone https://github.com/yuwenlong/longphp.git
cd longphp

# 复制配置文件
cp .env.online .env

# 启动 WEB 服务器
php -S localhost:8080 -t public/

# 或运行 CLI 命令
php -f cli.php

优雅简洁的代码

清晰的代码结构,让开发成为一种享受

controller/cli/GetDataSources.php
<?php

namespace controller\cli;

use controller\baseController;
use model\attackDsModel;
use service\datasourceService;

class GetDataSources extends baseController
{
    public function __construct(
        private attackDsModel $model,
        private datasourceService $service
    ) {
        parent::__construct();
    }

    public function run(): void
    {
        $data = $this->service->fetch();
        $this->model->sync($data);
    }
}
model/AttackDsModel.php
<?php

namespace model;

class AttackDsModel extends baseModel
{
    public function getData(): mixed
    {
        return self::queryRaw(
            'SELECT * FROM `' .
            self::getTableName() .
            '`'
        )->fetchAll();
    }

    public function sync(array $data): void
    {
        foreach ($data as $item) {
            // 同步逻辑...
        }
    }
}

清晰的分层架构

每一层各司其职,让代码更加易于理解和维护

开始您的项目

选择您喜欢的方式获取 Longphp