锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲国语在线视频手机在线,亚洲中文字幕无码爆乳,亚洲欧洲自拍拍偷午夜色无码http://www.tkk7.com/programmer/category/27883.htmlzh-cnFri, 07 Dec 2007 06:21:09 GMTFri, 07 Dec 2007 06:21:09 GMT60How To: Using symfony to add a join between tableshttp://www.tkk7.com/programmer/archive/2007/12/05/165599.htmlwadewadeWed, 05 Dec 2007 09:26:00 GMThttp://www.tkk7.com/programmer/archive/2007/12/05/165599.htmlhttp://www.tkk7.com/programmer/comments/165599.htmlhttp://www.tkk7.com/programmer/archive/2007/12/05/165599.html#Feedback0http://www.tkk7.com/programmer/comments/commentRss/165599.htmlhttp://www.tkk7.com/programmer/services/trackbacks/165599.html1. simple join two tables

purpose:
generate sql like:   

select * from photo p
    left join artist a on p.artist_id = a.artist_id
      where a.genre = 'something' and p.genre = 'something'

code:           

if(!CriteriaUtil::hasJoin($criteria, ArtistPeer::TABLE_NAME)){
    $criteria->addJoin(PhotoPeer::ARTIST_ID, ArtistPeer::ARTIST_ID, Criteria::LEFT_JOIN);
}
$criteria->add(ArtistPeer::GENRE, $genre);    
$criteria->add(PhotoPeer::GENRE, $genre);

2. join two tables, add AND OR between conditions
purpose:
generate sql like:    

select * from photo p
    left join artist a on p.artist_id = a.artist_id
      where (a.genre = 'some' or p.genre='something')
        and a.name = 'something'

code:   

if(!CriteriaUtil::hasJoin($criteria, ArtistPeer::TABLE_NAME)){
   $criteria->addJoin(PhotoPeer::ARTIST_ID, ArtistPeer::ARTIST_ID, Criteria::LEFT_JOIN);
}
$criteria->add(ArtistPeer::GENRE, $genre);
$c = $criteria->getCriterion(ArtistPeer::GENRE);
if($c != null){
   $c->addOr($criteria->getNewCriterion(PhotoPeer::GENRE, $genre));
}
$criteria->add(ArtistPeer::NAME, $name);

 

Note:
It's a good habit to check if we have joined the table already. to check this, you can use the following util class, it get all the joined tables, and check if the table exists in them.

class CriteriaUtil{
    public static function hasJoin($c, $table_name){
        $joins = $c->getJoins();
        if($joins != null){
            foreach($joins as $join){
                if($join->getRightTableName() == $table_name){
                    return true;
                }
                if($join->getLeftTableName() == $table_name){
                    return true;
                }
            }
        }
        return false;
    }
}


wade 2007-12-05 17:26 鍙戣〃璇勮
]]>
How To: Clear cache for symfonyhttp://www.tkk7.com/programmer/archive/2007/11/13/165571.htmlwadewadeTue, 13 Nov 2007 09:23:00 GMThttp://www.tkk7.com/programmer/archive/2007/11/13/165571.htmlhttp://www.tkk7.com/programmer/comments/165571.htmlhttp://www.tkk7.com/programmer/archive/2007/11/13/165571.html#Feedback0http://www.tkk7.com/programmer/comments/commentRss/165571.htmlhttp://www.tkk7.com/programmer/services/trackbacks/165571.htmlOriginal article: http://www.symfony-project.com/book/1_0/18-Performance

Clearing Selective Parts of the Cache

During application development, you have to clear the cache in various situations:

  • When you create a new class: Adding a class to an autoloading directory (one of the project's lib/ folders) is not enough to have symfony find it automatically. You must clear the autoloading configuration cache so that symfony browses again all the directories of the autoload.yml file and references the location of autoloadable classes--including the new ones.
  • When you change the configuration in production: The configuration is parsed only during the first request in production. Further requests use the cached version instead. So a change in the configuration in the production environment (or any environment where SF_DEBUG is turned off) doesn't take effect until you clear the cached version of the file.
  • When you modify a template in an environment where the template cache is enabled: The valid cached templates are always used instead of existing templates in production, so a template change is ignored until the template cache is cleared or outdated.
  • When you update an application with the sync command: This case usually covers the three previous modifications.

The problem with clearing the whole cache is that the next request will take quite long to process, because the configuration cache needs to be regenerated. Besides, the templates that were not modified will be cleared from the cache as well, losing the benefit of previous requests.

That means it's a good idea to clear only the cache files that really need to be regenerated. Use the options of the clear-cache task to define a subset of cache files to clear, as demonstrated in Listing 18-14.

Listing 18-14 - Clearing Only Selective Parts of the Cache

// Clear only the cache of the myapp application
> symfony clear-cache myapp

// Clear only the HTML cache of the myapp application
> symfony clear-cache myapp template

// Clear only the configuration cache of the myapp application
> symfony clear-cache myapp config

You can also remove files by hand in the cache/ directory, or clear template cache files selectively from the action with the $cacheManager->remove() method, as described inChapter 12

 

Note:

1. We can use $cacheManager->remove() to clear cache after we deployed a new version product.

2. write code to generate models from database, and then call $cacheManager->remove() to clear cache.


 


wade 2007-11-13 17:23 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 久久国产乱子伦精品免费一| 亚洲精选在线观看| 免费无码又爽又刺激高潮| 免费日韩在线视频| 亚洲av之男人的天堂网站| 亚洲成人一级电影| 无遮挡呻吟娇喘视频免费播放| 波多野结衣免费一区视频 | 亚洲国产精品久久久久秋霞小| 日韩大片在线永久免费观看网站| 国产精品免费视频播放器| 久久国产亚洲电影天堂| 亚洲av无码成人精品区一本二本| 国产成年无码久久久免费| 亚洲av无码国产精品色午夜字幕 | 亚洲免费电影网站| 国产成人无码精品久久久免费 | 日韩免费无码一区二区三区| 免费乱码中文字幕网站| 亚洲国产精品美女| 女人被免费视频网站| 亚洲黄色网址在线观看| 中文字幕无码毛片免费看| 亚洲AV无码一区二区三区国产| 亚洲国产精品久久久久秋霞影院| 美女视频黄的全免费视频网站| 亚洲电影一区二区| 国产日本一线在线观看免费| 亚洲成a人无码亚洲成www牛牛 | 嫩草成人永久免费观看| 亚洲国产美女视频| 国产一级特黄高清免费大片| 男女一进一出抽搐免费视频| 久操视频免费观看| 亚洲乱码在线观看| 亚洲精品视频免费在线观看| 亚洲av片劲爆在线观看| 成年人网站在线免费观看| 亚洲大成色www永久网址| 亚洲免费日韩无码系列| 色婷婷精品免费视频|