formula21/php-core

该项目封装了所有辅助类,用于成功构建其他项目。

1.1.0 2022-06-16 15:33 UTC

This package is auto-updated.

Last update: 2024-09-16 20:47:41 UTC


README

PHP-CORE official LOGO

简介

作为项目,PHP-Core是一个包含其他API所需和可扩展的最必要功能的包。这些核心功能可以随时使用,以便使问题的执行更容易。该库包含许多令人兴奋的功能,并且可以由其他开发人员从核心进行扩展。

功能

  1. HTTP头库

    • 响应头和API
      • 完整的遗留缓存(带有ETAG和Expires)头。
      • 易于实现的API运行器。
    • 请求头和API
      • If-None-Match解码并重新发送相同的ETAG和Expires头。
    • 请求和响应接口及抽象类有助于实现其他HTTP响应。
    • 与响应常量紧密相连的响应代码。
  2. 文件系统库

    • 平台无关构建。
    • 一个基础接口用于扩展功能,并且是所有组件的父接口。建议开发人员以相同的方式进行此操作。例如
      interface MyFilesystemComponentInterface extends \Anweshan\Filesystem\FilesystemInterface
      {
         # Some code blocks
      }
    • 包含三个组件
      • 目录系统,也称为目录
        • DirectoryInterface定义了包含目录的方法及其文档。
        • 可以在目录内的任何资源上执行所有基本功能(限于OS设置的权限)。
        • 我们甚至可以在与目录相对的任何路径上写入streamfile,在非存在的路径上,该代码将自动创建。也提供了适当的回退。
      • 流系统,也称为流
        • StreamInterface定义了一个流,基本上是在内存中临时存储数据的处理器。
        • 可以将流写入目录,同时可以从文件路径将其转换为流。
        • 流可以在需要时充当伪文件(即它可能或可能没有路径,但包含所有FileInterface属性)。
      • 文件系统,也称为文件
        • FileInterface定义了一个文件,我想不需要解释。
        • 文件和流是可互转的,同时都可以写入目录。
    • 所有组件都通过一个接口FilesystemInterface封装。
    • 只有当流至少具有文件名或扩展名或两者同时存在时,才能将其视为文件。
    • 时间戳自动计算,如下所示
      • 最后修改时间戳
      • 最后访问时间戳
      • 创建时间戳
    • Mime根据经过战斗考验的ralouphie\mimey自动检测。
    • 内容长度也自动计算。
    • 异常
      • DirectoryInterface的所有异常都封装在DirectoryException中,除了InvalidArgumentException

        try{
         // Some code block
        }catch(\Anweshan\Filesystem\Directory\DirectoryException $e){
         var_dump($e);
        }
      • FileInterfaceStreamInterface的所有异常分别封装在FileExceptionStreamException中,除了InvalidArgumentException
    • 哈希
      • 哈希目录
      • 哈希文件和/或流。
        • 哈希分为两类
          1. 哈希文件(或资源)。[只有当流具有文件路径、文件名或文件扩展名时才实现流]
            • hash_file
            • hash_hmac_file
          2. 哈希文件(或资源)的内容。
            • hash
            • hash_hmac
            1. 实例的哈希是不可变的,除非在相应的资源上获得了LOCK_EX,否则默认情况下没有锁。如果没有锁,则

            哈希值即使内容改变也不会改变。但是,在实施后可以进行此类检查。

    • 大小
      • 目录的大小。
      • 文件和流的大小是计算并不可变的。

      注意:由于PHP的整数类型是有符号的,并且许多平台使用32位整数,因此一些文件系统函数可能会为大于2GB的文件返回意外的结果。

  3. 实用工具

    • 参数实用工具

      该类封装了PHP中大多数魔法方法。它帮助我们定义未知属性,无论何时需要,稍后获取它们。还可以执行其他广泛的功能。

      • 获取类中定义的属性
        $x = new \Anweshan\Util\Argument();
        $x->y = 24;
        $key = 'User'
        $x->$key = array();
        foreach(\Anweshan\Util\Argument::get_object_vars($x) as $k=>$v){
         var_dump($k.'=>'.$v);
        }
    • 浏览器实用工具
      • 所有与浏览器相关的功能。
    • Util类
      • 从URL中移除单个查询参数。
      • 将所有查询参数组合到URL中。
      • SantizePath - 通过删除无效和多余的字符来清理路径到资源。
      • makePath - 创建路径
      • makeURL - 创建URL。
      • trim - 实现 PHP 的 trim 原生函数,但第二个参数可以是任意数量的字符。
      • makeDirectory - 创建目录。
      • makeDateTime - 从日期时间创建适当的日期时间实例。
      • rmdir - 递归删除目录及其内容。原生的 rmdir 在非空目录上不起作用。如果在发生任何异常时,有一个回退。
      • random_bytes: 如果您缺少 random_bytes 或 openssl_random_bytes,我们将使用此选项。
  4. 数据库系统(抽象层)

    • 这是一个库,它通过提供强大的查询构建器和易于使用的模式构建器,在PDO扩展之上实现了一个抽象层。该库的目标是提供一种统一的方式来与数据库交互,无论底层的关系型数据库管理系统是什么。
    • 目前,我们官方支持 MySQL、PostgreSQL、Microsoft SQL 和 SQLite。我们还提供了对 Firebird、IBM DB2、Oracle 和 NuoDB 查询构建器的实验性支持——没有任何关于错误修复和更新的承诺。
    • 将很快提供文档
  5. 图像处理系统

  • 以下详细描述了系统,称为“I.M.S”。

