PHPackages                             clickfwd/yoyo - 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. [Framework](/categories/framework)
4. /
5. clickfwd/yoyo

ActiveLibrary[Framework](/categories/framework)

clickfwd/yoyo
=============

Framework to build dynamic interfaces with seamless communication between frontend and backend.

0.15.0(2mo ago)20766.4k↑212.5%183MITPHPPHP ^8.0CI passing

Since Sep 28Pushed 2mo ago10 watchersCompare

[ Source](https://github.com/clickfwd/yoyo)[ Packagist](https://packagist.org/packages/clickfwd/yoyo)[ Docs](https://github.com/Clickfwd/yoyo)[ RSS](/packages/clickfwd-yoyo/feed)WikiDiscussions develop Synced yesterday

READMEChangelog (10)Dependencies (19)Versions (33)Used By (3)

Yoyo
====

[](#yoyo)

Yoyo is a full-stack PHP framework that you can use on any project to create rich dynamic interfaces using server-rendered HTML.

With Yoyo, you create reactive components that are seamlessly updated without the need to write any Javascript code.

Yoyo ships with a simple templating system, and offers out-of-the-box support for [Blade](https://laravel.com/docs/8.x/blade), without having to use Laravel, and [Twig](https://twig.symfony.com/).

Inspired by [Laravel Livewire](https://laravel-livewire.com/) and [Sprig](https://putyourlightson.com/plugins/sprig), and using [htmx](https://htmx.org/).

🚀 Yoyo Demo Apps
----------------

[](#-yoyo-demo-apps)

Check out the [Yoyo Demo App](https://app.getyoyo.dev) to get a better idea of what you can build with Yoyo. It showcases many different types of Yoyo components. You can also clone and install the demo apps:

- [Yoyo Blade App](https://github.com/clickfwd/yoyo-blade-app)
- [Yoyo Laravel App](https://github.com/clickfwd/yoyo-laravel-app)
- [Yoyo PHP template App](https://github.com/clickfwd/yoyo-app)
- [Yoyo Twig App](https://github.com/clickfwd/yoyo-twig-app)

Documentation
-------------

[](#documentation)

- [How it Works](#how-it-works)
- [Installation](#installation)
- [Updating](#updating)
- [Configuring Yoyo](#configuring-yoyo)
- [Creating Components](#creating-components)
- [Rendering Components](#rendering-components)
- [Properties](#properties)
- [Actions](#actions)
- [View Data](#view-data)
- [Computed Properties](#computed-properties)
- [Events](#events)
- [Redirecting](#redirecting)
- [Component Props](#component-props)
- [Query String](#query-string)
- [Loading States](#loading-states)
- [Using Blade](#using-blade)
- [Using Twig](#using-twig)
- [License](#license)

How it Works
------------

[](#how-it-works)

Yoyo components are rendered on page load and can be individually updated, without the need for page-reloads, based on user interaction and specific events.

Component update requests are sent directly to a Yoyo-designated route, where it processes the request and then sends the updated component HTML partial back to the browser.

Yoyo can update the browser URL state and trigger browser events straight from the server.

Below you can see what a Counter component looks like:

**Component class**

```
# /app/Yoyo/Counter.php
