锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲一级毛片在线观,亚洲AV永久无码精品一福利,亚洲一区二区高清http://m.tkk7.com/programmer/category/27885.htmlzh-cnFri, 07 Dec 2007 06:21:31 GMTFri, 07 Dec 2007 06:21:31 GMT60How To: Using symfony to add a join between tableshttp://m.tkk7.com/programmer/archive/2007/12/05/165599.htmlwadewadeWed, 05 Dec 2007 09:26:00 GMThttp://m.tkk7.com/programmer/archive/2007/12/05/165599.htmlhttp://m.tkk7.com/programmer/comments/165599.htmlhttp://m.tkk7.com/programmer/archive/2007/12/05/165599.html#Feedback0http://m.tkk7.com/programmer/comments/commentRss/165599.htmlhttp://m.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://m.tkk7.com/programmer/archive/2007/11/13/165571.htmlwadewadeTue, 13 Nov 2007 09:23:00 GMThttp://m.tkk7.com/programmer/archive/2007/11/13/165571.htmlhttp://m.tkk7.com/programmer/comments/165571.htmlhttp://m.tkk7.com/programmer/archive/2007/11/13/165571.html#Feedback0http://m.tkk7.com/programmer/comments/commentRss/165571.htmlhttp://m.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 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 免费大片在线观看网站| 免费看片在线观看| 免费无码午夜福利片69| 亚洲av无码专区首页| 日本特黄特黄刺激大片免费| 国产一卡2卡3卡4卡2021免费观看 国产一卡2卡3卡4卡无卡免费视频 | 亚洲中文字幕无码一去台湾| 亚洲国产精品白丝在线观看| 亚洲小说区图片区| 亚洲一区中文字幕| 久久亚洲精品国产亚洲老地址| tom影院亚洲国产一区二区| 亚洲fuli在线观看| 亚洲午夜无码久久久久软件| 亚洲一区二区三区在线观看网站| 亚洲欧洲无码一区二区三区| 久久精品亚洲精品国产色婷| 亚洲精品动漫在线| 亚洲伊人久久大香线蕉结合| 亚洲欧洲无码一区二区三区| 色吊丝免费观看网站| 国产亚洲精品影视在线| 亚洲精品天堂在线观看| AV激情亚洲男人的天堂国语| 国产精品亚洲五月天高清| 四虎国产精品永免费| a级在线免费观看| 久久精品无码专区免费东京热| 国产国产人免费视频成69堂| 99在线视频免费观看视频| 男女交性永久免费视频播放 | 两个人看的www免费视频中文| 无码精品一区二区三区免费视频| 13一14周岁毛片免费| 在线精品免费视频无码的| 亚洲电影日韩精品 | 永久免费视频v片www| 亚洲精品无码久久毛片| 久久亚洲国产伦理| 亚洲日本久久一区二区va| 国产亚洲漂亮白嫩美女在线 |