2017 © Pedro PelΓ‘ez
 

library laravel5-nested-caching

Nested Caching для Laravel 5

image

slydeath/laravel5-nested-caching

Nested Caching для Laravel 5

  • Sunday, June 25, 2017
  • by SlyDeath
  • Repository
  • 2 Watchers
  • 1 Stars
  • 126 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 3 Versions
  • 117 % Grown

The README.md

WARNING!!!

This package no longer maintained, please, use https://github.com/SlyDeath/laravel-nested-caching instead, (*1)

Nested Caching для Laravel 5

Latest Stable Version Total Downloads License, (*2)

ВСрсии

ВСрсия 3.* для Laravel 5.8, для 5.6-5.7 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π»ΠΈΠ· 2.*, (*3)

Установка

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ Π² composer.json:, (*4)

composer require slydeath/laravel5-nested-caching

ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ config/app.php ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ сСрвис ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° Π² массив providers:, (*5)

SlyDeath\NestedCaching\NestedCachingServiceProvider::class,

Для размСщСния Ρ„Π°ΠΉΠ»Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ:, (*6)

php artisan vendor:publish --provider="SlyDeath\NestedCaching\NestedCachingServiceProvider" --tag=config

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ кэш-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ тэгированиС - это Memcached ΠΈΠ»ΠΈ Redis., (*7)

Π’ .env Ρ„Π°ΠΉΠ»Π΅ для Memcached ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ:, (*8)

CACHE_DRIVER=memcached

для Redis:, (*9)

CACHE_DRIVER=redis

Π’Π°ΠΊ ΠΆΠ΅ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Redis Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ predis/predis:, (*10)

composer require predis/predis

Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ?

ΠšΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ любого ΠΎΡ‚Ρ€Π΅Π·ΠΊΠ° html

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ любой ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ кусок HTML, Π½ΡƒΠΆΠ½ опросто ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ @cache ΠΊΠ»ΡŽΡ‡ для ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°:, (*11)

@cache('simple-cache')
    <div>Π­Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ кусок HTML ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Ρƒ "simple-cache"</div>
@endcache

ΠšΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² класс ΠΌΠΎΠ΄Π΅Π»ΠΈ, которая Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ, Ρ‚Ρ€Π΅ΠΉΡ‚ NestedCacheable:, (*12)

use SlyDeath\NestedCaching\NestedCacheable;

class User extends Model
{
    use NestedCacheable;
}

Π’ шаблонС, для ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ @cache Π΅Ρ‘ инстанс:, (*13)

@cache($user)
    <div>ΠšΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ App\User:</div>
    <ul>
        <li>Имя: {{ $user->name }}</li>
        <li>Email: {{ $user->email }}</li>
    </ul>
@endcache

ΠšΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π° ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ врСмя

Для ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ΅ врСмя, ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ врСмя ΠΆΠΈΠ·Π½ΠΈ Π² ΠΌΠΈΠ½ΡƒΡ‚Π°Ρ…:, (*14)

html @cache($user, 1440) <div>...</div> @endcache, (*15)

ОбновлСниС "родитСля"

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ Ρ‚Π°ΠΊ ΠΆΠ΅ сбрасывался кэш "ΠΌΠΎΠ΄Π΅Π»ΠΈ-родитСля", Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ ΠΏΠΎΠ»Π΅ updated_at Ρƒ ΠΌΠΎΠ΄Π΅Π»ΠΈ-родитСля:, (*16)

use SlyDeath\NestedCaching\NestedCacheable;

class CarUser extends Model
{
    use NestedCacheable;

    protected $touches = ['user']; // Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ родитСля

    public function user()
    {
        return $this->belongsTo(User::class);
    }
}

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования:, (*17)

resources/views/user.blade.php, (*18)

@cache($user)
    <section>
        <h2>Автомобили ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ {{ $user->name }}</h2>
        <ul>
            @foreach($user->cars as $car)
                @include('user-car');
            @endforeach
        </ul>
    </section>
@endcache

resources/views/user-car.blade.php, (*19)

@cache($car)
    <li>{{ $car->brand }}</li>
@endcache

ΠšΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ:, (*20)

@cache($users)

    @foreach ($users as $user)
        @include('user');
    @endforeach

@endcache

The Versions

25/06 2017

dev-master

9999999-dev

Nested Caching для Laravel 5

  Sources   Download

MIT

The Requires

 

by Avatar SlyDeath

25/06 2017

1.2

1.2.0.0

Nested Caching для Laravel 5

  Sources   Download

MIT

The Requires

 

by Avatar SlyDeath

07/03 2017

v1.1

1.1.0.0

Nested Caching для Laravel 5

  Sources   Download

MIT

The Requires

 

by Avatar SlyDeath