PHPackages                             pmg/webstalk - 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. pmg/webstalk

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

pmg/webstalk
============

A set of silex utilities for creating a beanstalkd web interface

2.0.0(10y ago)12.0kApache-2.0PHPPHP &gt;=5.4

Since Feb 26Pushed 10y ago21 watchersCompare

[ Source](https://github.com/AgencyPMG/Webstalk)[ Packagist](https://packagist.org/packages/pmg/webstalk)[ RSS](/packages/pmg-webstalk/feed)WikiDiscussions master Synced 5d ago

READMEChangelogDependencies (6)Versions (6)Used By (0)

Webstalk
========

[](#webstalk)

[![Build Status](https://camo.githubusercontent.com/60a2805b5ba7a14e7dfbdffd1f11a6fc371eefe369f727c750e5c4735490e3f6/68747470733a2f2f7472617669732d63692e6f72672f4167656e6379504d472f5765627374616c6b2e706e673f6272616e63683d6d6173746572)](https://travis-ci.org/AgencyPMG/Webstalk)

Webstalk is a simple web app for viewing [beanstalkd](https://github.com/kr/beanstalkd)server and tube statistics.

At [PMG](http://pmg.co) we use a lot of beanstalkd and we needed to give our non-technical people a way to check on queue server stats that didn't involve telnet. Webstalk serves that purpose.

There are two ways to use webstalk: as a stand alone app or as a library. In both cases webstalk requires PHP 5.4+ and [composer](https://getcomposer.org/).

Additionally, webstalk uses...

- Silex
- Twig
- Pheanstalk
- The Symfony Twig Bridge

Stand Alone App
---------------

[](#stand-alone-app)

[Bower](http://bower.io/) is required to grab our UI dependencies (JS &amp; CSS files).

1. Clone this repository or grab it's zip file and extract it
2. Navigate to the directory where the Webstalk files are
3. Run `composer install`
4. Run `bower install`
5. Ensure that your beanstalkd server is running
6. `php -S 127.0.0.1:8005 -t web` to run the app (or set up your server)

As a Library
------------

[](#as-a-library)

Add `pmg/webstalk` to your `composer.json` and install. See `web/index.php` for an example of the required service providers and how to mount the webstalk URLs.

If you intend to use webstalks built in styling, please be aware that it expects some static files in your document root's `vendor` folder as if they were installed by bower. See `bower.json` for those dependencies.

More likely, however, you'll want to integrate webstalk in your larger application -- this is how PMG uses it.

Webstalk uses twig, and it registers a directory in Silex's `twig.loader.filesystem`just for its files. To use your own templates, extend `twig.loader.filesystem`and prepend a new webstalk directory.

```
$app['twig.loader.filesystem'] = $app->share(
    $app->extend('twig.loader.filesystem', function ($loader) {
        $loader->prependPath('/path/to/your/templates/webstalk', 'webstalk');
        return $loader;
    })
);

```

Once that's done, create a `servers.html.twig` and a `tubes.html.twig` file in your new webstalk templates directory. See `src/PMG/Webstalk/Resources/views`for how those files might work and to get an idea of the context variables passed in.

Running the Tests
-----------------

[](#running-the-tests)

Webstalk has two sets of tests: unit and integration. Unit tests cover all of its internal code. Integration tests cover the areas where webstalk touches the outside world (this includes external libraries, which are wrapped up in adapters).

Composer install with `--dev` flag (the default behavior). Then run `/vendor/bin/phpunit`. This will run both test suites.

You'll probably see some tests skipped, those are tests that require a local copy of beanstalkd running. So start it up! If it's running on localhost with the default port (11300), that's all you'll need to do: just run the tests again.

If not, set the `BEANSTALKD_HOST` and `BEANSTALKD_PORT` environment variables and running the tests.

```
$ BEANSTALKD_PORT=11301 ./vendor/bin/phpunit

```

You can also just run a single test suite:

```
$ ./vendor/bin/phpunit --testsuite Unit
$ ./vendor/bin/phpunit --testsuite Integration

```

License
-------

[](#license)

Copyright 2014 PMG

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

```
http://www.apache.org/licenses/LICENSE-2.0

```

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

###  Health Score

30

—

LowBetter than 64% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity17

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity62

Established project with proven stability

 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 ~157 days

Total

4

Last Release

3988d ago

Major Versions

1.1.0 → 2.0.02015-06-15

### Community

Maintainers

![](https://www.gravatar.com/avatar/d396af79150164dd4d28f3e816b377e2f3c04df431d8338477517efa0013664c?d=identicon)[chrisguitarguy](/maintainers/chrisguitarguy)

---

Top Contributors

[![chrisguitarguy](https://avatars.githubusercontent.com/u/1010392?v=4)](https://github.com/chrisguitarguy "chrisguitarguy (45 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/pmg-webstalk/health.svg)

```
[![Health](https://phpackages.com/badges/pmg-webstalk/health.svg)](https://phpackages.com/packages/pmg-webstalk)
```

###  Alternatives

[barryvdh/laravel-form-bridge

This packages integrates Symfony Form Component in Laravel.

163354.8k1](/packages/barryvdh-laravel-form-bridge)[netgen/layouts-core

Netgen Layouts enables you to build and manage complex web pages in a simpler way and with less coding. This is the core of Netgen Layouts, its heart and soul.

3689.4k10](/packages/netgen-layouts-core)[mapbender/mapbender

Mapbender library

10117.4k5](/packages/mapbender-mapbender)[leapt/core-bundle

Symfony LeaptCoreBundle

2529.1k4](/packages/leapt-core-bundle)

PHPackages © 2026

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