PHPackages                             wiserwebsolutions/laravel-lobbyist-palegis - 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. wiserwebsolutions/laravel-lobbyist-palegis

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

wiserwebsolutions/laravel-lobbyist-palegis
==========================================

Pennsylvania (palegis.us) RSS-feed driver for the laravel-lobbyist package.

05PHP

Since Jul 13Pushed 1mo agoCompare

[ Source](https://github.com/WiserWebSolutions/laravel-lobbyist-palegis)[ Packagist](https://packagist.org/packages/wiserwebsolutions/laravel-lobbyist-palegis)[ RSS](/packages/wiserwebsolutions-laravel-lobbyist-palegis/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependenciesVersions (1)Used By (0)

Laravel Lobbyist — Pennsylvania Driver
======================================

[](#laravel-lobbyist--pennsylvania-driver)

Pennsylvania state driver for [`wiserwebsolutions/laravel-lobbyist`](https://github.com/wiserwebsolutions/laravel-lobbyist), backed by the data published by the Pennsylvania General Assembly at [palegis.us](https://www.palegis.us) — the per-chamber RSS feeds plus the Bill History Data bulk export. It registers itself with the Lobbyist manager under the `pa` abbreviation, so `Lobbyist::state('PA')` resolves to it.

> Requires the PHP `zip` and `simplexml` extensions (used for the Bill History Data download).

Installation
------------

[](#installation)

```
composer require wiserwebsolutions/laravel-lobbyist-palegis
```

The package auto-registers. Publish its config to customize feed URLs, request, or caching settings:

```
php artisan vendor:publish --tag=palegis-config
```

```
# optional
PALEGIS_TIMEOUT=30
PALEGIS_RETRY_TIMES=2
PALEGIS_CACHE_ENABLED=true
PALEGIS_CACHE_STORE=
PALEGIS_CACHE_TTL=3600
PALEGIS_BILL_HISTORY_TTL=3600   # cache lifetime for the (large) bill-history download
```

Feed and download URLs are fixed and generated automatically, and the bill history defaults to the current regular session — there is nothing to configure for either. (To read a past session, pass its id to the low-level `getBillHistory('2023_0')`.) If a generated URL ever fails, the driver throws a `PalegisException` naming the attempted URL, the HTTP status, and how to report the problem.

Usage
-----

[](#usage)

```
use WiserWebSolutions\Lobbyist\Facades\Lobbyist;

$pa = Lobbyist::state('PA'); // PalegisDriver

$pa->bills();            // BillCollection (all bills/resolutions from Bill History Data)
$pa->bill('HB17');       // Bill (lookup by number or full id)
$pa->votes();            // VoteCollection (House + Senate roll-call feeds)
$pa->legislators();      // LegislatorCollection (House + Senate members feeds)
$pa->representatives();  // LegislatorCollection (House only)
$pa->senators();          // LegislatorCollection (Senate only)
$pa->sessions();         // SessionCollection (current General Assembly)
```

### Capabilities &amp; limitations

[](#capabilities--limitations)

**Bills** come from the Bill History Data export — a bulk download of every bill and resolution in the session (with sponsors, printer numbers, and full action history preserved on `->meta['raw']`). This backs both `bills()` and lookups via `bill($numberOrId)`. Note it is a large download (thousands of bills, tens of MB uncompressed) fetched and cached as a unit, so the first call in a cache window is expensive; `bill()` filters that same cached dataset.

**Votes and members** come from the RSS feeds, which are **browse-only** — they publish what is current but cannot resolve an arbitrary id. So the driver implements `VoteProvider`/`LegislatorProvider` but not their `*Lookup`interfaces; calling `vote()` or `representative()` throws `UnsupportedOperationException`. Fields the feeds do not carry (e.g. vote tallies) are left `null`.

Low-level access
----------------

[](#low-level-access)

The underlying `LaravelPalegis` client is bound as a singleton and exposes every palegis.us feed directly as parsed arrays.

**Bill History Data:** `getBillHistory(?string $session = null)` returns `['export_date', 'total', 'session', 'bills' => [...]]`, each bill with its `sponsors`, `printers_numbers`, and `actions`.

**RSS feeds** — House: `getHouseCalendar()`, `getHouseTabledBillCalendar()`, `getHouseJournals()`, `getHouseReports()`, `getHouseVotes()`, `getHouseAmendments()`, `getHouseMembers()`, `getHouseCommitteeSchedule()`, `getHouseCommitteeAssignments()`, `getHouseCosponsorshipMemos()`. Senate feeds: `getSenateCalendar()`, `getSenateJournals()`, `getSenateNotes()`, `getSenateVotes()`, `getSenateAmendments()`, `getSenateMembers()`, `getSenateExecutiveNominations()`, `getSenateCommitteeSchedule()`, `getSenateCommitteeAssignments()`, `getSenateCosponsorshipMemos()`.

Testing
-------

[](#testing)

Tests use `Http::fake()` with RSS fixtures and never hit the network:

```
composer install
vendor/bin/phpunit
```

License
-------

[](#license)

MIT © Daniel Wiser

###  Health Score

20

—

LowBetter than 12% of packages

Maintenance60

Regular maintenance activity

Popularity4

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity11

Early-stage or recently created project

 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.

### Community

Maintainers

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

---

Top Contributors

[![danswiser](https://avatars.githubusercontent.com/u/6931029?v=4)](https://github.com/danswiser "danswiser (10 commits)")

### Embed Badge

![Health badge](/badges/wiserwebsolutions-laravel-lobbyist-palegis/health.svg)

```
[![Health](https://phpackages.com/badges/wiserwebsolutions-laravel-lobbyist-palegis/health.svg)](https://phpackages.com/packages/wiserwebsolutions-laravel-lobbyist-palegis)
```

###  Alternatives

[kx1000/kwota-slownie

Kwota słownie

1019.9k1](/packages/kx1000-kwota-slownie)

PHPackages © 2026

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