рдЯреИрдЧ рдХреИрд╢рд┐рдВрдЧ рдПрдХ рдЙрдкрдХрд░рдг рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдХреБрдЫ рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рдмрджрд▓рдиреЗ рдкрд░ рдХреИрд╢-рджрд░-рдмрд┐рдВрджреБ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, Yii рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ ActiveRecord рдореЗрдВ рдЗрд╕ рдЙрдкрдХрд░рдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рдорд╛рдирд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рд╣реЛрдЧрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЙрдиреНрд╣реЛрдВрдиреЗ рд╣рдореЗрдВ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рджрд┐рдпрд╛ред
рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдореЙрдбрд▓ рдХреЛ рдЯреИрдЧ рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА
habrahabr.ru/post/159079 рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИ рд▓реЗрдЦрдХ рдХреЛ рд╡рд┐рд╢реЗрд╖ рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рдЗрд╕реЗ рдПрдХ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛, рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЯреИрдЧ рдкреАрдврд╝реА рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рдЬреЛрдбрд╝реВрдВрдЧрд╛ред
рд╣рдо рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдореЗрдВ рд╣рд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд┐рдпрдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЯреИрдЧ рдкреАрдврд╝реАред (рдорд╛рдирдХреАрдХрд░рдг)
рдЪреВрдВрдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЗрдХрд╛рдЗрдпрд╛рдБ рд╣реИрдВ, рдФрд░ рдХрдиреЗрдХреНрдЯрд┐рдВрдЧ рдХреБрдВрдЬрд┐рдпрд╛рдБ рдХреБрдЫ рдорд╛рдирдХреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдмрдирддреА рд╣реИрдВ, рд╣рдореЗрдВ рдХреЙрд▓рдо рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреИрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рдирдХреЗ рдирд╛рдо рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ user_id рдлрд╝реАрд▓реНрдб рд╣реИ, рдФрд░ рджреВрд╕рд░реЗ рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ customer_id рдлрд╝реАрд▓реНрдб рд╣реИ, рджреЛрдиреЛрдВ рдХреЙрд▓рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдХрд╛рдИ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рддрд░реНрдХрд╕рдВрдЧрдд рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╣реА рдЯреИрдЧ - user_id рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЯреИрдЧ рдкреАрдврд╝реА
CActiveRecord рдореЗрдВ рдХреБрдЫ рддрд░реАрдХреЛрдВ рдХреЛ рдЕрддреНрдпрдзрд┐рдХ рдЕрдзрд┐рднрд╛рд░рд┐рдд рдХрд░реЗрдВред
рдЯреИрдЧ рд░рд┐рд╢реНрддреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрдм рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдХрдИ рдореЙрдбрд▓ рд▓рд╛рдиреЗ рдФрд░ рдорд╛рд╕реНрдЯрд░ рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдореЙрдбрд▓ рд▓рд╛рдиреЗ (рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдорд╛рд╕реНрдЯрд░ рдХреБрдВрдЬреА рд╕рдордЧреНрд░ рд╣реЛ рд╕рдХрддреА рд╣реИ)
рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЯреИрдЧ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреНрд╖рдорддрд╛
рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рд╣рдо рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЕрдзрд┐рдХрддрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдлрд┐рд░ рднреА, рдРрд╕реА рдкрд░реНрдпрд╛рдкреНрдд рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рд╣реИрдВ рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЯреИрдЧ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдПрдХ рдореЙрдбрд▓ рдПрдХ рдЬрдЯрд┐рд▓ рдХреНрд╡реЗрд░реА (CDbCriteria рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рдХрд╛ рдирдореВрдирд╛ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо CDbCriteria рд╡рд░реНрдЧ рдХреЛ $ рдЯреИрдЧ рдХреА рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рдЬреЛрдбрд╝рдХрд░ рдЙрд╕рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕рд╕реЗ рдЯреИрдЧ рдЬрдирд░реЗрдЯрд░ рд╕рдордЭ рдЬрд╛рдПрдЧрд╛ рдХрд┐ "рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ" рдЬреЛрдбрд╝реЗ рдЧрдП рдЯреИрдЧ рд╣реИрдВред
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди:
рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рд╣рдореЗрдВ рдорд╛рдирдХреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред
рдЕрдЧрд▓реА рд╕рдорд╕реНрдпрд╛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореЙрдбрд▓ рдХреЛ рдмрджрд▓рддреЗ рд╕рдордп рдХрд┐рд╕ рдЯреИрдЧ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдкрдврд╝рддреЗ рд╕рдордп, рд╣рдо рдЙрди рд╕рднреА рдЯреИрдЧреЛрдВ рдХреЛ рдмрдирд╛рддреЗ / рдЬрд╛рдВрдЪрддреЗ рд╣реИрдВ рдЬрд┐рди рдкрд░ рдореЙрдбрд▓ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп, рд╣рдореЗрдВ рдХреЗрд╡рд▓ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЯреИрдЧ рд╣рдЯрд╛рдиреЗ рд╣реЛрдВрдЧреЗред рдЖрдк рдЙрди рдЯреИрдЧ рдХреЛ рдирд╣реАрдВ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рди рдкрд░ рдЕрдиреНрдп рдореЙрдбрд▓ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реИрдВред
рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореБрдЭреЗ рдирд┐рдпрдореЛрдВ рдХреЛ рджреЛ рд╕рдореВрд╣реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬреЛ рдХрд┐ рдкрдврд╝рдиреЗ рдФрд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИрдВред рдпрд╣ рд╣рдореЗрдВ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдкрдврд╝рддреЗ рд╕рдордп рдХреМрди рд╕реЗ рдЯреИрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЬрд┐рд╕реЗ рд▓рд┐рдЦрддреЗ рд╕рдордп рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдЖрдкрдХреЛ рдЗрди рдмрд┐рдВрджреБрдУрдВ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рд╣рдо рдХреИрд╢рдЯреИрдЧреНрд╕ рдореЙрдбрд▓ рд╡рд┐рдзрд┐ ($ рдореЛрдб = 'рдкрдврд╝рд╛') рдореЗрдВ рдирд┐рдпрдореЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдВрдЧреЗред рдЬрд┐рд╕реЗ рдПрдХ рдРрд░реЗ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдпрджрд┐ рдХреИрд╢рдЯреИрдЧ рдХреЛ рдореЙрдбрд▓ рдореЗрдВ рдШреЛрд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдЦрд╛рд▓реА рд╕рд░рдгреА рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рддреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХреИрд╢рд┐рдВрдЧ рд╕рдХреНрд░рд┐рдп рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдкреНрд░рддреНрдпреЗрдХ рдЯреИрдЧ рдореЗрдВ рдПрдХ рдЙрдкрд╕рд░реНрдЧ рд╣реЛрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рдореЙрдбрд▓ рдХрд╛ рдирд╛рдо рдирд┐рдЪрд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣реЛрдЧрд╛, рдЕрд░реНрдерд╛рдд user_id рдпреВрдЬрд░ рдореЙрдбрд▓ рдореЗрдВ рдЖрдИрдбреА рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЗ рд▓рд┐рдП рдЯреИрдЧ рд╣реИред
рдЖрдЧреЗ рдЬрд╛рдХрд░ рдореИрдВ рдХрд╣рддрд╛ рд╣реВрдВ рдХрд┐, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рджреМрд░рд╛рди, рдореБрдЭреЗ рдХрдИ рдкреНрд░рдХрд╛рд░ рдХреЗ рдирд┐рдпрдореЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдерд╛:
- рд╕реНрдерд┐рд░
- рд╕реНрдерд┐рд░
- рд▓рд┐рдВрдХ
- рд╕рдордЧреНрд░
рд╕реНрдЯреЗрдЯрд┐рдХ - рд╕рд░рдгреА рдХрд╛ рдПрдХ рд░реИрдЦрд┐рдХ рддрддреНрд╡, рдЬрд┐рд╕рдХрд╛ рдореВрд▓реНрдп рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдХрд┐рд╕реА рднреА рд╕реНрддрдВрдн рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред рдЯреИрдЧ рдореЗрдВ рдПрдХ рдЙрдкрд╕рд░реНрдЧ рдФрд░ рдирд┐рдпрдо рдХрд╛ рд╡рд░реНрддрдорд╛рди рдирд╛рдо рд╢рд╛рдорд┐рд▓ рд╣реЛрдЧрд╛ред
рд▓рдЧрд╛рддрд╛рд░ - рдкреНрд░рдореБрдЦ рдЪрд░рд┐рддреНрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдореВрд▓реНрдп ':', рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЯреИрдЧ рдирд╛рдо рдХреЗ рдмрдЬрд╛рдп, рдЪрд░рд┐рддреНрд░ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рдмрд╛рдж рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛: ':'ред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдЯреИрдЧ рдирд╛рдо рдореЗрдВ рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдЙрдкрд╕рд░реНрдЧ рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред
рдПрдХ рд▓рд┐рдВрдХ рдПрдХ рд╕рд░рдгреА рдХрд╛ рдПрдХ рд╕рд╣рдпреЛрдЧреА рддрддреНрд╡ рд╣реИ рдЬрд┐рд╕рдХреА рдХреБрдВрдЬреА рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рд╕реНрддрдВрдн рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ; рдЯреИрдЧ рдХрд╛ рдирд╛рдо рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдо рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдирд┐рдпрдо рдХреЗ рдореВрд▓реНрдп рдХреЛ рдЕрдиреНрдп рдирд┐рдпрдореЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд░рдЪрдирд╛ рдирд┐рдпрдореЛрдВ рдХрд╛ рдПрдХ рд╕рд░рдгреА рд╣реИред рд╕рдВрдмрдВрдзрд┐рдд рд╕рдордЧреНрд░ рдЯреИрдЧ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдПрдХ рдЙрджрд╛рд╣рд░рдг:
public function cacheTags($mode='read'){ switch ($mode) { case 'read': return array( 'id',
рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдореЙрдбрд▓ рдЖрдИрдбреА, user_id, рд╕рдордЧреНрд░, рдЖрдИрдбреА рдФрд░ user_email рд╕реЗ рдорд┐рд▓рдХрд░ рдЯреИрдЧ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рдХреЗрд╡рд▓ рдЖрдИрдбреА рдФрд░ рд╕рдордЧреНрд░ рдЯреИрдЧ рд╣рдЯрд╛ рджрд┐рдП рдЬрд╛рдПрдВрдЧреЗред рдЗрд╕ рдкреНрд░рдХрд╛рд░, user_id рдЯреИрдЧ рдЕрдЫреВрддрд╛ рд░рд╣реЗрдЧрд╛ рдФрд░ рдЙрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдЕрдиреНрдп рдореЙрдбрд▓ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред
рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдХреЛ рдПрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ github:
github.com/yiix/Cache рдкрд░ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд▓рд┐рдП, рдЖрдк рд╕рдВрдЧреАрддрдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдХреЗрд╡рд▓ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдореЙрдбрд▓ рдХреЛ \ Yiix \ Cache \ Tagging \ CActiveRecord рд╡рд░реНрдЧ рдЗрдирд╣реЗрд░рд┐рдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЯреИрдЧ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рдирд┐рдпрдореЛрдВ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдкреНрд░рддреНрдпреЗрдХ рдореЙрдбрд▓ рдореЗрдВ рдХреИрд╢рдЯреИрдЧ рд╡рд┐рдзрд┐ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рди рднреВрд▓реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╕рднреА рд╕реНрд╡рдЪрд╛рд▓рди рдЗрд╕рдореЗрдВ рд╣реИрдВред
рдореБрдЭреЗ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ рдХреЛрдб рдХреЗ рд╕рд╛рде рдкреЛрд╕реНрдЯ рдХреЛ рдЕрд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХрд╛рд░рдг рдирд╣реАрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ, рдореИрдВ рдХреЗрд╡рд▓ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рджреЗрдЧрд╛ред
рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рдХреЛрдб рд╕реАрдзреЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рдиреЗ рдЪрд╛рд╣рд┐рдПред рдореИрдВ рдЙрдиреНрд╣реЗрдВ Yiix / Cache / Tagging / CActiveRecord рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд рддрдХрдиреАрдХ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрджреНрдзреГрдд рдХрд░рддрд╛ рд╣реВрдВред
рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЙрдбрд▓ рд╣реИрдВ:
class User extends \Yiix\Cache\Tagged\CActiveRecord { ... public function cacheTags($mode = 'read') { switch ($mode) { case 'write': return array( 'id','email','username'=>':user_name', array('id','email') ); break; case 'read': return array( 'id','email','username'=>':user_name', array('id','email') ); default: break; } } ... } class Post extends \Yiix\Cache\Tagged\CActiveRecord { ... public function cacheTags($mode = 'read') { switch ($mode) { case 'write': return array( 'id', ); break; case 'read': return array( 'id', 'authorId'=>':user_id', ); default: break; } } ... } class Tag extends \Yiix\Cache\Tagged\CActiveRecord { ... public function cacheTags($mode = 'read') { switch ($mode) { case 'write': return array( 'id', 'name', ); break; case 'read': return array( 'id', 'name', ); default: break; } } ... }
рдпрд╣ рддрд░реНрдХрд╕рдВрдЧрдд рд╣реИ рдХрд┐ рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЧреБрдгреЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдореЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред
рдЙрджрд╛рд╣рд░рдг 1
рдЯреИрдЧ рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
$model = User::model()->findByPk(1); $tags = \Yiix\Cache\Tagged\Helper::generateTags($model); dump($tags);
рдкрд░рд┐рдгрд╛рдо:
array ( 0 => 'user_id=1' )
рдЙрджрд╛рд╣рд░рдг 2
рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рджреНрд╡рд╛рд░рд╛ рдЯреИрдЧ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред
$tags = \Yiix\Cache\Tagged\Helper::generateTags(User::model(),array( 'id'=>'1', 'email'=>'webmaster@example.com', 'username'=>'demo' )); dump($tags);
рдкрд░рд┐рдгрд╛рдо:
array ( 0 => 'user_id=1' 1 => 'user_email=webmaster@example.com' 2 => 'user_name=demo', 3 => 'user:user_id=1,user_email=webmaster@example.com' )
рдирддреАрдЬрддрди, рдПрдХ рд╕рдордЧреНрд░ рдирд┐рдпрдо рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдПрдХ рдЯреИрдЧ (рд╕реВрдЪрдХрд╛рдВрдХ 3 рдХреЗ рд╕рд╛рде рд╕рд░рдгреА рддрддреНрд╡) рд╣реИред
рдЙрджрд╛рд╣рд░рдг 3
рдЙрджрд╛рд╣рд░рдг рдХреЗ рддреМрд░ рдкрд░ реиред
$tags = \Yiix\Cache\Tagged\Helper::generateTags($Tag::model(),array('name'=>'blog')); dump($tags);
рдкрд░рд┐рдгрд╛рдо:
array ( 0 => 'tag_name=blog' )
рдЙрджрд╛рд╣рд░рдг 4
рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЯреИрдЧ рдЬреЛрдбрд╝рдирд╛ред
$criteria = new \Yiix\Cache\Tagged\CDbCriteria(); $criteria->addInCondition('authorId', array('1','2')); $criteria->tags = array( 'authorId'=>array('1','2'), ); $tags = \Yiix\Cache\Tagged\Helper::generateTags(Post::model(),$criteria); dump($tags);
рдкрд░рд┐рдгрд╛рдо:
array ( 0 => 'user_id=1' 1 => 'user_id=2' )
рдпрд╣рд╛рдВ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ "рд▓рд┐рдВрдХ" рдирд┐рдпрдо рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЯреИрдЧ рдирд╛рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдХрд╛рдИ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИрдВ
рдкреБрд╕реНрддрдХрд╛рд▓рдп рдПрдХ рдирд╛рдо рд╕реНрдерд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред Namespace рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЬрд╛рдирдХрд╛рд░реА рдпрд╣рд╛рдБ рд╡рд░реНрдгрд┐рдд рд╣реИ:
yiiframework.ru/doc/guide/ru/basics.namespaceрдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред