新建项目文件夹 app ,并在其目录下创建文件夹: controller, models 和 views
mkdir /opt/htdocs/MFFC/app
cd /opt/htdocs/MFFC/app
mkdir controller models views
添加model层文件
vi /opt/htdocs/MFFC/app/models/TestModel.php
保存以下内容,后面会添加数据层的操作
<?php
class TestModel
{
public static function test()
{
return 'this is model';
}
}
?>
添加controller文件
vi /opt/htdocs/MFFC/app/controller/TestController.php
保存以下内容
<?php
class TestController
{
public function index()
{
echo 'hehe';
echo '<pre>';
var_dump(get_included_files());
var_dump(TestModel::test());
}
}
?>
添加路由
保存之后,为了调用TestController的index方法,我们需要在routes.php里加上新的路由规则:
Macaw::get('/', 'TestController@index');
使用自动加载authload
这时候,路由会解析到去调用类TestController的index方法,但我们并没有引入TestController类,需要通过配置自动加载:
在composer.json中加入autoload的classmap:
{
"require": {
"codingbean/macaw" : "dev-master"
},
"autoload": {
"classmap": [
"app/controller",
"app/models"
]
}
}
保存,在/MFFC下执行以下命令(每次新建一个类都得跑一下,这是classmap的不好之处):
composer dump-autoload
这时,查看/MFFC/composer/autoload_classmap.php,你会发现,里面多了我们刚才新建类的路径引导:
return array(
'TestController' => $baseDir . '/app/controller/TestController.php',
'TestModel' => $baseDir . '/app/models/TestModel.php',
);
这是对这些类名的路径指向,有一点需要注意:
因为这是个数组,以类名为键名,类文件地址为键值,
所以如果在自动加载地图中,有相同的类名,结果的地址都只有一个。
处理方法是:在类文件中加上命名空间,再跑一
这时,键值的格式是:Controller\\Test\\TestController
前面为命名空间,后面为类名,但路由方面应该怎么设置这个还没了解到,等到学laraval的时候应该会来填这坑
完
这时候访问 index.php 就会调用 TestController下的index方法了