infosophie / tools
This package is not auto-updated.
Last update: 2024-09-25 03:29:43 UTC
README
Infosophie/Tools 是一组PHP编程工具的集合,即一些有用的基本方法,可以帮助您不必每次都重新发明轮子。Infosophie/Tools 包括“调试”、“错误”、“配置”、“目录”和“资产”模块。
Infosophie\Tools 在GPL2.0下发布,即它是开源的。您可以使用、更改和分发它,但只能根据相同的许可证(GPL2.0)。
安装
安装 \Tools 有两种方式。
1. 使用 Composer 安装
如果您了解 Composer
Infosophie/Tools 已在 Packagist 上发布(https://packagist.com),与 Composer(https://getcomposer.org/)一起使用。为了安装,只需在您的 composer.json 文件的 require 部分添加以下行
"infosophie/tools": "master"
即可
"require": {
[... other items ...],
"infosophie/tools": "master"
}
Composer 的自动加载方法将自动包含所需的 php 文件。
如果您不了解 Composer
如果您不了解 Composer,您绝对应该了解它。如果您计划开发 PHP 项目,它是一个非常有用的工具!简单来说,Composer 是一个管理在线发布的 PHP 库的工具(如果您了解 Linux 中的 'apt':它有些类似)。
如果您想了解更多关于 Composer 的信息,我建议您参考网络上的相关资源,例如 https://getcomposer.org/,并在熟悉上述命令后返回!
如果您不想使用 Composer,请继续阅读下一章。
2. 手动安装
下载
要手动安装 Infosophie\Tools,请从 https://go.infosophie.de/infosophie-tools 下载安装包
将文件复制到 Web 服务器
解压安装包并将文件复制到您的 Web 服务器,然后在您的 PHP 项目的选择子文件夹中提取。我将把该子文件夹相对于您的 PHP 脚本的路径称为 'path/to/infosophie/tools'。
包含文件
为了使用 Infosophie/Tools 的方法,您首先需要包含/require 相应的 php 文件。这可以通过在 Infosophie/Tools 的根文件夹中包含/require include.php 文件来完成。此文件将递归地包含所有所需的文件
require_once('path/to/infosophie/tools/include.php');
如果您不想使用所有工具,您也可以单独包含/require 它们,如下所示
require-once('/path/to/infosophie/tools/src/[Tool].php');
其中 [Tool] 必须替换为相应的工具名称,例如要使用 Config 工具,请编写
require-once('/path/to/infosophie/tools/src/Config.php');
考虑到您应用程序的性能,我建议仅在您实际使用时才加载文件!
依赖类
一些工具本身使用库中的其他工具。根据 composer 的设计,Tools #不包含# 任何文件,因为 composer 创建了一个包含所需所有内容的单个 php 文件。我们在手动安装中也必须这样做。
如果您包含/require path/to/infosophie/tools/include.php,您不必关心以下内容,因为该文件将包含所需的所有内容。但如果您单独包含/require 工具,您需要关注以下内容。
例如,Err-Tool 会再次使用 Debug-Tool。因此,如果我们想使用 Err-Tool,我们不仅需要包含 Err 文件,还需要包含 Debug 文件
require_once('path/to/infosophie/tools/Debug.php');
require_once('path/to/infosophie/tools/Err.php');
现在 Err-Tool 会再次使用第二个类,除了 Err 类之外,它还是 Infosophie\Tools\Err\Exception 类。因此,我们还需要包含此文件
require_once('path/to/infosophie/tools/Debug.php');
require_once('path/to/infosophie/tools/Err.php');
require_once('path/to/infosophie/tools/Err/InfosophieException.php');
如果您想知道需要哪些文件进行引用,您可以阅读本手册,或者直接尝试在开发环境中运行您的脚本,并监控如果类不存在时出现的错误。命名空间反映了文件夹结构和文件名。如果PHP缺少例如类 "Infosophie\Tools\Err\InfosophieException",您需要像上面那样引用文件 "/path/to/infosophie/tools/Err/InfosophieException.php"。
如何使用Infosophie/Tools
一般策略
要使用工具,请在您的文件顶部添加相应的 "use" 命令(注意反斜杠!)
use Infosophie\Tools\Debug;
use Infosophie\Tools\Err;
use Infosophie\Tools\Dir;
use Infosophie\Tools\Config;
use Infosophie\Tools\Asset;
如果您打算不使用某些工具,为了更好的性能,请省略它们。如果您手动安装了Infosophie/Tools并且未包含/引用一个或多个工具,您将无法使用它们!
要了解如何使用实际的方法,请参考以下每个工具的相关章节!
如何使用Infosophie/Tools/Asset
如何使用Infosophie/Tools/Config
一般概念
主要用途
Infosophie\Tools\Config用于加载、读取和管理您项目的配置参数。有三种基本方法可以使用
- Config::load() - 此方法从本地磁盘加载配置文件,并在您的项目中的任何地方提供其内容。
- Config::get('key') - (在加载配置文件之后)从配置文件返回 'key' 的值
- Config::form() - 渲染包含用于编辑所有(或部分)配置参数的HTML表单的页面(或页面部分)。
由于配置数据在您的项目中全局使用,我们不需要从Config类创建实例(对象),而应使用它静态地,也就是说,我们不需要调用类似 $config = New Config(); 的内容,只需调用方法静态地,如下
Config::load();
$value = Config::get($key);
等等...
存储区域
Config有三个配置存储区域
- 默认值
- 配置文件中的值
- 运行时值
区域2,即配置文件中的值的目的是显而易见的:它包含存储在该配置文件中的设置,以便通过Config::get()检索。这是工具的主要目的。
但有时您可能使用无法存储到此文件的参数,因为它们仅在运行时出现,例如依赖于用户输入或当前服务器配置的值。如果有理由覆盖配置文件中的值,您可以使用Config::setRuntime()添加具有相同键的值。之后,Config::get()不会返回配置文件的值,而是返回使用Config::setRuntime()设置的值。
相比之下,有些值可能没有存储在配置文件中,而您的方法仍然需要它们。如果配置文件中没有这些值,您需要提供默认值!您不需要在您的方法中硬编码这些值,而可以使用Config::setDefault()在脚本启动时运行时设置所有这些值。使用Config::setDefault()设置的值只有在相应的设置在配置文件中未定义时才会由Config::get()返回。
简而言之:Config::setDefault()设置在配置文件中未设置时使用的值,Config::setRuntime()设置覆盖配置文件值的值!
另请参阅
- Config::setDefault()
- Config::setRuntime()
系统设置
Infosophie\Tools\Config在加载时本身设置了一些配置设置。这代表一些有用的值,例如例如包含由斜杠分隔的请求URI部分的数组(键'_request_uri_array')。这对于例如RESTful API或使用漂亮URL等很有用。
这些“系统设置”总是以下划线(_)开头,以避免与项目的设置混淆,并且它们存储在运行时区域,即它们不能被配置文件中的设置覆盖。
尽管可以使用 Config::setRuntime() 覆盖它们,但我建议不要这样做,而应该如果想要更改它们,则创建一个副本。
系统设置是以与其他设置相同的方式检索的,即使用 Config::get(),只需传递以下划线开头的键。
参考
方法:Config::load([file])
加载配置文件。如果不提供 [file] 参数,Config 假定配置文件名为 config.php,并且位于项目的根目录中(即客户端请求的主要脚本文件所在的文件夹)。
配置文件必须是一个有效的 php 文件,返回包含所有配置值的数组。因此,其基本结构如下
<?php
return [
'cfg_key_1' => 'the value',
'cfg_key_2' => 23,
'whatever_you_call_it' => 'etc...'
];
您不仅可以使用字符串或数字作为值,还可以使用数组来处理复杂数据
<?php
return [
'cfg_key_1' => 'the value',
'cfg_key_2' => [
'this_is' => 'a sub arry',
'with_key-value-pairs' => 'itself',
],
'whatever_you_call_it' => 'etc...'
];
如何适当地在您的代码中使用这些值取决于您。如果您在包含数组的配置键上调用 get 方法,它将返回该数组
$key_2 = Config::get('cfg_key_2');
print_r($key_2);
将具有以下输出(假设上述示例文件)
Array ( [this_is] => a sub arry [with_key-value-pairs] => itself )
方法:Config::get($key)
这是在运行时检索配置值的主要方法。一旦使用了 Infosophie\Tools\Debug 类,您就可以在代码的任何地方使用此方法。它将返回作为第一个和唯一参数传递的键的相应值。
Config::get() 首先在运行时存储中搜索相应的值,如果找到则返回此值。如果相应的键不在运行时存储中,Config::get() 将在配置文件中搜索。如果该键也不存在于那里,它最终将在默认值存储中搜索。如果键在任何地方都不存在,它将返回布尔值 FALSE。有关更多信息,请参阅“存储区域”章节。
方法:Config::setRuntime($key, $value)
设置配置值到运行时区域
参数
$key:传递设置值的键
$value:传递配置值
返回
返回 void(不返回任何内容)
另请参阅
- 有关更多信息,请参阅“存储区域”章节。
方法:Config::setDefault($key, $value)
方法:Config::htmlForm([$array])
返回用于编辑配置文件的完整表单的 html 代码。
方法:Config::storeForm()
将编辑表单(参见 Config::htmlForm())中做出的更改存储到配置文件中。表单数据将直接从全局请求数组 ($_REQUEST) 中检索。此方法仅与 Config::htmlForm() 提供的 html 表单结合使用。
方法:Config::debug()
此方法不打算用于生产环境,仅供开发使用。它以人类可读的 json 格式将所有当前配置设置发送到 STDOUT(即浏览器)以供调试。
方法:Config::init()
为了在加载时自动准备 Config 以供使用,此方法在文件包含/要求时调用一次,在运行时不应该再次调用。为了可调用,即使该方法不打算使用,该方法也必须公开!