Watch Star Fork

Cheuk / thinkerPHPMIT

加入码云
与超过 300 万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
更自由的PHP框架,使用Composer进行包管理
zhuoh 最后提交于 插件示例
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README.md 3.82 KB

Thinker

重新定义,更自由的框架,Composer管理。

前言

Thinker定义的是一种开发模式,而非各种功能的堆叠,真正的自由度。Composer管理,自由发挥。

安装

环境需求

  • PHP >= 7.0.x
  • Nginx >= 1.15.x (其他版本未尝试)

Composer

中文安装教程 https://www.phpcomposer.com/

拉取项目结构

git clone https://github.com/diiyw/thinker.git

Composer安装thinker核心框架

cd app
composer install

配置

Nginx或Apache站点目录为 www

Nginx

if (!-e $request_filename) {
   rewrite  ^(.*)$ /index.php?$1 last;
   break;
}  

Apache

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?$1 [QSA,L]
</IfModule>

安装常用包

框架没有内置验证码、ORM、等包,最大限度交给开发者自行添加自己喜欢的第三方包使用。

开发模式

整个框架核心只有7个文件,简单易读。

目录结构

├── app                         项目目录
│   ├── composer.json           composer配置文件默认配置thinker核心框架
│   ├── config                  配置目录
│   │   └── app.php             配置文件
│   ├── crontab                 cli处理目录
│   ├── modules                 模块目录
│   │   └── index               Index模块
│   │       ├── Index.php       Index控制器
│   │       └── Route.php       Route路由文件
│   └── plugins                 插件目录
├── LICENSE                     开源协议
├── README.md                   帮助
├── views                       视图目录
│   └── default                 default模板目录
│       ├── common
│       │   └── footer.phtml
│       └── index
│           └── index.phtml
└── www
    ├── cache                   缓存目录一般是模板缓存
    │   └── default
    │       ├── common
    │       │   └── footer.phtml
    │       └── index
    │           ├── index
    │           │   └── index.phtml
    │           └── index.phtml
    ├── index.php               入口文件
    └── logs                    日志目录

控制器

在模块目录下

<?php

namespace index;

use thinker\Framer;

class Index extends Framer
{
    public function index()
    {
        $rule = $this->form->get("name");
        $this->view->display("index", ["name" => $rule->data]);
    }
}

控制器内置方法

$this->register($name,$object);

注册一个单例到控制使用

表单验证

// 获取表单Get值,返回的Rule对象
$rule = $this->form->get("name");
// 不需要验证Rule时获取值
$rule->data;

具体阅读参考 thinker\Rule

路由

自动引用模块下的Route.php,格式如下:

<?php

namespace index;

use thinker\Router;

class Route extends Router
{
    protected $rules = array(
        "index/(str)" => "index/index/index/name/$1",
    );
    
    // 这个方法可有可无,可以自定义重写规则
    public function rewrite($pathInfo){
        return parent::rewrite($pathInfo); // TODO: Change the autogenerated stub
    }
}

简易模板

模板主题

默认主题default。设置主题:

$this->view->theme("blue");

模板目录

根目录下的views

模板语法

只有以下几个标签

{if 1==1}
    {:echo 1}
{elseif 2==2}
    {{2}} // 相当于<?php echo 2 ?>
{else}
    {fetch $as as $k=>$v}
        {import $v} // 模板的相互引用
    {fetch}
{if}

项目点评 ( 6 )

你可以在登录后,发表评论

搜索帮助