Skip to content

tourze/base

Repository files navigation

tourze框架-Base模块

途者框架是一个受Kohana影响深重的框架。 印象中,我的第一个完整的项目(一个新闻发布系统)是使用Kohana开发的,之后第一次创业使用的也是Kohana。 虽然在之后也大量接触了其他优秀框架/类库(如Symfony、Yii),但内心还是对KO感情比较深。

所以我的第一个创业项目,在选型时选择了PHP,选择了Kohana来做开发。

在不断使用的过程中,Kohana的一些缺点不断突出。如CFS的加载规则导致大量重命名类的出现,模块与模块之间的依赖关系难解决。 还有就是一直Kohana官方开发组对命名空间的支持一直态度摇摆,迟迟不肯跟随时代步伐。

然后就有了tourze框架。

tourze框架__不是最快的框架,也不是大而全的框架,而是能快速开发的框架__,而Base模块是其中的基础部分。

Base模块只包含了一些基础的概念实现和助手类。如果你想要完整实现一个项目,可以看下途者框架其他模块。

因为个人精力有限,Base模块目前不一定解耦很好,但是以后在大家支持下肯定会越来越好。

安装

首先需要下载和安装composer,具体请查看官网的Download页面

在你的composer.json中增加:

"require": {
    "tourze/base": "^1.0"
},

或直接执行

composer require tourze/base:"^1.0"

文件结构

  • cache 存放一些缓存信息,一般不要往这个目录放东西
  • config 存放配置信息
  • doc 存放额外的文档信息
  • i18n 国际化文件存在目录
  • message 消息翻译文件目录
  • src 大部分类放在其中
  • tests 单元测试
  • view 视图文件目录
  • bootstrap.php 一些通用操作放在其中

途者每个模块,一般都是上面的目录结构,如果没有其中一部分的话,会没对应的文件夹。

例如Base组件没有cache目录,因为没有地方需要用到cache目录。

对于不明白的内容,如果你清楚对应的类是什么,那么强烈建议你先试下读代码,先尝试去思考。 因为文档不能尽然描述框架功能,而且描述也可能有偏差,如果你能亲自探索过,那么自然能更加容易理解文档。

概念

核心类

  • tourze\Base\Base 核心基础类
  • tourze\Base\Config 配置加载类

默认组件

  • tourze\Base\Component\Cache 缓存组件
  • tourze\Base\Component\Http HTTP组件
  • tourze\Base\Component\Log 日志组件
  • tourze\Base\Component\Session 会话组件
  • tourze\Base\Component\Flash Flash组件
  • tourze\Base\Component\Mail 邮件组件

助手类

Base组件为其他组件提供很多助手方法,用于快速开发:

  • tourze\Base\Helper\Arr 数组助手类
  • tourze\Base\Helper\Cookie Cookie助手类
  • tourze\Base\Helper\Date 日期时间助手类
  • tourze\Base\Helper\File 文件助手类
  • tourze\Base\Helper\Mime MIME助手类
  • tourze\Base\Helper\Text 文本助手类
  • tourze\Base\Helper\Url URL助手类

在NGINX运行

配置文件如下:

log_format  test.tourze.com  '$remote_addr - $remote_user [$time_local] "$request" '
             '$status $body_bytes_sent "$http_referer" '
             '"$http_user_agent" $http_x_forwarded_for';
server
    {
        listen       80;
        server_name test.tourze.com;
        index index.html index.htm index.php default.html default.htm default.php;
        root  /vagrant/com.tourze.test/web;

        include other.conf;
        location ~ .*\.(php|php5)?$
            {
                try_files $uri =404;
                fastcgi_pass  unix:/tmp/php-cgi.sock;
                fastcgi_index index.php;
                include fcgi.conf;
            }

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
            {
                expires      30d;
            }

        location ~ .*\.(js|css)?$
            {
                expires      12h;
            }

        if (!-f $request_filename){
            rewrite ^(.*)$ /index.php;
        }

        access_log  /vagrant/log/test.tourze.com.log  test.tourze.com;
    }

请根据你的具体环境,对上面的配置项进行调整