pop-backbone/php-hooks

PHP-Hooks 的分支,适用于 PoP - 将 WordPress 过滤器钩子系统转换为类的分支,以便将其移植到任何基于 PHP 的系统

5.0.0 2024-09-07 03:35 UTC

README

这是一个 PHP Hooks 的分支,适用于 PoP,并添加了一些未合并到原始项目中的更新。

安装

通过 Composer

composer require pop-backbone/php-hooks

开发

源代码托管在 GatoGraphQL monorepo 上,在 Backbone/packages/php-hooks

PHP-Hooks (原始 README)

(来源: https://github.com/bainternet/PHP-Hooks)

PHP Hooks 类是 WordPress 过滤器钩子系统的分支,将其转换为类以移植到任何基于 PHP 的系统

  • 此类主要基于 WordPress 插件 API,大部分(如果不是全部)代码都来自那里。

前往 http://bainternet.github.io/PHP-Hooks/ 获取更多信息

如何使用?

很简单,将类文件包含在您的应用程序引导程序中(设置/加载/配置或您叫它什么)并开始使用全局 $hooks 调用过滤器和动作钩子。例如

include_once('php-hooks.php');
global $hooks;
$hooks->add_action('header_action','echo_this_in_header');

function echo_this_in_header(){
   echo 'this came from a hooked function';
}

然后,您只需在应用程序的任何地方调用已连接的函数,例如

echo '<div id="extra_header">';
global $hooks;
$hooks->do_action('header_action');
echo '</div>';

输出将是

<div id="extra_header">this came from a hooked function</div>

方法

动作

add_action 将函数连接到特定的动作。

 - @access public
 - @since 0.1
 - @param string $tag The name of the action to which the $function_to_add is hooked.
 - @param callback $function_to_add The name of the function you wish to be called.
 - @param int $priority optional. Used to specify the order in which the functions associated with a particular action are executed (default: 10). Lower numbers correspond with earlier execution, and functions with the same priority are executed in the order in which they were added to the action.
 - @param int $accepted_args optional. The number of arguments the function accept (default 1).

do_action 执行连接到特定动作钩子的函数。

 - @access public
 - @since 0.1
 - @param string $tag The name of the action to be executed.
 - @param mixed $arg,... Optional additional arguments which are passed on to the functions hooked to the action.
 - @return null Will return null if $tag does not exist

remove_action 从指定的动作钩子中删除函数。

 - @access public
 - @since 0.1
 - @param string $tag The action hook to which the function to be removed is hooked.
 - @param callback $function_to_remove The name of the function which should be removed.
 - @param int $priority optional The priority of the function (default: 10).
 - @return boolean Whether the function is removed.

has_action 检查是否为钩子注册了任何动作。

 -  @access public
 -  @since 0.1
 -  @param string $tag The name of the action hook.
 -  @param callback $function_to_check optional.
 -  @return mixed If $function_to_check is omitted, returns boolean for whether the hook has anything registered.
  When checking a specific function, the priority of that hook is returned, or false if the function is not attached.
  When using the $function_to_check argument, this function may return a non-boolean value that evaluates to false (e.g.) 0, so use the === operator for testing the return value.

did_action 获取动作被触发的次数。

 -  @access public
 -  @since 0.1
 -  @param string $tag The name of the action hook.
 -  @return int The number of times action hook <tt>$tag</tt> is fired

过滤器

add_filter 将函数或方法连接到特定的过滤器动作。

 - @access public
 -  @since 0.1
 -  @param string $tag The name of the filter to hook the $function_to_add to.
 -  @param callback $function_to_add The name of the function to be called when the filter is applied.
 -  @param int $priority optional. Used to specify the order in which the functions associated with a particular action are executed (default: 10). Lower numbers correspond with earlier execution, and functions with the same priority are executed in the order in which they were added to the action.
 -  @param int $accepted_args optional. The number of arguments the function accept (default 1).
 -  @return boolean true

remove_filter 从指定的过滤器钩子中删除函数。

 -  @access public
 -  @since 0.1
 -  @param string $tag The filter hook to which the function to be removed is hooked.
 -  @param callback $function_to_remove The name of the function which should be removed.
 -  @param int $priority optional. The priority of the function (default: 10).
 -  @param int $accepted_args optional. The number of arguments the function accepts (default: 1).
 -  @return boolean Whether the function existed before it was removed.

has_filter 检查是否为钩子注册了任何过滤器。

 -   @access public
 -   @since 0.1
 -   @param string $tag The name of the filter hook.
 -   @param callback $function_to_check optional.
 -   @return mixed If $function_to_check is omitted, returns boolean for whether the hook has anything registered.
   When checking a specific function, the priority of that hook is  returned, or false if the function is not attached.
   When using the $function_to_check argument, this function may return a non-boolean value that evaluates to false (e.g.) 0, so use the === operator for testing the return value.

apply_filters 调用添加到过滤器钩子的函数。

 -  @access public
 -  @since 0.1
 -  @param string $tag The name of the filter hook.
 -  @param mixed $value The value on which the filters hooked to <tt>$tag</tt> are applied on.
 -  @param mixed $var,... Additional variables passed to the functions hooked to <tt>$tag</tt>.
 -  @return mixed The filtered value after all hooked functions are applied to it.

还有一些其他方法,但这些都是您将主要使用的方法:)。

下载

您可以选择 ziptar 格式下载此项目。

您还可以通过运行以下命令使用 Git 克隆项目

$ git clone git://github.com/bainternet/PHP-Hooks.git

许可证

由于此类派生自 WordPress 插件 API,因此许可证也是 GPL https://gnu.ac.cn/licenses/gpl.html

Analytics