【原创】SAE本地环境与真实环境的差别

其实从刚开始用的时候就发现本地环境和真实环境有不同,导致本地环境我都没怎么用。

1、本地环境的php是32bit版本的,真实环境是64bit的。这是我发现的第一个不相同的地方,就是因为这个,直接导致我的应用绝大部分调试工作都是在把代码上传到服务器后直接在线测试的。因为我做那个应用的时候需要用到64位整数,本地环境不支持。

2、saemysql使用的不同,今天在本地用了一下saemysql,本来以为直接拿以前线上的代码直接在本地环境中运行就可以的,结果发现不行。在线上的版本,只要直接

  1. include_once('saemysql.php');  
  2. $mysql = new SaeMysql();  

就可以使用了。但是在本地环境中这样的代码是有问题的,会提示重复声明saemysql:

Fatal error: Cannot redeclare class SaeMysql……

因为在本地环境的emulation文件夹中有saemysql.class.php这个文件。

所以把include_once('saemysql.php');注释掉,然后再运行,发现还是有错误,找不到数据库。再细看看,怎么数据库的名字变成了“app_”?正常应该是“app_应用名”才对,然后去看saemysql.class.php,有一个setAppname的方法,好吧,那就试一下吧,然后便成功了。所以在本地用saemysql的时候应该这样:

  1. $mysql = new SaeMysql();  
  2. $mysql->setAppname('应用名');  


以上只是在我的本地环境中出现的问题,不知道是否具有普遍性。

 

3、在本地环境中,你是可以随意使用代码路径的,所有的IO函数都可以使用,而在真实环境中,所有本地IO可能都被禁止,要用storage来代替。

因为本地环境用的不多,目前暂时发现这些。正在做的应用准备在本地环境测试,如果有新的发现再发上来。

Tags:
Para obter mais informações sobre otimizações de compiladores, consulte Aviso sobre otimizações.