betocampoy/champs_framework

实现了主要核心功能(MVC、路由、控制器、模型、认证、压缩...)的PHP框架

dev-master 2024-04-22 19:04 UTC

This package is auto-updated.

Last update: 2024-09-22 19:54:51 UTC


README

Maintainer Source Code PHP from Packagist Latest Version Software License Build Quality Score Total Downloads

Champs Framework 仅用于研究目的开发。不要在生产环境中使用。

Champs Framework 是为了研究和学习目的开发的。不要在生产环境中使用。

主要资源 [主要资源]
  • MVC 架构 [MVC 架构]
  • 带友好 URL 的路由层 [带友好 URL 的路由层]
  • 模型层以简化对 MySql 数据库服务器的访问 [模型层,用于简化对数据库的访问]
  • 使用 league/plates 包的视图层 [使用 league/plates 包的视图层]
  • 控制器层实现了 CSRF 控制,并进行了输入验证(使用 rakit/validation 包) [控制器层已实现 CSRF 控制,并进行了输入验证(使用 * rakit/validation* 包)]
  • 消息对象以标准化所有应用中的消息 [消息对象,用于在所有应用中标准化消息]
  • 会话对象以标准化会话操作 [会话对象,用于标准化会话操作]
  • 基于用户、角色和权限的认证 [基于用户、角色和权限的认证]

安装 [安装]

ChampsFramework 可通过 Composer 获得

干净的 composer.json 文件示例。

{
    "authors": [
        {
            "name": "Creator Author Name",
            "email": "author@email.com",
            "homepage": "url.of.project",
            "role": "Developer"
        }
    ],
    "description": "Description of you project",
    "config": {"vendor-dir": "vendor"},
    "autoload": {
        "psr-4": {"Source\\": "Source/"}
    },
    "require": {
        "php": "^7.4",
        "betocampoy/champs_framework": "1.0.*"
    }
}
"betocampoy/champs_framework": "1.0.*"

或者运行

composer require betocampoy/champs_framework

初始配置 [初始配置]

1. 在项目根目录下创建 .htaccess 文件 [创建 **

.htaccess*** 在项目根目录]

.htaccess 文件示例 [示例 .htaccess 文件]

RewriteEngine On
Options All -Indexes

## ROUTER WWW Redirect.
#RewriteCond %{HTTP_HOST} !^www\. [NC]
#RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

## ROUTER HTTPS Redirect
#RewriteCond %{HTTP:X-Forwarded-Proto} !https
#RewriteCond %{HTTPS} off
#RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# ROUTER URL Rewrite
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php?route=/$1 [L,QSA]
2. 在项目根目录下创建 index.php 文件 [创建 **

index.php*** 在项目根目录]

index.php 文件示例 [示例 index.php 文件]

<?php
ob_start();
date_default_timezone_set('America/Sao_Paulo');
require __DIR__ . "/vendor/autoload.php";

/**
 * BOOTSTRAP
 */

use BetoCampoy\ChampsFramework\Session;
use BetoCampoy\ChampsFramework\Router\Router;
use function ICanBoogie\pluralize;

$session = new Session();
$route = new Router(url(), ":");
$route->namespace("Source\App");

/**
 * EXAMPLE THEME ROUTES
 */
$route->group(null);
$route->get("/", "WebExample:home");
$route->get("/terms", "WebExample:terms");
$route->get("/contact", "WebExample:contact");

/**
 * CREATE YOUR CUSTOM ROUTES BELOW
 */


/**
 * CREATE YOUR CUSTOM ROUTES ABOVE
 */

/**
 * ROUTE DISPATCH
 */
$route->dispatch();


/**
 * ERROR REDIRECT
 */
if ($route->error()) {
    $route->redirect( $route->route("default.error", ["errcode" => $route->error()]));
}

ob_end_flush();

文档 [文档]

要打开 Champs Framework 文档,请访问 /champs-docs 路由。

要打开 Champs Framework 文档,请访问 /champs-docs 路由。

贡献 [贡献]

有关详细信息,请参阅 CONTRIBUTING

请参阅 CONTRIBUTING 以获取更多详细信息。

支持 [支持]

安全:如果您发现任何与安全相关的问题,请通过电子邮件 beto.campoy@gmail.com 联系,而不是使用问题跟踪器。

如果您发现任何与安全相关的问题,请通过电子邮件 beto.campoy@gmail.com 联系,而不是使用问题跟踪器。

谢谢 [感谢]

致谢

许可证

MIT 许可证(MIT)。有关更多信息,请参阅 许可证文件