israeldavidvm/name-helper

轻松管理文件名、响应式图片、URL 等功能!NameHelper 仓库为您提供一个完整的库,简化了在应用程序中处理名称的工作。NameHelper 类提供了一系列实用函数,用于处理图像名称,尤其是在生成响应式图像 URL 的上下文中。

v1.0 2024-07-13 20:46 UTC

This package is auto-updated.

Last update: 2024-09-17 21:05:52 UTC


README

英文版README

轻松管理文件名、响应式图片、URL 等功能!

NameHelper 仓库为您提供一个完整的库,简化了在应用程序中处理名称的工作。

NameHelper 类提供了一系列实用函数,用于处理图像名称,尤其是在生成响应式图像 URL 的上下文中。它还包括文件名操作辅助函数和一些特别设计的用于 Laravel 的 URL 生成函数。

我通常将此包与我自己创建的其他包(如 ImageCompressor 和 SmartImage)一起使用。

许可证

此代码受 GNU 通用公共许可证(GPL)版本 3.0 或更高版本(LGPLV3+)许可。您可以在 https://gnu.ac.cn/licenses/lgpl-3.0-standalone.html 找到完整许可证的副本。

NameHelper 提供哪些功能?

  • 将名称转换为与 URL 兼容的格式

    • 将名称转换为小写(UTF-8)。
    • 将空格和下划线替换为短横线。
    • 将特殊字符替换为相应的字母数字字符(例如,“á”转换为“a”)。
    • 删除标点符号和不适合 URL 的符号。
  • 生成响应式图像名称的变体

  • 创建具有大多数推荐尺寸的图像名称,例如“360-imagen.jpg”。

  • 生成本地和外部图像的响应式和非响应式 URL。

  • 为 Laravel 框架创建优化的 URL。

  • 简化文件名、扩展名或目录名的工作

文档

NameHelper 提供了一系列实用函数,用于操作文件名、URL 并生成图像 URL。

文件名、Linux 文件系统路径或 URL 的管理

该库还提供了一系列方法来处理我们在其中称为 $fileLocatorName 的文件名,这只是一个指向文件名、Linux 文件系统路径或 URL 的字符串。

因此我们可以

从 <fileLocatorName> 返回文件的扩展名。注意,文件不应该是目录,因为目录没有扩展名;如果传递了目录,将发出断言。

NameHelper::getExtOfFile($fileLocatorName);

从 <fileLocatorName> 返回文件或目录的名称,不包括扩展名

NameHelper::getFileOrDirNameWithoutExt($fileLocatorName);

从 <fileLocatorName> 返回文件或目录的名称

NameHelper::getFileOrDirName($fileLocatorName);

名称到 URL 名称转换器

该库提供的功能之一是简单地将名称转换为 URL 名称。

假设我们想使用博客帖子的名称作为 URL 中的标识符。

因此,要访问标题为 "hello world" 的帖子,需要访问以下路径 www.miblog.com/blog/hello-world

这里我们可以使用以下函数

NameHelper::transformNameToUrlName($name)

该函数将 $name 参数设置为 "hello world" 时,将返回 hello-world

响应式图像名称生成

如果我们要生成响应式图像的名称列表,则执行以下方法

NameHelper::generateResponsiveImageNames($imageName);

该方法将 $imageName 参数设置为 image.jpg 时,将返回一个关联数组

[
    0 => "image.jpg",  
    360 => "360-image.jpg",
    720 => "720-image.jpg",
    1080 => "1080-image.jpg",
    1440 => "1440-image.jpg",
    1800 => "1800-image.jpg",
    2160 => "2160-image.jpg",
    2880 => "2880-image.jpg",
    3600 => "3600-image.jpg",
    4320 => "4320-image.jpg",
];

图像URL生成

该库旨在支持普通图像、响应式图像以及本地或外部存储的图像。

因此,假设响应式图像的变体被分组在一个文件夹中。

同时也旨在简化使用:为此,对存储响应式图像变体的文件夹和存储图像的 Laravel 文件夹的命名约定进行了标准化。

因此,存在遵循这些约定并包含“Conventional”和“LaravelConvetional”一词的特殊方法

URL语法

语法表示法约定

<> 用于包围非终结符号

El ::= 用于产生式规则

非终结符号以字符串或普通字符的形式表示

以下符号对必须与以下表达式一起使用:每个对中的第一个在表达式的后面作为后缀书写,第二个包围表达式。

El ? 或 [] 表示表达式是可选的

El * 或 {} 表示表达式重复 0 或多次

El + 表示表达式重复 1 或多次

如果想要使用前面的字符之一,则必须使用 \ 前缀

因此,该库将使用以下语法来处理其 URL

<baseUrl>/<dirImage>?/<imageName>?

其中:包含“LaravelConvetional”一词的方法通常将值赋予

<baseUrl>  de "/storage/images" 

其中:包含“Convetional”一词的方法通常将值赋予

<dirImage> de el resultado de NameHelper::transformNameToUrlName($imageName)

请注意,外部 URL 和内部 URL 之间的区别基于 <baseUrl> 的值

本地非响应式图像对 Laravel
<nonResponsiveLocalUrl>::= <baseUrl>/<dirImage>?/<imageName>

例如

/storage/images/imagen/imagen.jpg

本地响应式图像对 Laravel
<ResponsiveLocalUrl>::= <baseUrl>/<dirImage>

例如 /storage/images/imagen/

本地或外部非响应式常规图像
<ConventionalNonResponsiveUrl>::= <baseUrl>/<dirImage>/<imageName>

例如

/storage/images/imagen/imagen.jpg

本地或外部响应式常规图像
<ConventionalResponsiveUrl>::= <baseUrl>/<dirImage>

例如 /storage/images/imagen/

