2015-02-13 48 views
5

मैं सिद्धांत का उपयोग कर एक सिम्फनी 2 प्रोजेक्ट पर काम कर रहा हूं। मैं क्वेरी में कैश जोड़कर एपीआई प्रदर्शन को अनुकूलित करना चाहता हूं।सिम्फनी 2 कैश सिद्धांत क्वेरी परिणाम

मैं जैसे कुछ विकल्प पर ध्यान दिया है:

  • Symfony एनोटेशन कैश
  • सिद्धांत कैश
  • Memcache

सुनिश्चित नहीं हैं कि जो करने के लिए एक के साथ मुझे जाना चाहिए लेकिन मुझे यह करने के लिए ऐसा लगता है कि सिद्धांत स्तर पर कैशिंग डेटा सबसे उपयुक्त होगा।

कह रहा है कि मैं चाहता हूं कि कोई मेरी मदद करे या मुझे मार्गदर्शन करे कि डॉक्टर कैश कैसे स्थापित करें और समझाएं कि यह वास्तव में कैसे काम करता है।

class QueryFactory 

    protected $connect; 

    public function __construct(Connection $connection) 
    { 
     $this->connect = $connection; 
    } 

    private function myQuery() 
    { 
     return $this->connect->createQueryBuilder() 
      ->select('user_id') 
      ->from('users', 'u') 
      ->where('u.user_id = 2'); 
    } 
} 

मैं इस प्रश्न के एक कैश जोड़ना होगा:

यानी मैं इस प्रश्न हैं? क्या कोई सिद्धांत पुस्तकालय है जिसे मुझे use पर किसी भी चीज़ को इंजेक्ट करने की आवश्यकता है? इन तरीकों के बारे में अधिक जानकारी के लिए

private function myQuery() 
{ 
    return $this->connect->createQueryBuilder() 
     ->select('user_id') 
     ->from('users', 'u') 
     ->where('u.user_id = 2') 
     ->getQuery() 
     ->useQueryCache(true) // here 
     ->useResultCache(true); // and here 
} 

चेक doc:

उत्तर

14

doctrine में प्रश्नों कैश करने के लिए या आप निम्न कर सकते परिणाम नहीं। इससे your कैश ड्राइवर काम कर देगा - कोई फर्क नहीं पड़ता कि आप किस ड्राइवर का उपयोग कर रहे हैं।

विशिष्ट क्वेरी ड्राइवर का उपयोग करने के लिए Symfony को कॉन्फ़िगर करने के लिए आपको config.yml में अपनी सेटिंग्स को समायोजित करने की आवश्यकता है - विकल्पों की पूरी सूची देखने के लिए this देखें। क्या आपके कैश में महत्वपूर्ण है (यह apc विन्यास उदाहरण) है:

entity_managers: 
     some_em: 
      query_cache_driver: apc 
      metadata_cache_driver: apc 
      result_cache_driver: apc 

तुम भी सख्ती से dbal सिद्धांत का उपयोग कर रहा this और this ब्लॉग प्रविष्टियों

+0

और अगर जांच करना चाह सकते वहाँ एक रास्ता है ..? thx – Tomazi

+3

मैंने अभी रैलीकृत किया है कि आपने पहले ही एक ही प्रश्न पूछा है http://stackoverflow.com/questions/27899297/caching-doctrine-results-symfony2/27899397#27899397 –

संबंधित मुद्दे