fccn / webapp-tools-common
开发Web应用程序时使用的常用工具集合
Requires
- php: >=5.5.0
- ircmaxell/random-lib: ^1.2
- monolog/monolog: ^1.17
Requires (Dev)
- codeception/codeception: ^2.3
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 文件。