vulcanphp/hyper-core

Hyper MVT 框架的核心类

v1.0.0 2024-08-09 09:42 UTC

This package is auto-updated.

Last update: 2024-09-09 09:46:21 UTC


README

Hyper MVT 框架的核心类和功能

简介

HyperCore 是 Hyper MVT 框架的骨干,提供核心类、实用函数和辅助方法,以简化 Web 开发。本文件详细说明了 HyperCore 中所有可用的类和函数。

核心类

Application

  • 类: application
  • 描述: 应用程序容器,用于管理应用程序的整体生命周期。

Database

  • 类: database
  • 描述: 用于管理数据库连接和操作的 PDO 数据库容器。
  • 示例
    use hyper\database;
    $database = new database([
        'driver' => 'sqlite', // mysql
        'file' => __DIR__ . '/../sqlite.db', // required when driver is sqlite
        'host' => 'localhost',
        'user' => '{user}',
        'password' => '{password}',
        'port' => 3306,
        'name' => 'dbname',
        'charset' => 'utf8mb4'
    ]);
    var_dump($database->prepare('SELECT * FROM students'));

Debugger

  • 类: debugger
  • 描述: 错误跟踪器和日志查看器,用于调试和记录应用程序错误。

Request

  • 类: request
  • 描述: 用于处理和处理的 HTTP 请求类。

Response

  • 类: response
  • 描述: 用于管理传出响应的 HTTP 响应类。

Middleware

  • 类: middleware
  • 描述: 用于处理 HTTP 请求路由的中间件类。
  • 示例
    use hyper\middleware;
    
    $middleware = new middleware();
    $middleware->add(callback);
    $middleware->handle(request: $request);

Router

  • 类: router
  • 描述: 用于定义和处理应用程序路由的路由器类。
  • 示例
    use hyper\router;
    
    $router = new router(middleware: $middleware);
    $router->add('/', fn() => 'Hello World');
    $response = $router->dispatch();
    $response->send();

Model

  • 类: model
  • 描述: 用于处理与 ORM 和表单处理的数据库交互的模型类。
  • 示例
    use hyper\model;
    
    class student extends model {
        protected string $table = 'students';
    
        public string $name;
        public int $age;
        public string $department;
    }
    
    dump(student::get()->result());

Query

  • 类: query
  • 描述: PHP PDO 查询构建器和执行器。
  • 示例
    use hyper\query;
    $query = new query(database: $database, table: 'students');
    dump($query->result());

Session

  • 类: session
  • 描述: 用于管理用户会话的会话类。

Template

  • 类: template
  • 描述: 用于渲染视图的模板引擎类。
  • 示例
    use hyper\template;
    $engine = new template(__DIR__);
    var_dump($engine->render('welcome', ['message' => 'Welcome to App']));

Translator

  • 类: translator
  • 描述: 用于翻译文本的 Google 翻译器类。

实用类

Cache

  • 类: cache
  • 描述: 用于缓存数据的缓存类。
  • 示例
    use hyper\cache;
    $cache = new cache('home');
    var_dump($cache->load('time', fn() => 'Now :' . time(), '5 minutes'));

Collect

  • 类: collect
  • 描述: 用于处理数据集合的集合类。

Form

  • 类: form
  • 描述: 用于构造和管理表单的表单构建器类。
  • 示例
    use hyper\utils\form;
    
    // independent usage
    $form = new form(request: $request, fields: [['type' => 'text', 'name' => 'name']]);
    // usage from model
    $form = new form(request: $request, model: $student);
    
    // add new form field
    $form->add(['type' => 'email', 'name' => 'email', 'required' => true]);
    
    // validate form
    if($form->validate()){
        var_dump($form->getData());
    }else{
        echo $form->render();
    }

Hash

  • 类: hash
  • 描述: 用于散列和加密的类。

Image

  • 类: image
  • 描述: 用于管理图像操作的图像辅助类。
  • 示例
    use hyper\utils\image;
    $image = new image(__DIR__ . '/image.png');
    $image->compress(50);
    $image->resize(720, 360);
    $image->rotate(90);
    $image->bulkResize([540 => 540, 60 => 60]);

Paginator

  • 类: paginator
  • 描述: 用于处理分页的分页类。
  • 示例
    use hyper\utils\paginator;
    $paginator = new paginator(total: 500, limit: 20);
    $paginator->setData([...]);
    var_dump($paginator->getData(), $paginator->getLinks());

Ping

  • 类: ping
  • 描述: 用于 HTTP ping/cURL 辅助类的类。
  • 示例
    use hyper\utils\ping;
    $http = new ping();
    $http->download(__DIR__.'/downloads/file.jpg');
    var_dump($http->get('http://domain.com/download-file'));

Uploader

  • 类: uploader
  • 描述: 用于管理文件上传的文件上传类。
  • 示例
    use hyper\utils\uploader;
    $uploader = new uploader(uploadDir: __DIR__ .'/uploads', extensions: ['jpe', 'png'], multiple: true);
    var_dump($uploader->upload($_FILES['upload']));

