PHPackages                             rcs\_us/framework\_core - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. rcs\_us/framework\_core

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

rcs\_us/framework\_core
=======================

PHP implementation of Qt's signals/slots. This release is for 5.3+ &amp; 7+ as there are namespaces. Please see other version for previous version without namespaces

7.1.12(8y ago)017MITPHPPHP ^5.3 || ^7.0

Since Jan 7Pushed 8y ago1 watchersCompare

[ Source](https://github.com/conrad10781/PHP-Signal-Slots)[ Packagist](https://packagist.org/packages/rcs_us/framework_core)[ RSS](/packages/rcs-us-framework-core/feed)WikiDiscussions master Synced 3d ago

READMEChangelogDependenciesVersions (3)Used By (0)

PHP-Signal-Slots
================

[](#php-signal-slots)

Based on Qt's implementation of signals/slots ( not asynchronous )

### Overview

[](#overview)

This release is for 5.3+ &amp; 7+ as there are namespaces. Please see other version for previous version without namespaces.

As with Qt's signals/slots, this package was built to be very light, and work well with existing applications that didn't originally depend on it.

Adding the functionality of this package is simple:

1. Extend RCS\_Core\_Object in your existing class(es).
2. Add @signal declarations to your doc comments for your class.
3. Add @slot declarations to your doc comments for your functions.

### Example

[](#example)

```
/**
 * @signal signalWithNoArguments
 * @signal signalWithOneArgument
 * ^-- This is required. You will declare all of your signals this way
 */
class Test_Signal_Class extends \RCS\Core\Object
{
    /**
     *
     */
    public function testFunctionEmittingSignalWithNoArguments ()
    {
        $this->emit( "signalWithNoArguments" );
    }

    /**
     *
     */
    public function testFunctionEmittingSignalWithOneArgument ()
    {
        $this->emit( "signalWithOneArgument", new Test_Model_Class() );
    }

}

class Test_Slot_Class extends \RCS\Core\Object
{
    /**
     *
     * @slot
     * ^-- This is required to declare the function as a slot
     */
    public function testSlotForSignalWithNoArguments ()
    {
        print "Got to " . __METHOD__ . "\n";
    }

    /**
     *
     * @slot
     * ^-- This is required to declare the function as a slot
     */
    public function testSlotForSignalWithOneArgument ( Test_Model_Class $testModelClass )
    {
        // var_dump(debug_backtrace());
        print "Got to " . __METHOD__ . "\n";
        print_r($testModelClass);
    }
}

class Test_Model_Class {}

$testSignalClass = new Test_Signal_Class();
$testSlotClass = new Test_Slot_Class();

// This is the ideal way to implement the library
\RCS\Core\Object::connect($testSignalClass, "signalWithNoArguments", $testSlotClass, "testSlotForSignalWithNoArguments");
\RCS\Core\Object::connect($testSignalClass, "signalWithOneArgument", $testSlotClass, "testSlotForSignalWithOneArgument");

// This can be used in cases where the original code implementation was done very poorly,
// or possibly encoded into a package such as Zend Guard or a PHP extension where you can't access the source directly
\RCS\Core\Object::connectByName("Test_Signal_Class", "signalWithOneArgument", $testSlotClass, "testSlotForSignalWithOneArgument");

// This has just one connection
$testSignalClass->testFunctionEmittingSignalWithNoArguments();

// This has two connections
$testSignalClass->testFunctionEmittingSignalWithOneArgument();
```

The above code will result in the following output:

```
Got to Test_Slot_Class::testSlotForSignalWithNoArguments
Got to Test_Slot_Class::testSlotForSignalWithOneArgument
Test_Model_Class Object
(
)
Got to Test_Slot_Class::testSlotForSignalWithOneArgument
Test_Model_Class Object
(
)

```

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

2

Last Release

3050d ago

Major Versions

5.2.17 → 7.1.122018-01-07

PHP version history (2 changes)5.2.17PHP &gt;=5.1.0

7.1.12PHP ^5.3 || ^7.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/58820a9b8b9d37ea874dcaae1b92a4a7fd6c85946070546cd74c023abdd7afef?d=identicon)[conrad10781](/maintainers/conrad10781)

---

Top Contributors

[![conrad10781](https://avatars.githubusercontent.com/u/238705?v=4)](https://github.com/conrad10781 "conrad10781 (19 commits)")

---

Tags

signalslot

### Embed Badge

![Health badge](/badges/rcs-us-framework-core/health.svg)

```
[![Health](https://phpackages.com/badges/rcs-us-framework-core/health.svg)](https://phpackages.com/packages/rcs-us-framework-core)
```

###  Alternatives

[seld/signal-handler

Simple unix signal handler that silently fails where signals are not supported for easy cross-platform development

18271.3M19](/packages/seld-signal-handler)[jbzoo/event

Library for event-based development

29760.0k5](/packages/jbzoo-event)[aura/signal

A SignalSlots/EventHandler implementation; with it, we can invoke handlers ('slots' or 'hooks') whenever an object sends a signal ('notification' or 'event') to the signal manager.

3361.6k4](/packages/aura-signal)[neutron/signal-handler

A library to ease the use of signal handling.

13101.4k2](/packages/neutron-signal-handler)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
