这个框架一个新的版本完成了。之前也有一个同名的框架,也是我做的,但是规则仍然太复杂。所以重新做一个。
我感觉大部分框架的规则都太多了。这个非常少。你要能接受就接受,不能接受这么简单,那还是要使用别的框架得了。
- URL规则仅支持一种,就是
/user/login这一种,别无选择。当然,你非要写成index.php?_url=user/login也可以。。 - 配置是全局的,你在任意地方都可以使用配置文件里的值。甚至修改都可以,没有任何限制
- 仅包含
MVC结构。M映射数据库,实现了一般的简单的ORM,支持有限,但也足够灵活;V就是页面文件,里面直接写HTML + PHP,但不要在里面做超出View角色该有的功能即可;C不用说了,就是处理一下用户输入,然后处理出结果后,输出给 View 来显示。 - 支持命令行模式,在程序里的
$_GET可以捕获命令行的参数 - 有一个叫 Render 的概念,也就是说你的程序可以有不同的格式输出。默认情况下: 网页访问自动使用
HtmlRender输出,加载与controller同名的view; Ajax 请求会使用 JsonRender; 命令行会使用 YamlRender。这些 Render 会按照自己的输出格式来处理Controller处理出来的值。你在 controller 里,有机会自己指定使用哪种 Render
- 支持网页访问、用于Ajax请求的Json输出、命令行调用
- 仅支持MySQL数据库
- 支持Ajax的跨域调用,但是需要提前在配置中配置规则
- 支持将SESSION存到数据库
- 支持ORM方式进行访问数据库
- 支持类自动加载(注意:并不支持
namespace) - 支持配置加载
- 可自动加载外部类
未来希望会增加一些更多的内容,但是如果破坏了简单的原则,我们可能只能自己加载独立类来实现了。
总共需要有三套目录: 框架的目录, 你自己的程序目录,你的入口文件和图片之前Web资源目录。分别如下:
| atomcode
| app # 这个名字无所谓
| public # 这个名字更无所谓,但是 Web 服务器一定要访问到
atomcode 目录你不需要关心,只需要找个地方放就行了。
app 目录结构:
|- config
|- config.php
|- controller
|- model
|- view
我们把三个目录放好,把web服务器目录指向到public目录。然后开始写一个 controller
<?php
class IndexController extends Controller {
public function indexAction() {
echo "hello world";
}
}OK, 开始访问吧: