rnr1721/le7-framework

le7 PHP MVC 框架 - 项目骨架

1.1.1 2023-12-03 19:48 UTC

This package is auto-updated.

Last update: 2024-09-03 21:16:43 UTC


README

Le7 框架是一个简约的 PHP MVC 框架,用 PHP 编写。

这是一个骨架(用于与 le7 框架一起使用的空应用程序)

它能做什么?

  • 创建 Web、REST API 或 CLI 应用程序
  • 默认支持多语言。每个页面都可以显示在配置中的任何语言上
  • 可以使用任何模板引擎 - Twig、Smarty 或纯 PHP
  • 主题支持,以扩展工作与设计
  • 在具有不同命名空间的不同路由组中使用控制器
  • 轻松扩展框架功能
  • 轻松使用数据提供程序进行实体框架,用于验证数组、表单等...
  • 使用 PSR 标准 - 缓存、事件、消息、中间件、请求处理器等
  • 轻松替换一些功能,如日志记录器、缓存、模板引擎等
  • 使用任何容器,核心只使用 ContainerInterface 的 get 和 has 方法
  • 使用任何缓存 - 文件系统、memcached、null 等...可以轻松编写自己的
  • 在 cookie 和会话中存储闪存消息
  • 可以编写自己的会话处理器
  • 非常简单的路由
  • 内置验证类,但您可以使用自己的任何类
  • 对 POST、PUT、PATCH、DELETE 方法进行 CSRF 保护
  • 轻松在控制器构造函数和操作方法中注入依赖项
  • 轻松在中间件、事件中注入依赖项
  • 易于理解的容器配置
  • 使用最小依赖集,轻量级
  • 轻松配置 CSP 和其他安全头

计划中

  • 测试
  • 核心文档
  • 数据库管理包
  • 用户管理包

要求

  • PHP 8.1 或更高版本
  • Apache 或 Nginx 网络服务器
  • 正在使用 Workerman 进行开发,但不知道如何使用 Workerman 服务器提供静态内容(js、img、css)

贡献

如果您是一位希望为开源项目做出贡献的开发者,我们邀请您查看我们的项目,并考虑加入我们的贡献者社区。欢迎加入!

通用

此骨架使用 PHP-DI 作为依赖注入容器,但您可以使用任何具有自动装配功能的 DI 容器。框架核心仅使用 ContainerInterface 的 get 和 set 方法。但是,在这种情况下,您需要编辑此骨架。此外,此骨架使用 Nyholm PSR http-message 实现,但您可以使用任何其他实现。

安装

您可以在当前目录中使用 composer 安装 le7 框架

composer create-project rnr1721/le7-framework .

在某个目录中

composer create-project rnr1721/le7-framework ./myle7framework

在任何包含 README.md 文件的文件夹中,您可以在其中找到有关引擎功能的信息

Web 服务器配置

Apache

这是 Apache 网络服务器的标准配置。此文件 (.htaccess) 已位于 public 文件夹中

RewriteEngine On
RewriteBase /

# Route everything else to index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]

## Folder structure of project

Nginx

Le7 引擎可能适用于 nginx,但我目前没有对其进行测试。将来,我将安装此服务器并提供 nginx 的配置

内置 PHP 服务器进行测试

$ ./runserver.sh

Workerman

我在 Workerman 中进行了检查,它工作正常。但问题是,我不知道如何使用 Workerman 提供静态文件。但就目前而言,作为一个 API 引擎,它在 Workerman 中相当有用

在 Workerman 中运行

$ php ./workerman.php

文件夹拓扑结构

PROJECT_ROOT
    App - application dir.
        Classes - Own classes for developed project
        Controller - Dir for controllers by default. Can change.
            Api - Api controllers
            Cli - CLI commands
            Web - Web controllers
        Locales - Gettext locales
        Middleware - User middlewares
        Model - User models for tables
        View - Templates for all themes and templates themes folders
            main - main theme templates
        ViewExtensions - Extensions for Twig, Smarty etc
    config
        di - Configuration of DI container
    public - Web server public dir
        libs - Theme-independent js, css, images etc
            bootstrap5 - bootstrap
            debugbar - debugbar assets for dev mode.
            fonts - Fonts
        themes - Themes directory
            main - Default theme (as example)
                css - Css files for main theme
                fonts - Fonts files for main theme
                images - Images files for main theme
                js - JS files for main theme
    uploads - Internal uploads dir
    var - Directory for cache, temp, logs and similar data
        cache - Cache folder
        containers - Di container folder (PHP-Di)
        logs - Logs folder if filesystem logs
        routes - cached routes data objects
        sessions - sessions dir if filesystem sessions
        temp - temp dir for any purposes
        templates_cache - templates cache for your template engine
        templates_compiled - compiled templates dir for your template engine