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

  • 新建项目文件夹 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方法了

你可能感兴趣的:(#[Composer学习笔记]Part3:创建项目文件)