坚信科学,分享技术

2018全新版本,未来在blog.54chen.com更新博客!

>>>尝试更加利于阅读的2014版科学院,以后都在新版上写。

一种在sns系统中统一应用平台的方式

SNS:概念略,像开心、校内等,今天要研究的是他们的应用程序的实施方案。

如果你和我一样在考虑如何简单的完成一套共享的能用的应用可扩展平台(看上去有点绕,不过它的确就是这样的)。

首先,我们需要在apache的rewrite上做一点手脚:

RewriteEngine On

 

RewriteRule ^/+apps/([^/]+)$ /apps/app.php?%{QUERY_STRING}&__app_path=$1 [L,PT]

RewriteRule ^/+apps/([^/]+)/+([^/]*)$ /apps/app.php?%{QUERY_STRING}&__app_path=$1&__app_page=$2 [L,PT]

这样,就可以将一个请求为http://url/apps/a.php?a=x的地址发给http://url/apps/app.php?a=x&__app_path=apps/a.php

请注意,这里多出了两个GET变量!

第二步,我们需要建立一个框架的入口,也就是实际访问的时候用的apps/app.php

apps/app.php(以下代码只供参考使用,未验证bug)

<?php

$__app_path = trim($_GET('__app_path'));

$__app_page = trim($_GET('__app_page'));

/*

* 此处可添加一个CONFIG

*/

if(!$__app_page)

$__app_page = "index.php";

$file_path = "./".$__app_path."/".$__app_page;

include($file_path);

?>

第三,建立我们的hello world!

进入apps/hello(没有则创建之),建立新文件index.php

<?php

echo 'hello world!';

?>

第四步,也许还可以扩展

这一步所考虑的是,如果应用的代码不在同一个服务器里,也就是说,跨域名的应用服务,应当怎么做。

修改apps/app.php

使用curl扩展这一功能,又或者直接iframe?这涉及更高要讨论的东西,例如权限和数据。


原创文章如转载,请注明:转载自五四陈科学院[http://www.54chen.com]
本文链接: http://www.54chen.com/php-tech/%e4%b8%80%e7%a7%8d%e5%9c%a8sns%e7%b3%bb%e7%bb%9f%e4%b8%ad%e7%bb%9f%e4%b8%80%e5%ba%94%e7%94%a8%e5%b9%b3%e5%8f%b0%e7%9a%84%e6%96%b9%e5%bc%8f.html

This entry was posted in php and tagged , . Bookmark the permalink.

Leave a Reply