waughj / file-loader
用于轻松生成图像源对象,具有自动版本化功能,以处理缓存损坏。
v0.5.4
2019-06-04 19:54 UTC
Requires
- php: >=7.0
- spatie/url: *
- waughj/directory: *
- waughj/test-hash-item: >=2.0.0
- waughj/verified-arguments: *
Requires (Dev)
README
用于轻松生成图像源对象,具有自动版本化功能,以处理缓存损坏。
加载器对象接受一个可选的哈希表作为其第一个参数(尽管使用此对象而不带任何参数将只返回从getSource获得的字符串)。对象将识别此哈希表中的任何和所有以下可选键
- "directory-url":要查找文件的URL目录。如果设置,将自动将其附加到给定的本地文件名之前。如果没有设置,URL将是本地的。
- "directory-server":文件所在的服务器目录。用于查找此文件的修改时间,用于确定此文件的"版本",以便在文件更改时(需要重新加载)轻松自动清除缓存。
- "shared-directory":位于之前列出的URL和服务器目录之后的目录。
- "extension":要自动添加到本地文件末尾的文件扩展名。
设置此对象后,您可以轻松使用它来获取本地文件名的源。
示例
所有CSS文件都保存在/home/example.com/public_html/assets/css中,并从https://www.example.com/assets/css加载
use WaughJ\FileLoader\FileLoader;
$loader = new FileLoader
([
'directory-url' => 'https://www.example.com',
'directory-server' => '/home/example.com/public_html',
'shared-directory' => 'assets/css',
'extension' => 'css'
]);
然后您可以使用"getSourceWithVersion"方法轻松加载只带本地名称的文件
// Get main CSS file
$loader->getSourceWithVersion( 'main' );
这将输出"https://www.example.com/assets/css/main.css?m={#######}",其中#代表表示最后修改时间的长数字。
您可以使用以下方法通过更改以下四个属性之一来创建新的加载器版本,这些方法返回具有所有其他属性相同的新加载器对象
- changeURLDirectory
- changeServerDirectory
- changeSharedDirectory
- changeExtension
要轻松更改多个属性,只需将它们连接起来
$loader2 = $loader1->changeURLDirectory( 'https:/www.new-website.com' )->changeExtension( 'sass' );
如果要更改相同的加载器,只需将加载器设置为更改,用新实例替换旧实例
$loader1 = $loader1->changeURLDirectory( 'https:/www.new-website.com' )->changeExtension( 'sass' );
错误处理
"getSourceWithVersion"方法通过分析服务器上的修改日期来创建版本字符串。如果无法访问文件,它将抛出WaughJ\FileLoader\MissingFileException异常,该异常包含服务器和URL路径。如果您想以安全的方式回退到无版本源而不会破坏网站或程序,请运行简单的try & catch,并在catch中使用异常对象的"getFallbackContent"方法来获取无版本源
$file_url = null;
try
{
$file_url = $loader->getSourceWithVersion( 'main' );
}
catch ( MissingFileException $e )
{
// Perhaps run some logging code that logs that $e->getFilename() couldn't be found.
// If exception is thrown, $file_url will be the equivalent o' $loader->getSource( 'main' ).
$file_url = $e->getFallbackContent();
}
变更日志
0.5.0
- 添加获取方法并改进错误处理
0.4.0
- 添加获取文件版本的能力
0.3.0
- 添加从文件名获取扩展名的能力
0.2.0
- 添加更改方法
0.1.0
- 初始版本