开发者社区> 问答> 正文

php版本osssdk的一些吐槽

1.  类ALIOSS的构造函数


在检测参数的时候,既然抛出了异常,干嘛还要自己去try catch,并且还在catch里面做了die操作,完全是脱了裤子放屁,追求形式
//验证access_id,access_key
        try{
            if(!$access_id && !defined('OSS_ACCESS_ID')){
                throw new OSS_Exception(NOT_SET_OSS_ACCESS_ID);
            }
        }catch (OSS_Exception $e){
            die($e->getMessage());
        }
构造函数在设置了$access_id, $access_key参数后,流程里居然就return了,后面还有设置hostname的流程呢。。
try{
            if($access_id && $access_key){
                $this->access_id = $access_id;
                $this->access_key = $access_key;
                return true;
            }elseif (defined('OSS_ACCESS_ID') && defined('OSS_ACCESS_KEY')){
                $this->access_id = OSS_ACCESS_ID;
                $this->access_key = OSS_ACCESS_KEY;
            }else{
                throw new OSS_Exception(NOT_SET_OSS_ACCESS_ID_AND_ACCESS_KEY);
            }
        }catch (OSS_Exception $e){
            die($e->getMessage());
        }

        //验证access_id 和 access_key 是否为空
        try{
            if(empty($this->access_id) || empty($this->access_key)){
                throw new OSS_Exception(OSS_ACCESS_ID_OR_ACCESS_KEY_EMPTY);
            }
        }catch (OSS_Exception $e){
            die($e->getMessage());
        }

        //验证主机地址
        if(NULL === $hostname){
            $this->hostname = self::DEFAULT_OSS_HOST;
        }else{
            $this->hostname = $hostname;
        }

2. sdk的conf.inc.php多余
对于sdk而言有这么个东西,完全没必要。对于内部的定义,你就应该放到sdk关联的文件里,而不是暴露在外围,让用户去设置
config里提供给用户设置的,其实也就三四项,而且名字定义的也太草率了


这两个参数不是在构造函数里有了吗??为了混淆下用户,感觉很复杂的样子??


//ACCESS_ID
define('OSS_ACCESS_ID', '');

//ACCESS_KEY
define('OSS_ACCESS_KEY', '');

DEBUG, LANG这两个常量名也太容易跟项目本身的常量搞混了吧,前面加个前缀不好吗?
而且像LANG这种东西为什么不能提供方法来设置呢,而要用户去设置常量?
//是否输出DEBUG
define('DEBUG', FALSE);

//语言版本设置
define('LANG', 'zh');

还有后面的几个常量MAX_MEMORY_LIMIT,MAX_EXECUTE_TIME,MAX_UPLOAD_FILE_SIZE ,也是瞎操心。上传应该 在文档中告知用户,在php cgi、http server的相关限制与设置。
这里为什么都是define呢?是不是应该用ini_set?


//设置每个php进程的内存消耗值,对应于php.ini里的memory_limit
define('MAX_MEMORY_LIMIT', '256M');

//设置每个php进程的最大执行时间
define('MAX_EXECUTE_TIME','3600');

//上传文件的最大值,默认值128M
假如/tmp目录没有独立划分,这里就不怕别人的机器被上传给撑爆?而且你确定人人都需要这么大的上传?
define('MAX_UPLOAD_FILE_SIZE', 128 * 1024 * 1024);


代码重形式化
curl的封装居然还来自第三方。。。。
。。。。


代码没细看,吐槽也就到这里,肯定是java工程师充了临时工


使用oss,哥虽然没交多少钱,但ali希望能认真开发这个sdk。。。。





展开
收起
huilet 2012-06-06 21:37:36 13369 0
4 条回答
写回答
取消 提交回答
  • Rephp版本osssdk的一些吐槽
    这代码看不懂!~~

    2012-06-24 10:11:41
    赞同 展开评论 打赏
  • 向他们的官方QQ群: 199055969( http://bbs.aliyun.com/read.php?tid=22805
    反馈下!
    2012-06-21 19:11:40
    赞同 展开评论 打赏
  • Rephp版本osssdk的一些吐槽
    哎,这代码...
    2012-06-07 22:46:29
    赞同 展开评论 打赏
  • Rephp版本osssdk的一些吐槽
    楼主看的真仔细呢。。。。
    2012-06-07 17:59:24
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
阿里云栖开发者沙龙PHP技术专场-直面PHP微服务架构挑战-高驰涛 立即下载
PHP安全开发:从白帽角度做安全 立即下载
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载