PHPackages                             jplhomer/fresa - 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. jplhomer/fresa

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

jplhomer/fresa
==============

Developing WordPress should be sweet.

v1.2.0(6y ago)453365[7 issues](https://github.com/jplhomer/fresa/issues)[1 PRs](https://github.com/jplhomer/fresa/pulls)MITPHPCI failing

Since Aug 14Pushed 5y ago3 watchersCompare

[ Source](https://github.com/jplhomer/fresa)[ Packagist](https://packagist.org/packages/jplhomer/fresa)[ RSS](/packages/jplhomer-fresa/feed)WikiDiscussions master Synced 2w ago

READMEChangelog (5)Dependencies (3)Versions (8)Used By (0)

Fresa
=====

[](#fresa)

**🍓 Developing WordPress should be sweet.**

Use [Fresa](https://fresa.jplhomer.org) in your plugins and themes to make interacting with the WordPress ecosystem friendly and fast.

Tested on **WordPress 4.8** and requires **PHP 7+**. Your mileage may vary.

```
use Fresa\PostModel;

class Event extends PostModel
{
    $postType = 'my_custom_post_type';
}
```

Register your custom post types in one line:

```
Event::register();
```

Interact with your post in an object-oriented fashion:

```
$event = new Event;
$event->title = 'Hello World.';
$event->venue = 'Times Square';
$event->save();

echo $event->id; // 1
echo $event->venue; // 'Times Square';
// Same as get_post_meta(1, 'venue', true);
```

And perform queries through a fluent interface:

```
$event = Event::find(1);
$events = Event::where('venue', 'Times Square')
                ->order('date', 'asc')
                ->limit(5)
                ->offset(5)
                ->get();
```

Queries return a [Collection instance](https://laravel.com/docs/5.4/collections):

```
$events->each(function($event) {
    echo $event->title;
});
```

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

[](#installation)

```
composer require jplhomer/fresa
```

**[Read the full documentation here](https://fresa.jplhomer.org)**.

Development
-----------

[](#development)

```
composer install
```

### Running Tests

[](#running-tests)

First, set up the required WordPress testing library on your machine:

```
# Replace db-name, db-user, db-pass with arguments of a database to be created
# If you already have a database, pass `true` to the last argument, e.g.
# wptests root '' 127.0.0.1 latest true
./bin/install-wp-tests.sh    [db-host] [wp-version] [skip-database-creation]
```

Run tests using PHPUnit:

```
vendor/bin/phpunit
```

###  Health Score

34

—

LowBetter than 75% of packages

Maintenance17

Infrequent updates — may be unmaintained

Popularity25

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity68

Established project with proven stability

 Bus Factor1

Top contributor holds 97.1% 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 ~163 days

Recently: every ~243 days

Total

7

Last Release

2264d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/848147?v=4)[Josh Larson](/maintainers/jplhomer)[@jplhomer](https://github.com/jplhomer)

---

Top Contributors

[![jplhomer](https://avatars.githubusercontent.com/u/848147?v=4)](https://github.com/jplhomer "jplhomer (66 commits)")[![ethanclevenger91](https://avatars.githubusercontent.com/u/2623646?v=4)](https://github.com/ethanclevenger91 "ethanclevenger91 (2 commits)")

---

Tags

developer-toolsfluent-interfacewordpress

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/jplhomer-fresa/health.svg)

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

###  Alternatives

[laravel/horizon

Dashboard and code-driven configuration for Laravel queues.

4.1k91.3M283](/packages/laravel-horizon)[spatie/laravel-responsecache

Speed up a Laravel application by caching the entire response

2.8k8.7M64](/packages/spatie-laravel-responsecache)[psalm/plugin-laravel

Psalm plugin for Laravel

3345.1M337](/packages/psalm-plugin-laravel)[flarum/core

Delightfully simple forum software.

201.4M2.2k](/packages/flarum-core)[erlandmuchasaj/laravel-gzip

Gzip your responses.

40140.4k2](/packages/erlandmuchasaj-laravel-gzip)

PHPackages © 2026

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