本地或外部非响应式图像
<nonResponsiveUrl>::= <baseUrl>/<imageName>

例如

/storage/images/imagen/imagen.jpg

本地或外部响应式图像
<ResponsiveUrl>::= <baseUrl>

例如 /storage/images/imagen/

使用示例

在数据库中存储图像URL

要将响应式图像存储在 Laravel 应用程序的数据库中,建议使用

NameHelper::generateLaravelConvetionalResponsiveImageDirUrl($imageName)

这将生成一个图像 URL,例如 /storage/images/imagen/

对于非响应式图像的情况

NameHelper::generateLaravelConvetionalImageUrl($imageName)

这将生成一个图像 URL,例如 /storage/images/imagen/imagen.jpg

从数据库中检索图像

请注意,响应式图像存储在目录中

因此,每个响应式图像的名称必须通过以下方式获取

NameHelper::generateResponsiveImageUrls($imageName, $baseUrl);

NameHelper::generateConvetionalResponsiveImageUrls($imageName,$baseUrl)

O

NameHelper::generateLaravelConvetionalResponsiveImageUrls($imageName)

更多使用示例

Probando la salida de los metodos con

$fileLocator='/imagen.png'
$baseUrl='/cachapa/'

NameHelper::generateLaravelConvetionalResponsiveImageUrls('/imagen.png')=[
/storage/images/imagen/imagen.png
/storage/images/imagen/360-imagen.png
/storage/images/imagen/720-imagen.png
/storage/images/imagen/1080-imagen.png
/storage/images/imagen/1440-imagen.png
/storage/images/imagen/1800-imagen.png
/storage/images/imagen/2160-imagen.png
/storage/images/imagen/2880-imagen.png
/storage/images/imagen/3600-imagen.png
/storage/images/imagen/4320-imagen.png
]
NameHelper::generateLaravelConvetionalResponsiveImageDirUrl('/imagen.png')=/storage/images/imagen
NameHelper::generateLaravelConvetionalImageUrl('/imagen.png')=/storage/images/imagen/imagen.png
NameHelper::generateLaravelConvetionalImagePath('/imagen.png')=/images/imagen/imagen.png
NameHelper::generateConvetionalResponsiveImageUrls('/imagen.png','/cachapa/')=[
/cachapa/imagen/imagen.png
/cachapa/imagen/360-imagen.png
/cachapa/imagen/720-imagen.png
/cachapa/imagen/1080-imagen.png
/cachapa/imagen/1440-imagen.png
/cachapa/imagen/1800-imagen.png
/cachapa/imagen/2160-imagen.png
/cachapa/imagen/2880-imagen.png
/cachapa/imagen/3600-imagen.png
/cachapa/imagen/4320-imagen.png
]
NameHelper::generateConvetionalImageUrl('/imagen.png','/cachapa/')=/cachapa/imagen/imagen.png
NameHelper::generateResponsiveImageUrls('/imagen.png','/cachapa/')=[
/cachapa/imagen.png
/cachapa/360-imagen.png
/cachapa/720-imagen.png
/cachapa/1080-imagen.png
/cachapa/1440-imagen.png
/cachapa/1800-imagen.png
/cachapa/2160-imagen.png
/cachapa/2880-imagen.png
/cachapa/3600-imagen.png
/cachapa/4320-imagen.png
]
NameHelper::generateConvetionalImageDirUrl('/imagen.png','/cachapa/')=/cachapa/imagen
NameHelper::generateImageUrl('/imagen.png','/cachapa/')=/cachapa/imagen.png
NameHelper::generateResponsiveImageNames('/imagen.png')=[
/imagen.png
360-/imagen.png
720-/imagen.png
1080-/imagen.png
1440-/imagen.png
1800-/imagen.png
2160-/imagen.png
2880-/imagen.png
3600-/imagen.png
4320-/imagen.png
]
NameHelper::transformNameToUrlName('/imagen.png')=imagen.png
NameHelper::getFileOrDirName('/imagen.png')=imagen.png
NameHelper::getFileOrDirNameWithoutExt('/imagen.png')=imagen
NameHelper::getExtOfFile('/imagen.png')=png

Probando la salida de los metodos con

$fileLocator='/imagen/'
$baseUrl='/cachapa/'

$imageName='imagen' de generateResponsiveImageNames pareciera no tener una extension
NameHelper::generateLaravelConvetionalResponsiveImageDirUrl('/imagen/')=/storage/images/imagen
NameHelper::generateLaravelConvetionalImageUrl('/imagen/')=/storage/images/imagen/imagen
NameHelper::generateLaravelConvetionalImagePath('/imagen/')=/images/imagen/imagen
$imageName='imagen' de generateResponsiveImageNames pareciera no tener una extension
NameHelper::generateConvetionalImageUrl('/imagen/','/cachapa/')=/cachapa/imagen/imagen
$imageName='imagen' de generateResponsiveImageNames pareciera no tener una extension
NameHelper::generateConvetionalImageDirUrl('/imagen/','/cachapa/')=/cachapa/imagen
NameHelper::generateImageUrl('/imagen/','/cachapa/')=/cachapa/imagen
$imageName='/imagen/' de generateResponsiveImageNames pareciera no tener una extension
NameHelper::transformNameToUrlName('/imagen/')=imagen
NameHelper::getFileOrDirName('/imagen/')=imagen
NameHelper::getFileOrDirNameWithoutExt('/imagen/')=imagen
$fileLocatorName='/imagen/' de getExtOfFile pareciera no tener una extension

捐款。您的贡献将产生差异。

ko-fi Paypal Binance

在以下位置找到我

GITHUB LinkedIn Twitter Facebook Instagram TikTok YouTube

使用的技术 / 使用的技术

PHP