Chinaunix首页 | 论坛 | 博客
  • 博客访问: 29945509
  • 博文数量: 708
  • 博客积分: 12163
  • 博客等级: 上将
  • 技术积分: 8240
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-04 20:59
文章分类

全部博文(708)

分类: 系统运维

2012-06-05 10:21:48



点击(此处)折叠或打开

  1. <?php
  2. $g=$_GET;$c=@$g['c']?:'home';
  3. if(!@include "c/$c.php") die('404');
  4. $m=method_exists($c,@$g['m'])?$g['m']:'index';
  5. $o=new $c;$o->$m($g);
  6. ?>




以上就是本框架的全部代码, 去掉php标记, 共有字符137个,号称宇宙超级无敌最简php框架.感兴趣的话你甚至可以将他放到一条微博里(可惜, 还有三个字符没用完!)
以下就是本框架的超级傻瓜简单版使用手册:

一. 入门
1. 以上代码保存为index.php.
2. index.php所在目录下创建目录c, 以后所有所有的新建控制器都放在这个目录.
3. c目录下新建文件home.php. 在里面输入以下代码:
  1. class home {
  2. public function index()
  3. {
  4. echo 'first blood!';
  5. }
  6. }
  7. ?>

以后所有所有新建的控制器, 都必须类名和文件名相同, 必须至少有一个index方法
4. done!
将以上文件上传到服务器, 可以以如下地址访问(假设上传目录为simple):




都会看到那久违的first flood!

二. 进阶
1. 我们这里可以实验下向方法中传入参数(多个参数以/分割)
在home.php中加入添加一个新测试方法, 代码:
  1. public function test($url)
  2. {
  3. //分割参数
  4. @list($name, $age) = explode('/',$url['param']);
  5. echo "my name is: $name
    ", "my age is: $age";
  6. }

然后访问

就会看到传入的参数被正常输出, 即然可以传参, 那么就可以...whatever you like

2. 觉得上面的地址很丑么, 可以给他来个伪静态, index.php同目录下创建.htaccess,输入以下内容:
  1. RewriteEngine on
  2. RewriteCond $1 !^(index\.php)
  3. RewriteRule ^([^/]*)/?([^/]*)/?(.*)$ index.php?c=$1&m=$2¶m=$3

然后, 以这样的地址访问:, 效果是一样滴.

其他所有的地址都可以以这样的格式访问:
<控制器>/<方法>/<参数>/<参数>/...

3. 想要MVC吗, 这里只模拟一个V吧
首先, 在index.php相同目录下新建一个v文件夹,
然后, 在v文件夹中新建test.php文件, 输入以下代码:
  1. echo "my name is: $name
    ", "my age is $age";
  2. ?>
其实就是把刚才的表示层给单独搬了出来.
最后, 修改home控制器中的test方法为:
  1. public function test($url)
  2. {
  3. //分割参数
  4. @list($name, $age) = explode('/',$url['param']);
  5. require('v/test.php');
  6. }
这样, 我们的逻辑和表现就分离了...
三. 总结
实验证明, 我们的框架不但功能强大, 使用简单, 而且体积小巧, 便于携带, 实在是程序猿们居家旅行杀人越货的必备良器.
over!

(Attention):
以上代码仅支持php5.3及以上版本,
使用5.3版本以下的童鞋, 需要把index.php中第2行
  1. @$g['c']?:'home'; 修改为@$g['c']?$g['c']:'home';


心疼啊, 这么一改, 代码量都增加0.5%了.
再(Attention):
以上代码纯属娱乐, 如果在阅读过程中有任何不适,(包括但不限于, 呼吸急促, 血压升高, 头晕目眩) 请迅速点击屏幕上方的小红叉, 并原地休养三分钟...

原文地址:

阅读(2829) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~