• 新闻中心
  • 您的位置:首页 > 新闻中心 > 网站建设知识
  • 合肥网站建设教您:如何简单的几步让你的代码运行在SAE上

    日期:2013-9-10 | 浏览:5253次

    一 没有写权限

    我的框架放上SAE遇上的第一个问题就是没有写权限,自己弄的各种缓存,smarty,图片处理…全部杯具…

    1.解决smarty

    他的解决方案四处都是,说来说去就是将缓存设置在memcache里就OK了

     

    PHP代码
    "Calibri">$this -> template_dir = mioCfg_tplURL;
    if(mioCfg_MioSae == true){
    $this -> compile_dir = 'saemc://smarty_c/';
    $this -> cache_dir = 'saemc://smarty_cache/';
    } else {
    $this -> compile_dir = mioCfg_tplURL.'temp/smarty_c/';
    $this -> cache_dir = mioCfg_tplURL.'temp/smarty_cache/';
    }
     

    2.解决数据库表缓存和其他缓存

    解决方案仍然很简单,不写在目录里,写memcache,既简单又效率!

     

    PHP代码
    "Calibri">foreach($arr as $val){
    $files[]=$val['Field'];
    if($val['Key']=='PRI')
    $files['_pk']=$val['Field'];
    if($val['Extra']=='auto_increment')
    $files['_auto']=$val['Field'];
    }
    if(mioCfg_MioSae){
    $table = md5($this->baseName.'_'.$this->table);
    _saemem::set($table, var_export($files,true));
    } else {
    $string="<?php \n return ".var_export($files,true)."\n?>";
    //写入数据表缓存
    file_put_contents($this->cacheURL,$string);
    }
     

    3.解决图像处理中需要写文件的问题

     

    SAE给我们提供了一个临时目录供我们临时存放文件,当确定要永久保存一个文件时,我们可以使用storage简单高效的保存文件,连文件上传类都省了,呵呵
     

     

    PHP代码
    "Calibri">$r = saeSave::up( SAE_TMP_PATH.'/'.$filename, './drcode_cache/'.$filename);
    if(emptyempty($r))
    _err::show('图片写入失败', 'r=false');
    }
    $fileUrl = saeSave::getURL('./drcode_cache/'.$filename);
     

     

    二 发邮件,计划任务等问题

    其实SAE都为我们想到了,在SAE上干这些事,比原来更简单

    如计划任务:

    - description: haha

    url: test/1.php

    schedule: */10 * * * *

    三 saetv2.ex.class.php的问题

    如果你也爱写微博小应用,有一点需要注意…

    SAE为我们准备好了saetv2.ex.class.php,所以你new出来的weibo类,并不是你自己辛辛苦苦敲出来的weibo类哦!


    如果你想使用自己的saetv2.ex.class.php该怎么办呢?很简单改掉类名就OK了

    分享个我自己的saetv2.ex.class.php吧~,跟google上面的相比多了如下功能:

    (一些功能虽然实现但未测试哈,不好使请自己修改 别说我忽悠你 )

     

    新增


    friends_timeline_ids() statuses/friends_timeline/ids 获取当前登录用户及其所关注用户的最新微博的ID
    get_user_timeline_ids_by_id() statuses/user_timeline/ids 根据uid获取用户发布的微博的ID
    get_user_timeline_ids_by_name()  statuses/user_timeline/ids 根据昵称获取用户发布的微博的ID
    repost_timeline_ids() statuses/repost_timeline/ids 获取一条原创微博的最新转发微博的ID
    mentions_ids() statuses/mentions/ids 获取@当前用户的最新微博的ID
    bilateral_timeline() statuses/bilateral_timeline 获取双向关注用户的最新微博
    statuses_count() statuses/count 批量获取指定微博的转发数评论数
    statuses_go() statuses/go 根据ID跳转到单条微博页
    user_count() users/counts 批量获取用户的粉丝数、关注数、微博数
    users_show_rank() users/show_rank 获取用户等级信息
    favorites_ids() favorites/ids 获取当前用户的收藏列表的ID
    favorites_by_tags_ids()  favorites/by_tags/ids 获取当前用户某个标签下的收藏列表的ID

     

    更新

    update() statuses/update 发布一条微博信息
    增加参数
    //visible false int 微博的可见性,0:所有人能看,1:仅自己可见,2:密友可见,3:指定分组可见,默认为0。
    //list_id false string 微博的保护投递指定分组ID,只有当visible参数为3时生效且必选。
    upload() statuses/upload 上传图片并发布一条微博

    增加参数
    //visible false int 微博的可见性,0:所有人能看,1:仅自己可见,2:密友可见,3:指定分组可见,默认为0。
    //list_id false string 微博的保护投递指定分组ID,只有当visible参数为3时生效且必选。
    //annotations false string 元数据,主要是为了方便第三方应用记录一些适合于自己使用的信息,每条微博可以包含一个或者多个元数据,必须以json字串的形式提交,字串长度不超过512个字符,具体内容可以自定

     

    LINE 1259 改为:
    return $this->oauth->post( 'statuses/upload_url_text', $params, false );