fccn/webapp-tools-common

开发Web应用程序时使用的常用工具集合

1.0.1 2017-11-06 15:15 UTC

This package is auto-updated.

Last update: 2024-09-13 03:49:14 UTC


README

此集合为webapp骨架项目提供常用工具,例如站点配置单例加载器、单例文件记录器和生成内容的一组实用函数。

安装

您可以使用composer在项目中安装此集合。

composer require fccn/webapp-tools-common

集合组件

以下组件是此集合的一部分。

站点配置加载器

这是一个单例类,它为应用程序配置提供一个集中位置。配置是从一个包含所有配置选项数组的单个PHP文件中加载的。只要主配置文件(由配置加载器加载)需要剩余的配置文件,就可以使用多个配置文件。

配置

可以在CONFIG_FILE变量中定义配置文件的路径。在加载此集合之前,在代码中添加define("CONFIG_FILE", <path-to-your-config>);。如果未设置配置文件的路径,则默认为根目录中的config.php。

以下是一个配置文件可能内容的示例

$c = array(
  "install_path"    => $fs_root,
  "base_path"       => "",
  "assets_path"     => $fs_root."/assets",
  "logfile_path"    => $fs_root."/logs/test.log",
  "logfile_level"     => "DEBUG",
));

配置文件必须遵循一组指令,才能在配置加载器中正确加载

  • 配置设置必须采用键=>值的形式
  • 设置必须在名为$c的数组中定义
  • 可以在配置中定义其他变量,但配置加载器只会在$c中查找键值对

配置文件的示例可以在samples/config_sample.php中找到。请

使用方法

要访问配置加载器,请使用\Fccn\Lib\SiteConfig::getInstance()。要获取配置值,请使用get()方法,例如,要获取logfile_path的值,请使用\Fccn\Lib\SiteConfig::getInstance()->get('logfile_path')

您还可以通过使用set()方法添加新的配置或按需替换配置,例如\Fccn\Lib\SiteConfig::getInstance()->set('key','value')。然而,这些值不会永久存储在配置文件中。

文件记录器

文件记录器是Monolog的可配置包装器。它提供了一个单例类来写入调试、通知、信息、警告和错误消息。它使用配置加载器来加载日志文件路径和日志级别的设置。

配置

需要在应用程序配置文件$c数组中添加以下键值对

$c = array(
    ...
    "logfile_path"    => "path-to-log-file",
    "logfile_level"     => "DEBUG|ERROR|INFO|NOTICE|WARNING",
    ...
  )

使用方法

要写入日志行,可以使用error()、warn()、info()、notice()和debug()方法。例如,要写入警告日志行,请使用\Fccn\Lib\FileLogger::warn('some warning')

要获取文件记录器的单例实例,请使用\Fccn\Lib\FileLogger::getInstance()

Web应用程序实用工具

这展示了一个由webapp骨架项目使用的实用工具集合。目前,以下函数可用

  • compress_params - 将参数数组转换为压缩字符串,用于GET请求
  • decompress_params - 从上述压缩字符串中检索参数数组

配置

使用Web应用程序实用工具无需配置

使用方法

//compress parameters to use on a GET request
\Fccn\Lib\WebAppUtils::compress_params('param1' => 'val1', 'param2' => 2)

//retrieve parameters from a GET parameter
\Fccn\Lib\WebAppUtils::decompress_params($_GET['params']);

测试

此项目使用codeception进行测试。要在项目文件夹根目录中运行测试,请调用composer test

贡献

请阅读 CONTRIBUTING.md 以了解我们的行为准则以及向我们提交拉取请求的流程。

版本控制

我们使用 SemVer 进行版本控制。有关可用的版本,请参阅此仓库的 标签

许可协议

本项目采用 MIT 许可协议 - 详细内容请参阅 LICENSE.md 文件。