Validator

  • 类: validator
  • 描述: 用于验证 HTTP 输入的验证器类。
  • 示例
    use hyper\utils\validator;
    $validator = new validator(request: $request);
    var_dump($validator->validate([
        'name' => ['required', 'min:10', 'max:60'],
        'email' => ['required', 'email'],
    ]));

辅助类

Form

  • 类: form
  • 描述: 用于从模型对象属性中提取表单字段的特质。
  • 示例
    use hyper\model;
    use hyper\helpers\form;
    
    class student extends model {
        use form;
    
        protected function form(): array {
            return [
                'name' => ['type' => 'text', 'required' => true],
                'email' => ['type' => 'email', 'required' => true],
                'gender' => ['type' => 'radio', 'options' => ['M' => 'Male', 'F' => 'Female']],
            ];
        }
    }
    
    $form = new form(request: $request, model: new student());
    var_dump($form->render());

Mail

  • 类: mail
  • 描述: PHP 内置的邮件类。
  • 示例
    use hyper\helpers\mail;
    $mail = new mail();
    $mail->from('shahin.moyshan2@gmail.com', 'Shahin Moyshan');
    $mail->replyTo('shahin.moyshan2@gmail.com');
    $mail->subject('Test Mail');
    $mail->body('Hello World, This is Test Mail From Shahin Moyshan');
    $mail->send();

ORM

  • 类: orm
  • 描述: 数据库交互的对象关系映射器。
  • 示例
    use hyper\model;
    use hyper\helpers\orm;
    
    class student extends model {
        use orm;
    
        protected function orm(): array {
            return [
                'department' => ['has' => 'one', 'model' => department::class],
                'subjects' => ['has' => 'many-x', 'model' => subject::class, 'table' => 'students_subjects'],
                'results' => ['has' => 'many', 'model' => result::class, 'formIgnore' => true],
            ];
        }
    }
    
    var_dump(student::with(['subjects', 'results', 'department'])->paginate(20));

Uploader

  • 类: uploader
  • 描述: 管理模型上传的上传助手。
  • 示例
    use hyper\model;
    use hyper\helpers\uploader;
    
    class student extends model {
        use uploader;
    
        protected function uploader(): array {
            return [
                [
                    'name' => 'photo',
                    'multiple' => false,
                    'uploadTo' => 'students',
                    'maxSize' => 1048576, // 1MB
                    'compress' => 75,
                    'resize' => [540 => 540],
                    'resizes' => [140 => 140, 60 => 60]
                ]
            ];
        }
    }

Vite

  • 类: vite
  • 描述: 资产管理的 Vite 助手类。

快捷函数

Application

  • 函数: app()
  • 描述: 返回应用程序实例。

Request

  • 函数: request()
  • 描述: 返回请求实例。

Response

  • 函数: response()
  • 描述: 返回响应实例。

重定向

  • 函数: redirect()
  • 描述: 重定向到不同的 URL 并返回空值。

Session

  • 函数: session()
  • 描述: 返回会话实例。

Router

  • 函数: router()
  • 描述: 返回路由实例。

Database

  • 函数: database()
  • 描述: 返回数据库实例。

Query

  • 函数: query()
  • 描述: 返回查询构建器实例。

Template

  • 函数: template()
  • 描述: 返回一个新的模板实例。

URLs

  • 函数
    • url(string $path = ''): string - 返回给定路径的 URL。
    • public_url(string $path = ''): string - 返回给定路径的公共 URL。
    • asset_url(string $path = ''): string - 返回给定路径的资产 URL。
    • media_url(string $path = ''): string - 返回给定路径的媒体 URL。
    • request_url() - 返回当前请求的 URL。
    • route_url() - 返回路由 URL。

目录

  • 函数
    • app_dir() - 返回应用程序目录。
    • root_dir() - 返回根目录。

调试

  • 函数
    • dump() - 输出数据以进行检查。
    • dd() - 输出数据并停止执行。
    • debugger() - 显示错误详情并记录应用程序步骤。

环境

  • 函数: env()
  • 描述: 获取环境变量。

CSRF

  • 函数
    • csrf_token() - 返回 CSRF 令牌。
    • csrf() - 返回带有 HTML 隐藏输入的 CSRF 令牌。

用户

  • 函数: user()
  • 描述: 返回已登录的用户。

集合

  • 函数: collect()
  • 描述: 返回一个新的 collect 类实例。

Cache

  • 函数: cache()
  • 描述: 返回一个新的 cache 类实例。

翻译

  • 函数: __()
  • 描述: 翻译文本。

Vite

  • 函数: vite()
  • 描述: 返回一个新的 vite 类实例。

模板

  • 函数: template_exists()
  • 描述: 检查模板是否存在。

站点设置

  • 函数
    • setting(string $layer, string $key, $default): mixed - 返回此设置的值。
    • settings() - 返回设置抽屉。

结论

HyperCore 提供了一套全面的核心理念、实用方法和助手类,以使使用 Hyper MVT 框架进行 Web 开发高效且愉快。无论是处理 HTTP 请求、管理数据库还是处理模板,HyperCore 都能满足您的需求。