3

typecho framework是70写的一个框架。据说是参考了java的思想。

项目地址:https://github.com/typecho/framework
参考项目:https://github.com/typecho/framework-example

1.一切hello world开始

先clone这个example,然后我们要写个控制器,在action文件夹下新建Hello.php

namespace Example\Action;

use TE\Mvc\Action\AbstractAction;

class Hello extends AbstractAction
{

    public function execute()
    {
        return array('content', 'Hello World');
    }
}

框架的主要想法是通过一个主出口返回各种需要的相应,比如content是指直接输出,换成template是把数据传到模板里,换成json就是把数据生成一个json。

要先页面上显示我们还需要写一下路由。
打开config\routes.php


return array( '/' => 'Example\Action\Index', '/hello' => 'Example\Action\Hello' );

由于example中有用到数据库,我们先注释掉。index.php文件中

Base::setInjectiveObjects(require(ROOT . '/../config/injects.php'));

注释这行。
然后这样可以通过访问{fileroot}/portal/index.php/hello看到输出了hello world。

2.用模板输出

还是Action\Hello.php里,我们改execute函数

public function execute()
{
  $this->word = 'Hello World';

  return array('template', 'hello.php');
}

然后我们在template中新建一个hello.php文件

<?php echo $word; ?>

就可以看到页面输出hello world

3.把参数传入控制器

比如
http://192.168.33.10/framework-example/portal/index.php/hello?p=hello%20world
把p=hello world传入hello中

public function execute()
{
  $this->word = $this->request->get('p');
  return array('template', 'hello.php');
}

这样我们就在页面上看到hello world。

先这样


Fakefish
4.3k 声望241 粉丝