machitgarha / phirs
跨平台用户目录路径,例如配置和缓存
Requires
- php: ^7.4|^8.0
- symfony/filesystem: 5.4
Requires (Dev)
- php: ^7.4|^8.0
- phan/phan: ^5.3
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-09-29 06:14:41 UTC
README
一个提供特定平台用户目录路径(如配置和缓存)的库。受dirs-rs启发。
特性
-
多平台。 提供跨平台路径,以及特定平台的路径。使您的应用在所有地方运行或针对特定平台。有关更多详细信息,请参阅平台支持。
-
可定制。 添加对特定平台的支持很容易。
-
设计良好。 提供良好的设计和简单的抽象(借助强大的PHP接口和特性)。
-
经过充分测试。 库的许多部分都有单元测试覆盖。在CI工具的帮助下,它也持续地对主要平台进行测试。
为什么?
在编写控制台应用程序(甚至图形应用程序;谁知道呢,人们可能在不久的将来开始用PHP编写图形应用程序),有时你需要一个位置来
- 存储您的配置,并在将来的运行中重用它,
- 创建缓存文件并提高应用程序的性能,
- 创建媒体并将其放置在合理的位置,
- 等等。
为了获得最佳结果,位置应该是跨平台的、永久的、可访问的(即可读和可写)、众所周知的并且非相对的。
Phirs可以帮助你在这方面的。
注意:该库不保证所有提供的路径都满足上述所有条件,尽管它有助于你实现它们。原因是性能,以及不同用户可能有不同的需求(例如,一个人可能检查路径是否存在,一个人可能假设它存在)。理论上,在标准环境和标准路径下,所有这些条件都满足(尽管目录可能实际上不存在)。
但还有另一个库!
为什么不用Basedir呢?
回到特性部分。拥有这些特性将需要进行重大重写和巨大的向后兼容性破坏。此外,由于某些未知的原因,Basedir不再在Packagist上提供。
要求
仅PHP 7.4+。
安装
和其他PHP库一样简单
composer install machitgarha/phirs
基本用法
对于大多数常见情况,以下是一个简单的用法
use MAChitgarha\Phirs\DirectoryProviderFactory; use MAChitgarha\Phirs\Util\Platform; // Get a provider for the current platform $dirProvider = DirectoryProviderFactory::createStandard(Platform::autoDetect()); // Let's get some paths! $configPath = $dirProvider->getConfigPath(); $docsPath = $dirProvider->getDocumentsPath(); // Load or save something…!
什么是提供者?为什么我们使用createStandard()
?我能扩展它并将特定平台映射到我的提供者吗?有关更多详细信息,请参阅使用指南。
平台支持
- ❕: 有注释。
- ❔: 未知或取决于环境。
- ❓: 如❔,但很可能没有。
注释
- 它可能不是您或用户所期望的;例如,图片目录路径在Termux home中,而不是SD卡内部(即
/sdcard
)。
贡献!
在这个世界上,每个人都应该是一个贡献者。所以,通过创建一个问题、分叉并改进它,或者只是向您的PHP开发者朋友介绍它来开始帮助这个项目吧!
如果您想了解代码的整体概览,请阅读使用指南。
要获得最佳结果,请参阅贡献指南。
许可证
该项目遵循Apache 2.0 许可协议。