摘要:我也算孤陋寡闻,工作以前开发网站都没切换过host,也不知道这种方法。开发基于oauth2.0应用时候,被它的callback_uri害惨了。于是采用了两个应用,一个应用的callback_uri是开发环境的地址:localhost/*,一个是远程服务器的地址。想想,那时候真是傻啊。其实只需要改一改host既可以了,同一个域名,不同的ip。来到我公司之后,用上了一个切host的工具。firefox的插件switchhost,https://addons.mozilla.org/zh-CN/firefox/addon/switchhosts/。有了它,有多少套host方案都不用愁了。问题又来了,
阅读全文
摘要:近期做的两个功能,都需要我大量地修改代码。我对一些旧代码可谓是深恶痛绝。记录一下,我以后可不要成为别人的噩梦。对于同一个数据的读、写应该使用同一套代码。多注意分层就可以达到这个效果了。MVC结构的一大好处就是为了解耦。同一个数据,不同的形式也是应该从一个接口去读。这样代码的复用性会更好。更重要的是如果、万一要对这一个取数的方法做一次修改。只要修改一个地方就够了。API 一定要写下文档。API,应用程序接口,是应该有一个协议的。API的这个协议的生命力是很强的,千万不要抱着这样一个念头:现在项目比较急,将就用着吧。然后就出现了一次性代码、没注释的代码、另起炉灶的代码。而没写文档,就跟没有协议差不
阅读全文
摘要:在Sina AppEngine 上运行了一个程序,数据存储在MySql。某个表使用了一条SQL句来聚合数据。SELECT province,count(1) as num FROM `users` group by province 这个表今天的记录数已经达到70000,超过了Sina AppEngin的服务限额。所以系统返回:Filesort on too many rows。其实我并不需要排序,我只需要分组统计。应该还可以换一种写法。正在探索中。
阅读全文
摘要:使用pdo进行数据库操作是为了安全考虑。参数化查询可以有效防止sql注入攻击。今天使用pdo的时候发现一个问题,使用带有 limit 的查询时没有查询出结果,代码如下1 $stmt = $db->prepare('SELECT * FROM mytable limit :count');2 // 绑定参数3 $count=13;4 $stmt->bindValue(':id', $count);5 // 查询6 $stmt->debugDumpParams();7 $stmt->execute();8 var_dump($stmt->
阅读全文
摘要:请教各位:网页有一段js代码提交ajax请求,请求需要一个参数。例如当前用户id、当前文章的主键id等。就是说这个id不可能是用硬编码的。请问大家是处理这种情况的呢?我自己是采用了下面的方法:用js代码操控session中的变量在网页动态的写入一段隐藏的html代码,代码里面保存这需要的变量。例如 <div class="hidden" id="v1">12</div> ; 然后使用js读取id为v1的网页元素文本。
阅读全文
摘要:Memcached是一套分散式的高速缓存系统,当初是Danga Interactive为了LiveJournal所发展。目前被很多系统所使用,例如Flick、Twitter等。这是一套开放源代码软件,以BSD license授权发布。下面记录一下在lamp环境下的Memcached安装。关于Memcached的应用,这里有两篇不错的文章:《应用 memcached 提升站点性能》、《Discuz!的Memcache缓存实现》使用APT安装MEMCACHEDapt-get install memcached启动memcached1. 终端下使用命令 memcached就可以启动 。例如 memc
阅读全文
摘要:要详细了解PHP OO最好看PHP手册。大家都知道的部分就不说了,这里只记下容易忘记的部分。关键字和特殊变量new,class,extends。这三个,大家都懂得。::,范围解析操作符(也可称作 Paamayim Nekudotayim)或者更简单地说是一对冒号,可以用于访问静态成员、方法和常量。还可以用于覆盖类中的成员和方法。parent和self。parent指的就是派生类在extends声明中所指的基类的名字。这样做可以避免在多个地方使用基类的名字。$this 伪变量。$this指向当前的实例。$this却不一定是方法所属的对象。有时候类A内的代码会调用类B的一个静态方法。参考例子:ht
阅读全文