YOURLS 简介
YOURLS (Your Own URL Shortener) 是一款开源的PHP程序,让你可以轻松建立属于自己的短网址生成系统。而无需第三方平台你就可以获得所有的数据统计,并且支持一系列插件扩展。
Github:https://github.com/YOURLS/YOURLS
功能特性
- 私有(只能自己使用)或 公共(所有人都可以创建短网址)模式
- 支持顺序生成 或 自定义 URL 关键字
- 好用的书签:轻松创建和分享链接
- 完善的统计:历史点击报告、来源追踪、访客地理位置
- 简洁的 AJAX 界面
- 开发者 API
- 友好的安装流程
编写插件
看完了简介之后现在开始介绍如何为 YOURLS 编写插件,下载安装的步骤就不在这里多说,可以根据项目里面 readme.html
的介绍来进行安装。
YOURLS 的插件都放在 根目录/user/plugins/
下面,一个插件一个目录。每个目录下面的 plugin.php
就是插件的入口文件,也是插件的核心所在,一般会有 README.md
文件来介绍这个插件。
在 根目录/user/plugins/
目录下创建一个名叫 say-hello
的目录,并创建 plugin.php
文件,用来编写插件的逻辑。
plugin.php 内容:
<?php
/*
Plugin Name: Say Hello
Plugin URI: http://yourls.org/
Description: Sample plugin to illustrate how actions and filters work.
Version: 0.1
Author: 她和她的猫
Author URI: https://blog.csdn.net/qq_42451060
*/
// 防止被直接访问
if( !defined( 'YOURLS_ABSPATH' ) ) die();
// 注册插件
yourls_add_filter( 'api_action_say_hello', 'say_hello' );
// 编写插件逻辑
function say_hello()
{
$content = isset($_GET['content']) ? $_GET['content'] : 'Hello World!';
echo "<h1>{$content}</h1>";
exit;
}
文件开始的那一段注释用来描述这个插件的名称、插件地址、描述、版本号、作者、作者url 等信息,这些信息将会在管理后台的插件列表里面展示。
然后判断是否定义了 YOURLS_ABSPATH
常量,如果没有定义的话将直接停止运行,用于防止直接通过 url 访问插件。
通过 yourls_add_filter
函数向程序注册这个插件。第一个参数是定义了当前插件被触发的 hook
名称,可以把这个当作插件的唯一名称来理解。其中 api_action_
是固定的,后面跟的是插件的名字(api_action_{插件名称}
),插件名称在后面调用的时候会用到。第二个参数是当插件被调用的时候,让哪个函数去处理这个请求,所以我们在下面定义了一个名为 say_hello
的函数,用来编写实现这个插件的功能。
函数功能很简单,接收content
参数,如果不存在的话就使用默认的值,最后输出 content
。
启用插件
要想插件能够被调用,要先在管理后台启用插件。
可以看到在 plugin.php
文件中的注释信息都被展示出来了。
将插件启用后,点击菜单 Tools
,找到 signature
,用于调用接口时验证身份信息。
调用插件
接下来就是如何调用插件了,url 如下:
http://域名或ip地址/yourls-api.php?action=say_hello&signature=005154be54
action
是调用的插件名称。signature
用于验证调用这个的身份信息。
上面的是 signature
调用方式,另外一种是帐号密码的方式:
http://域名或ip地址/yourls-api.php?action=say_hello&username=hxh&password=123456
这种方式容易将帐号信息暴露,所以不推荐这种方式。
运行结果:
带上 content
参数:
http://域名或ip地址/yourls-api.php?action=say_hello&signature=005154be54&content=她与她的猫
总结
重点:插件的注册与调用。
推荐看一下 YOURLS 的插件系统的实现原理,挺有收获的。
Ending…