承接 simplemediacode/hooks 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

simplemediacode/hooks

最新稳定版本:2.1.2

Composer 安装命令:

composer require simplemediacode/hooks

包简介

Modern PHP Hooks System for PHP applications.

README 文档

README

A lightweight, dependency-free implementation of an action and filter hook system inspired by WordPress hooks but designed for modern PHP applications.

Features

  • Modern PHP Support: Fully typed, supports PHP 8.0+
  • Dependency Injection Ready: Use the HooksInterface in your classes
  • Static Facade: Convenient static methods for quick integration
  • No Dependencies: Lightweight implementation with zero dependencies
  • WordPress Inspired: Familiar API if you're coming from WordPress

Installation

Via composer:

composer require simplemediacode/hooks

Usage

Using the Static Facade

use Simplemediacode\Hooks\Hooks;

// Add a filter
Hooks::addFilter('content', function($content) {
    return strtoupper($content);
});

// Apply a filter
$content = Hooks::applyFilters('content', 'Hello World'); // Returns "HELLO WORLD"

// Add an action
Hooks::addAction('save_post', function($postId) {
    // Do something when a post is saved
    echo "Post {$postId} was saved!";
});

// Execute an action
Hooks::doAction('save_post', 123);

Using Dependency Injection

use Simplemediacode\Hooks\HooksInterface;

class MyClass
{
    private ?HooksInterface $hooks;

    public function __construct(
        ?HooksInterface $hooks = null
    ) {
        $this->hooks = $hooks;
    }
    
    public function processContent(string $content): string
    {
        // If hooks are available, filter the content
        if ($this->hooks) {
            $content = $this->hooks->executeHook('content', $content);
        }
        
        return $content;
    }
}

Extending with Custom Implementations

You can implement your own version of HooksInterface to provide custom hook functionality:

$customHooks = new MyCustomHooksImplementation();
Hooks::setInstance($customHooks);

Migration from WP_Hook

This package is a complete rewrite of the original WordPress hook system. Key differences:

  • Renamed WP_Hook to Hook
  • Introduced proper interfaces for better type safety
  • Added dependency injection support
  • Replaced global variables with proper class properties
  • Improved naming conventions and method signatures

Changelog

Read at CHANGELOG.md.

License

This library is released under the GPL-2.0 license. See the complete license in the bundled LICENSE file.

统计信息

  • 总下载量: 317
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 2
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 2
  • Watchers: 1
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: GPL-2.0-only
  • 更新时间: 2020-12-29