定制 beep/cachoid 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

beep/cachoid

Composer 安装命令:

composer require beep/cachoid

包简介

Cachoid provides an expressive API for caching models, collections, and paginators.

README 文档

README

Cachoid provides an expressive API for caching models, collections, and paginators, utilizing the Laravel Taggable Cache Stores.

Documentation is currently under work.

Installation

First, install Cachoid via the Composer Package manager:

composer require beep/cachoid

Next, you should add the CachoidServiceProvider to the providers array of your config/app.php configuration file:

\Beep\Cachoid\CachoidServiceProvider::class,

If Cachoid facade usage is preferred, add to the aliases array of your config/app.php:

'Cachoid' => Beep\Cachoid\Facade::class,

Finally, add the Beep\Cachoid\Cacheable trait to the model you would like to make cacheable. This trait will register a model observer to keep the model synchronized with Cachoid:

<?php

namespace App;

use Beep\Cachoid\Cacheable;
use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    use Cacheable;
}

Configuration

Configuring Model Identifiers

By default, each Eloquent model is synced by its model identifier, and through the Cache driver. If you would like to customize the identifier, you may override the cacheableAs method on the Model.

<?php

namespace App;

use Beep\Cachoid\Cacheable;
use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    use Cacheable;

    /**
     * Get the identifier to cache as.
     *
     * @return mixed
     */
    public function cacheableAs()
    {
        return $this->getKey();
    }
}

Eloquent Models

Retrieving Models by Identifier

remember allows us to easily cache an Eloquent model. When a record is fresh, it will instead retrieve it:

$user = $cachoid->eloquent()->withName(User::class)->identifiedBy(1)->remember(15, function () {
    return User::find(1);
});

Or more simply put:

$user = $cachoid->eloquent(User::class, 1)->remember(15, function () {
    return User::find(1);
});

Paginators

remember and rememberForever allow us to easily cache an entire paginator of data (e.g. Eloquent Models). When models are within the paginator, they are uniquely tagged with a lowercase, snake cased name of the class hyphenated with the identifer.

$paginator = $cachoid->paginator(User::class)->remember(15, function () {
    return User::paginate();
});

The remember method will cache the paginator unless it already exists in the cache.

Of course, you may add uniqueness such as the page and results per page.

$paginator = $cachoid->paginator(User::class)->onPage(1)->showing(15)->remember(15, function () {
    return User::paginate();
});

Or more simply put...

$paginator = $cachoid->paginator(User::class, 15, 1)->remember(15, function () {
    return User::paginate();
});

Collections

Section ToDo

ToDo

  • Documentation clean-up.
  • An extensive set of tests, with Mockery, and a build-up of the SQLite "feature" tests (such as ModelObserverTest)
  • Current page resolution for the PaginatorAdapter.

统计信息

  • 总下载量: 77
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 4
  • 点击次数: 9
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 4
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2017-07-11

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固