ferrisbane / shortdb
一个PHP助手包,用于将静态“数据库”内容转换为动态内容。
Requires
- php: >=5.4.0
- illuminate/support: >5.0
Requires (Dev)
- laravel/laravel: >=5.0.0
This package is auto-updated.
Last update: 2024-09-10 05:27:17 UTC
README
一个PHP助手包,用于将静态内容转换为动态内容。
示例
以下是有用的示例,但如果您之前尚未设置shortdb包,请先阅读安装指南。
此仓库包含示例简码和有用的代码,展示了如何在项目中使用此包。
安装
此包需要PHP 5.6+(未在较低版本上进行测试)。
此包在Windows和Linux Web服务器上运行(未在Mac上测试)。
您可以通过composer进行安装:在项目文件夹内使用composer require ferrisbane/shortdb
,或者在composer.json
中包含此包。
"ferrisbane/shortdb": "0.1.*"
然后运行composer install
或composer update
来下载包。
要在Laravel 5中使用此包,请将ShortDB服务提供者添加到config/app.php
中的服务提供者列表。
'providers' => [ ... Ferrisbane\ShortDB\Laravel5ServiceProvider::class ... ];
然后使用php artisan vendor:publish
来发布配置。
如果您已更改项目命名空间,您可以在config/shortdb.php
中定义它。
'namespace' => 'App',
设置
一旦shortdb包已安装到您的项目中,您就需要设置/创建一个shortdb类。
此shortdb类将允许shortdb包以您想要的方式转换静态文本和处理。
在Laravel中,在您的app
文件夹内创建一个Shortcodes
文件夹。
现在,您应该有一个如下所示的项目结构:/app/Shortcodes/
在Shortcodes
文件夹内创建一个PHP文件,命名此文件为该类将处理的内容。
例如,文件名为:FontAwesome.php
。此Font Awesome文件将允许我们处理Font Awesome图标。
您可以在项目中创建所需数量的简码文件。
请参阅我们的示例FontAwesome简码:示例简码(Font Awesome)
在简码类中,有用于加载和处理简码的变量和函数。
-
$code
变量用于定义此简码的唯一名称/代码。 -
$description
变量目前未使用,但将来将用于描述此简码的功能。 -
$arguments
变量是一个数组,包含简码将接受的参数,例如'icon'
。在'icon'
参数内部,您可以定义它是否为必需的。
'icon' => [ 'required' => true ],
- process函数将
process
简码。public function process(array $arguments)
shortdb包将传递所有参数到该函数,您现在可以在其中处理所需的内容,完成后返回处理后的字符串。
目前,getJavascriptDescriptor
和getOptions
函数未使用。
用法
使用shortdb包很简单。
格式化简码字符串
首先您需要一个字符串,这可以来自数据库、env、config等。
假设我们有的字符串是
$string = '{fa|icon:camera-retro}';
shortdb包将在传递的字符串内部查找花括号{}
中的shortcodes
。
简码可以在字符串的任何位置,您可以有多个不同的简码,例如
$string = 'content... {fa|icon:camera-retro} ...more content... {fa|icon:cog} ...even more content';
短代码允许多个参数,上述示例中的第一个:fa
告诉shortdb包使用哪个短代码。
这是在短代码php文件中使用$code
变量定义的。这将需要是唯一的。
我们可以在短代码中添加更多参数,这些参数使用管道|
分割,例如shortcodekey|argument1|argument2
。
每个参数可以传递值(就像键值对一样)。要传递带有参数的值,请使用冒号:
,例如icon:cog
这将传递一个参数到您的短代码处理函数。您可以使用以下方式获取值
$arguments['icon']
如果我们通过短代码传递了icon:cog
,当在处理函数内部调用上述代码时,我们将检索到cog
。
处理字符串
将'未处理的'字符串传递到以下函数/助手,然后将其处理成动态内容,在我们的例子中,它将是一个FontAwesome HTML图标标签。
例如,{fa|icon:cog|spin:true}
将被处理成<i class="fa fa-cog fa-spin" aria-hidden="true"></i>
处理FontAwesome图标只是开始,通过创建自己的,您可以处理任何您需要的内容。
例如,{ip|country:name}
可以根据连接客户端的IP地址处理成United Kingdom
。
或者{price|product:my-product-slug|currency:gbp}
处理成£100
或者{price|product:another-product|currency:usd}
处理成$259
如果您想在'静态'内容(例如数据库内容)中放置动态内容(如产品价格),这非常有用。如果使用文本编辑器/wysiwyg,其中HTML或动态内容不起作用,则非常有用。
函数/助手
在Laravel中,我们可以将我们的字符串传递给shortdb服务容器实例
app('shortdb')->process($string);
或者,由于该包附带一个有用的Laravel助手函数,只需调用该助手函数并传递一个字符串,然后您将获得处理后的字符串
shortdb($string);
在blade中使用助手函数
{!! shortdb($string) !!}