Autowiring μια TagAwareCache και ενέσιμη σε λειτουργία

ψήφοι
0

Θέλω να ρυθμίσετε μια TagAwareCache με APCU backend. Το αποτέλεσμα θα πρέπει να ενίεται σε μια υπηρεσία.

Γι 'αυτό και έχει αυτό το config.yml:

cache:
    pools:
        data_evaluator_cache_items_cache: # apcu backend
            adapter: cache.adapter.apcu
            public: true

data_evaluator_cache:
    class: Symfony\Component\Cache\Adapter\TagAwareAdapter
    arguments:
        $itemsPool: @data_evaluator_cache_items_cache
    public: true

AppBundle\Service\DataEvaluator:
    alias: data_evaluator
    arguments:
        $cache: @data_evaluator_cache

data_evaluator:
    class: AppBundle\Service\DataEvaluator
    public: true
    arguments:
        $cache: @data_evaluator_cache

Η υπηρεσία μοιάζει με αυτό:

class DataEvaluator {
    public function __construct(Logger $l, AdapterInterface $cache) {
    }
} 

Από ό, τι έχω δοκιμαστεί, η ένεση $cacheείναι πράγματι TagAwareAdapter, έτσι ώστε να είναι μια χαρά.

Ωστόσο, αμφιβάλλω ότι η εσωτερική μνήμη cache στοιχείο που δίνεται η TagAwareCacheείναι μια προσωρινή μνήμη apcu. Τα στοιχεία είναι ωραία, αυτά είναι τα ετικέτες μου.

Εδώ είναι δύο στιγμιότυπα από τη γραμμή εργαλείων web. Στην πρώτη, βλέπω ότι data_evaluator_cache_items_cacheχρησιμοποιείται για το μου αντικείμενα της μνήμης cache / ωφέλιμα φορτία. εισάγετε

Το επόμενο στιγμιότυπο με κάνει νευρικό: cache.appχρησιμοποιείται για τις ετικέτες! Και cache.appεπιλύει σε FilesystemCache.

εισάγετε

BTW: Είναι μια καλή ιδέα να χρησιμοποιήσετε APCU για τα είδη και τις ετικέτες; Δεν χρειάζεται διανεμηθεί προσωρινής αποθήκευσης ή έτσι. Άκουσα ότι η σύγχρονη PhpFilesCache είναι ένα καλό πράγμα δεδομένου ότι PHP7 / opcache. Πιστεύει κανείς να έχει πρακτική εμπειρία;

Δημοσιεύθηκε 08/11/2018 στις 00:09
πηγή χρήστη
Σε άλλες γλώσσες...                            


1 απαντήσεις

ψήφοι
0

Μου έλυσε: Δυστυχώς ένα μικρό σφάλμα στα έγγραφα symfony . Αυτό λειτουργεί:

cache:
    pools:
        data_evaluator_cache_items_cache:
            adapter: cache.adapter.apcu
            public: true
        data_evaluator_cache_tags_cache:
            adapter: cache.adapter.apcu
            public: true

data_evaluator_cache:
    class: Symfony\Component\Cache\Adapter\TagAwareAdapter
    arguments:
        $itemsPool: "@data_evaluator_cache_items_cache"
        $tagsPool: "@data_evaluator_cache_tags_cache"
    public: true
Απαντήθηκε 08/11/2018 στις 00:45
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more