tourze/base

途者PHP框架-核心部分

v1.0.5 2015-09-30 06:06 UTC

This package is auto-updated.

Last update: 2024-09-19 05:03:47 UTC


README

途者框架深受Kohana框架的影响。记得我的第一个完整项目(一个新闻发布系统)就是用Kohana开发的,第一次创业也是用的Kohana。尽管之后接触了其他优秀的框架/库(如Symfony、Yii),但内心对Kohana的感情依然很深。

因此,我的第一个创业项目选择PHP和Kohana进行开发。

在使用过程中,Kohana的一些缺点逐渐显现。例如,CFS的加载规则导致大量类重命名,模块间的依赖关系难以解决。还有,Kohana官方开发组对命名空间的支持态度一直摇摆不定,迟迟未能跟上时代的步伐。

于是,就有了tourze框架。

tourze框架不是最快的框架,也不是功能最全面的框架,而是一个能够快速开发的框架,而Base模块是其基础部分。

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

由于个人精力有限,Base模块目前可能解耦不够好,但在大家的支持下,未来肯定会越来越好。

安装

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

在您的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;
    }

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