reyjhon/simple-php

Simple PHP 是一个轻量级的 Web 应用程序框架。

安装: 97

依赖: 0

建议者: 0

安全: 0

星标: 3

关注者: 3

分支: 0

开放问题: 0

类型:项目

v2.0.0-beta 2020-05-18 11:54 UTC

README

Latest Stable Version Total Downloads License Monthly Downloads

关于 Simple

Simple PHP 是一个轻量级的 Web 应用程序微框架。

  • 使用模型-视图-控制器模式
  • 简单的路由引擎
  • 在类中使用命名空间并自动加载
  • 带有方法过滤器的控制器
  • 应用 PSR-12 扩展编码标准
  • 可选使用 Twig 模板引擎
  • 具有资源友好连接的模型
  • 环境配置
  • 错误处理和报告
  • 使用 composer 轻松管理依赖

完整文档

https://simply-docs.herokuapp.com

Simple PHP 依赖

编码风格指南

您必须遵循此标准:https://www.php-fig.org/psr/psr-2/ 享受编码时光 :)

安装

通过 Composer:(推荐)

composer create-project reyjhon/simple-php
cd simple-php

视图

此微框架使用 twig 作为模板引擎。但是它是可选的。是的,您只能使用纯 html 而不使用 twig。

  • 视图必须位于 app/Views 目录。
  • 所有视图必须以 view 作为文件扩展名的前缀命名。例如:welcome.view.htmlproduct.view.html
  • 在应用程序配置中可以启用或禁用视图缓存

在渲染视图时:(使用 twig)

return view('welcome');

当视图在文件夹内时,包含 文件夹 然后 视图名称,两者由 分隔

return view('your_folder.welcome');

请阅读 twig 文档以获取更多信息:https://twig.symfony.com.cn/doc/2.x/

注意

  • 您的视图必须是一个有效的 html 文件。例如:welcome.view.html
  • 布局文件可以是 twig 文件。例如:layout.twigmaster.twig

在渲染普通视图时:(纯 html)

传递一个名为 normal 的第三个参数以识别您想要不使用模板引擎渲染的内容。

return view('welcome', [], 'normal');

注意

  • 您的视图必须是一个有效的 php 文件。例如:welcome.view.php
  • 普通渲染不支持继承
  • 第二个参数是要传递的变量。如果为空,则必须在渲染普通视图时初始化。

限制控制器仅允许认证用户访问

Action 后缀添加到您的函数名中。

例如:如果您在控制器中有名为 index 的方法

   public function index()

使其成为

public function indexAction()

然后将其添加到 'App/Controllers/Controller.php'

use App\Helper\Auth\AuthHelper as auth;
use Simple\Request;

并在 Controller.php 中创建一个新的 before 方法,如下所示

    public function before()
    {
        if(!auth::user()) {
           Request::redirect('/auth/index');
        }
    }

未认证的用户尝试访问您的受限控制器将被重定向到登录页面。

在视图中使用 auth

如果用户已认证,则用户变量不为 null。

  {% if user is null %}
      <p> Please login </p>
  {% else %}
      <p> Hello {{ user.name }} </p>  
  {% endif %}
  • {{ user.name }} 显示当前登录用户的名称。
  • {{ user.email }} 显示当前登录用户的电子邮件。
  • {{ user.id }} 显示当前登录用户的 ID。

验证

请参阅https://simply-docs.herokuapp.com/documentation/v1/lib/validation中的文档

文件上传(在开发中)

在控制器中使用文件上传对象

例如在您的 store 动作中

public function store(Request $request)
{
   $file = $request->file('profile_photo'); // profile_photo is the field name of the input type="file" element
   $file->upload('folder_name'); // specify the folder where the file is going to store, if upload success it wil return true otherwise false.
}

可用方法

  • getFileName() 返回上传文件的原始文件名
  • getUploadedFileName() 返回上传后文件的文件名
  • getFileSize() 返回上传文件的大小
  • getFileExtension() 返回上传文件的扩展名
  • getFileType() 返回上传文件的类型
  • upload($path) 上传到指定的路径

简单加密

简单框架提供使用密钥的加密库。这使用了 defuse/php-encryption,您可以在此处了解更多信息:https://github.com/defuse/php-encryption

在使用加密之前,请运行此命令一次

php cli key:generate

加密

加密文本或字符串

use Simple\Security\SimplyEncrypt;

然后您可以使用它作为

$encrypted = SimplyEncrypt::encrypt('secret text');

解密

解密文本或字符串

use Simple\Security\SimplyDecrypt;

然后您可以使用它作为

$decrypted = SimplyDecrypt::decrypt($ciphertext);

变量转储

替代 var_dump,请使用 dump

dd($var)

文档将很快更新...