您的位置:首页 > 其它

#[Composer学习笔记]Part3:创建项目文件

2015-08-22 19:09 344 查看
新建项目文件夹 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方法了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: