- <?php
- $g=$_GET;$c=@$g['c']?:'home';
- if(!@include "c/$c.php") die('404');
- $m=method_exists($c,@$g['m'])?$g['m']:'index';
- $o=new $c;$o->$m($g);
- ?>
以上就是本框架的全部代码, 去掉php标记,
共有字符137个,号称宇宙超级无敌最简php框架.感兴趣的话你甚至可以将他放到一条微博里(可惜, 还有三个字符没用完!)
以下就是本框架的超级傻瓜简单版使用手册:
一. 入门1. 以上代码保存为index.php.
2.
index.php所在目录下创建目录c, 以后所有所有的新建控制器都放在这个目录.
3. c目录下新建文件home.php. 在里面输入以下代码:
- class home {
- public function index()
- {
- echo 'first blood!';
- }
- }
- ?>
以后所有所有新建的控制器, 都必须类名和文件名相同, 必须至少有一个index方法
4.
done!
将以上文件上传到服务器, 可以以如下地址访问(假设上传目录为simple):
都会看到那久违的first
flood!
二. 进阶1. 我们这里可以实验下向方法中传入参数(多个参数以/分割)
在home.php中加入添加一个新测试方法, 代码:
- public function test($url)
- {
- //分割参数
- @list($name, $age) = explode('/',$url['param']);
- echo "my name is: $name
", "my age is:
$age"; - }
然后访问
就会看到传入的参数被正常输出,
即然可以传参, 那么就可以...whatever you like
2. 觉得上面的地址很丑么, 可以给他来个伪静态,
index.php同目录下创建.htaccess,输入以下内容:
- RewriteEngine on
- RewriteCond $1 !^(index\.php)
- RewriteRule
^([^/]*)/?([^/]*)/?(.*)$ index.php?c=$1&m=$2¶m=$3
然后,
以这样的地址访问:,
效果是一样滴.
其他所有的地址都可以以这样的格式访问:
<控制器>/<方法>/<参数>/<参数>/...
3.
想要MVC吗, 这里只模拟一个V吧
首先, 在index.php相同目录下新建一个v文件夹,
然后,
在v文件夹中新建test.php文件, 输入以下代码:
- echo "my name is: $name
", "my age is $age"; - ?>
其实就是把刚才的表示层给单独搬了出来.
最后, 修改home控制器中的test方法为:
- public function test($url)
- {
- //分割参数
- @list($name, $age) = explode('/',$url['param']);
- require('v/test.php');
- }
这样, 我们的逻辑和表现就分离了...
三. 总结实验证明,
我们的框架不但功能强大, 使用简单, 而且体积小巧, 便于携带,
实在是程序猿们居家旅行杀人越货的必备良器.
over!
(Attention):以上代码仅支持php5.3及以上版本,
使用5.3版本以下的童鞋, 需要把index.php中第2行
- @$g['c']?:'home'; 修改为@$g['c']?$g['c']:'home';
心疼啊, 这么一改, 代码量都增加0.5%了.
再(Attention):
以上代码纯属娱乐,
如果在阅读过程中有任何不适,(包括但不限于, 呼吸急促, 血压升高, 头晕目眩) 请迅速点击屏幕上方的小红叉, 并原地休养三分钟...
原文地址:
阅读(2894) | 评论(0) | 转发(0) |