tourze / base
途者PHP框架-核心部分
v1.0.5
2015-09-30 06:06 UTC
Requires
- doctrine/inflector: ^1.0
- egulias/email-validator: ^1.2
- filp/whoops: ^1.1
- hassankhan/config: 0.8.*
- ircmaxell/random-lib: ^1.1
- respect/validation: ^0.9.3
- symfony/filesystem: ^2.7
- symfony/var-dumper: ^2.7
Requires (Dev)
- phpunit/phpunit: ^4.7
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;
}
请根据您的具体环境,对上面的配置项进行调整