[pLog-svn] r2815 - plog/trunk/class/dao

Oscar Renalias oscar at renalias.net
Wed Jan 18 07:34:55 GMT 2006


The identifiers below are used to identify caches. Each cache has a
name and a key, so in the case of categories we've got three caches:

- CACHE_ARTICLE_CATEGORIES_BLOG: Caches all the categories of a given
blog. The key is the blog id.
- CACHE_ARTICLE_CATEGORIES_LINK: Caches the
plog_articles_categories_link table, that is, the m:n relationship
between articles and categories. The key is the article id.
- CACHE_ARTICLE_CATEGORIES_BYNAME: Caches categories given their
"mangled name" so that loading of categories when using custom URLs is
faster.

When you for example update a category, you need to make sure that you
reset all the relevant caches (or all of them) using the right key. So
if you notice that I forgot to do that in
ArticleCategories::deleteCategory(), not only do you need to reset
CACHE_ARTICLE_CATEGORIES_BLOG but also the other two:

$this->_cache->removeData( $category->getMangledName(),
CACHE_ARTICLE_CATEGORIES_BYNAME );

Now we also need to think about how to reset
CACHE_ARTICLE_CATEGORIES_LINK because we need to know all the articles
that reference this category... If it's too difficult, we can remove
this cache altogether :)

Oscar


On 1/18/06, Mark Wu <markplace at gmail.com> wrote:
> Hi Oscar;
>
> It seems I already fixed the deleteCategory, but I still confuse.
>
> There are three cache id in that DAO:
>
> CACHE_ARTICLE_CATEGORIES_BYNAME
> CACHE_ARTICLE_CATEGORIES_BLOG
> CACHE_ARTICLE_CATEGORIES_LINK
>
> In this revision, I just remove the data from the cache gropu
> CACHE_ARTICLE_CATEGORIES_BLOG. Will the dirty data (deleted category)
> remaining in the other 2 groups? Do I need to worry about that?
>
> Mark
>
> > -----Original Message-----
> > From: plog-svn-bounces at devel.lifetype.net
> > [mailto:plog-svn-bounces at devel.lifetype.net] On Behalf Of
> > mark at devel.lifetype.net
> > Sent: Wednesday, January 18, 2006 12:12 PM
> > To: plog-svn at devel.lifetype.net
> > Subject: [pLog-svn] r2815 - plog/trunk/class/dao
> >
> > Author: mark
> > Date: 2006-01-18 04:11:53 +0000 (Wed, 18 Jan 2006) New Revision: 2815
> >
> > Modified:
> >    plog/trunk/class/dao/articlecategories.class.php
> > Log:
> > Now the deleteCategory works better.
> >
> > Modified: plog/trunk/class/dao/articlecategories.class.php
> > ===================================================================
> > --- plog/trunk/class/dao/articlecategories.class.php
> > 2006-01-18 03:48:40 UTC (rev 2814)
> > +++ plog/trunk/class/dao/articlecategories.class.php
> > 2006-01-18 04:11:53 UTC (rev 2815)
> > @@ -214,8 +214,11 @@
> >          function deleteCategory( $categoryId, $blogId )
> >          {
> >               $category = $this->getCategory( $categoryId, $blogId );
> > -             if( $category )
> > -                     return( $this->delete( "id", $categoryId ));
> > +             if( $category ) {
> > +                             if ( $this->delete( "id",
> > $categoryId ) )
> > +
> > $this->_cache->removeData( $blogId,
> > CACHE_ARTICLE_CATEGORIES_BLOG );
> > +                     return( true );
> > +             }
> >               else
> >                       return( false );
> >          }
> >
> > _______________________________________________
> > pLog-svn mailing list
> > pLog-svn at devel.lifetype.net
> > http://devel.lifetype.net/mailman/listinfo/plog-svn
>
> _______________________________________________
> pLog-svn mailing list
> pLog-svn at devel.lifetype.net
> http://devel.lifetype.net/mailman/listinfo/plog-svn
>


More information about the pLog-svn mailing list