IMS ~ 图像处理系统

为了处理图像,我们使用了流行的库 Leauge\Glide 的许多功能,但是我们也改进了一些小的细节,这给了项目一个全新的面貌。我们向经过实战考验的库 Intervention\Image 表示我们的感谢。

额外的文档将很快提供

安装

如果您系统中有 composer,并且它位于 %PATH% 变量的位置,那么您可以使用下面的代码块继续。

$ composer require formula21/php-core

或者 您始终可以使用 php CLI 和 composer.phar,在 CLI 中执行所有 composer 命令。

  • 要获取 composer.phar,请访问 https://composer.php.ac.cn/download/ 的“命令行安装”部分。
  • 或者,只需使用 composer.bat 或编辑文件到所需的扩展名,保持所有命令相同(或在 CLI 中直接连续运行)。

然后,

$ php composer.phar require formula21/php-core

请检查所有软件包和存储库是否已从存档中提取并正确安装。如果出现错误,请提出问题。

这样,希望安装了您项目的供应商的最新版本的 php-core

操作它?

如果您想操作位于路径/to/dir/of/images(可以是完整路径或相对路径)的目录中的图像,您可以根据文档使用我们的操作参数。您现在可以在 examples\image.php 文件 中看到我们如何操作图像。

扩展选项

上述所述的选项仅限于我的想象力。您可以自由地按需扩展项目。一些扩展包括

  1. 使用 Imagick 作为驱动程序,用户可以将其扩展到文档操作,例如生成 PDF "预览",以及后处理,使用缓存以供后续使用。

  2. 可以在 Cascading Stylesheet CSSJavaScript JS 文件上执行操作,例如压缩它们,获取子资源完整性,缓存等。

  3. 可以对多媒体文件进行操作,例如为视频文件生成预览图像、缩略图(基于第 n 秒的剪辑),缓存视频和音频文件的部分,字节数实现等。

  4. 可以添加文档、电子表格、演示文稿和其他流行文件类型的操作和组合。

简而言之

PHP-CORE social media image

许可证

该项目使用 MIT 许可证授权。必须将许可证副本附在存储库中。许可证内容如下

MIT License

Copyright (c) 2021 Anweshan Roy Chowdhury

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
~ @formula21 - (Anweshan Roy Chowdhury)