Giter Site home page Giter Site logo

think's Issues

强烈建议TP新增单元测试。

很多时候修改了代码,没有单元测试,会导致意想不到的结果,单元测试可以保证框架的稳定性和健壮性。

空控制器问题

很喜欢tp4无后缀轻简命名方式, 但是类名不得使用保留关键字来命名, 所以定义了empty 控制器后触发访问未定义控制器时就会报如下错
syntax error, unexpected 'empty' (T_EMPTY), expecting identifier (T_STRING)
模块控制器等都去掉了层级后缀, 按照目前的规则在用户使用时可能常会遇到命名冲突.

关于驼峰命名法

TP4能否不要采用驼峰命名法,驼峰命名法在linux和windows下很纠结……比如控制器中的function用了驼峰命名法,那么在URL中,linux下要准确采用驼峰名字才能访问。

为何不从PHP5.5开始?

TP4 多了很多我很喜欢的特性,希望能够快速成熟起来。如果可以,我们也打算围绕TP4做一些相关的组件和模块。

不过,既然是new branch了,为何不采用更新的 PHP 5.5.x?应该到下半年的时候正好 PHP5.5 正式版也会推出了。反正 TP4 是没啥可能跑在现在国内的主流虚机上的了,不如直接用最新技术。

配置加载问题,

module中如果没有config文件,或者config文件内容为空的时候,原有的默认配置都不能加载了
问题应该是在config::set中,避免了非法参数产生的

TP5 模板主题问题

TP5 设置了主题模板,如果在Chrome 下清除浏览器数据后,模板主题的Cookie数据就不会再生成。重新访问也是没有模板主题数据。在Safari 下清除缓存倒不会出现该问题。【TP3.2无此情况】

Declaration of traits\model\Relation::_after_find() should be compatible with think\Model::_after_find(&$result)

E_STRICT: Declaration of traits\model\Relation::_after_find() should be compatible with think\Model::_after_find(&$result) in /thinkphp/library/think/model/Relation.php on line 18
E_STRICT: Declaration of traits\model\Relation::_after_select() should be compatible with think\Model::_after_select(&$resultSet) in /thinkphp/library/think/model/Relation.php on line 18
方法重写参数$options应该需要一个默认值 $options = [];

请注意PSR-0和Composer

PSR0现在已经计划写进Spl了(据说下一个版本就有)。应该遵守一下。
composer…………不多说- -!

访问index.php,提示module not exists

在Think\App.php 54行,$config是未定义的,所以没有读取到配置文件。
解决方法:
修复文件thinkphp/Library/Think/app.php这个文件.
在52处加一行代码:$config=Config::get();

D方法依然很难在IDE中提示自定义的方法啊

看了下D方法,发现是用的Loader::model(),底层的实现没有太大的差别,依然是new $class($name);或者new Model($name);,这样在Zend Studio之类的IDE里面,很难提示自定义的方法,好痛苦啊。
为什么不在Model中写个获取实例的方法啊。

db/driver.php使用问题

第660行

$likeFields = $this->config['db_like_fields'];

这个配置是必须的吗?在database.php配置中没有看到,未配置出错
E_NOTICE: Undefined index: db_like_fields in '../db/driver.php'

想加入新框架的编写工作,贡献自己的代码,请问如何加入和协同,有没有相关计划!

想加入新框架的编写工作,贡献自己的代码,请问如何加入和协同,有没有相关计划!
希望能尽快完成这个分支的编写,很多人等着用,但是,还需要更多人参与进来。
TP从一开始到现在,共同奉献代码这块还太有限,不是很利于发展。大家都是捡现成的用。
希望更多时间能关注一下,如果协同安排任务,让更多优秀的开发者一块加入进来,相信慢慢的会更有影响力。

默认部署目录结构

www  WEB部署目录
├─composer.json   composer定义文件
├─thinkphp        框架目录
│   └─ ...
├─runtime         应用的运行时目录
├─application     应用目录
│   ├─ common
│   ├─ module
│   └─ .....
└─web 暴露对外目录
    ├─ index.php
    ├─ public 
    └─.htaccess       用于apache的重写

除了入口文件和public内容, 临时目录、框架目录及应用目录都无法直接访问. 这样的目录结构是否会更好些.

很多函数声明和doc备注不对应

很多函数声明和doc备注不对应,比如这个:/**
* 发送HTTP请求方法,目前只支持CURL发送请求
* @param string $url 请求URL
* @param array $params 请求参数
* @param string $method 请求方法GET/POST
* @return array $data 响应数据
*/
protected function http($url, $params, $method = 'GET', $header = [], $multi = false)

上传的upload.PHP

$file['hash'] = $fun($this->autoCharset($file['savepath'] . $file['savename'], 'utf-8', 'gbk'));

支持php7

php7快发布了,希望 不要基于php5.4了,直接基于php7

第三方内裤无内容

很期待不知道什么时候发布,希望快点出正式版!手册还不够好 辛苦大神了 yar 类会加进去不

SQL语句生成问题

SELECT * FROMuserWHEREemail= [email protected]
数据库是mysql 生成语句中的value没有没引号括起来,导致查询报错,这条语句是在哪个地方生成的?

think\db\driver.php escapeString 的问题

thinkphp\library\think\db\driver.php  LINE: 1132
Call to a member function quote() on null

escapeString方法是不是少了 
$this->initConnect();
if (!$this->_linkID) {
return $str;
}

我想问作者再用什么做测试

这个测试文件能不能对外公开!!!
我们看到的只有文件 ,看不到 测试过程
请公开 核心类库的测试!!!

建议

贵方 想把这个做强 这个可以理解!!

为什么不能 依赖一下 composer 的 第三方库呢 , 说实话贵方的 model 确实很弱 ,
规范可以试着依赖一下 composer,里面拥有很多超强的库!!

CI 错误信息修正

top-think/think Job #35.2 Log

TODO:

PHP LINT

PHP_CodeSniffer

  • PHPCBF自动修复 bc1b5f7
  • PHPCBF结果审计
  • 其他问题手动修复 #83

降级 PHPCS 检查

PHP Copy/Paste Detector

  • think/thinkphp/library/org/image/driver/gd.php:137-221
    think/thinkphp/library/org/image/driver/imagick.php:115-199
  • think/thinkphp/library/org/image/driver/gd.php:275-330
    think/thinkphp/library/org/image/driver/imagick.php:270-325
  • think/thinkphp/library/org/image/driver/gd.php:401-461
    think/thinkphp/library/org/image/driver/imagick.php:423-483
  • think/thinkphp/library/org/image/driver/gd.php:523-595
    think/thinkphp/library/org/image/driver/imagick.php:566-638
  • think/thinkphp/library/org/upload/driver/qiniu/qiniu_storage.php:270-299
    think/thinkphp/library/org/upload/driver/upyun.php:119-148
  • think/thinkphp/library/think/db/driver.php:167-190
    think/thinkphp/library/think/db/driver.php:226-249
  • think/thinkphp/library/think/db/driver.php:134-386
    think/thinkphp/library/think/db/lite.php:120-372
  • think/thinkphp/library/think/db/driver.php:1177-1263
    think/thinkphp/library/think/db/lite.php:455-541
  • think/thinkphp/library/think/model.php:705-735
    think/thinkphp/library/traits/model/auto.php:28-58

降级 PHPCPD 检查

phpmd

数量太多,不在此列出

取消 PHPMD 检查

phpunit

  • 创建 bootstrap 文件
  • 创建基础功能测试

建议使用mcrypt

TP的加密模块不安全,建议使用mcrypt或openssl扩展。
./thinkphp/library/org/crypt.php

改进的模板引擎,希望能采纳

看了一下5.0版的模板引擎基本和3.2版的一样。我在3.2版的模板引擎基础上写了一个改进版,自己试用感觉还可以,如果可以的话希望5.0版能用上这个。
下面先只说一下对原引擎改进的一些功能:
1.标签的替换过程和原来有所不同。不再是递归式的把标签及中间的内容传值到方法里进行替换,而是用正则查找出标签后,由后到前(这样才不会影响前面的标签)替换模板中的标签,不管同类标签嵌套多少层,都是在一个循环中完成的,对替换的性能无影响。整体解析速度提升。
2. 兼容原来所有的标签功能和用法,已 对正则进行了优化,标签库和内置的普通标签可以使用一样的边界符,比如都用"{}",只要不重名不会相互干扰,这样这些标签就可以和html标签区分开。
3.模板支持多级继承。
4. include标签支持多层嵌套,可以传变量。如:

在Public/nav模板用[selected]得到的是[$id}被解析后的值,而在3.2版中这样的写法是不能正确得到{$id}的值的。
5.增强了.语法的应用范围
{$user.name.$group.name} 解析后是
{:substr($varname.aa, $varname.bb)} 解析后是
.语法在各个标签中都可以使用,$a.b.c这样的形式都能正确解析成$a['b']['c']
6.增加了一些新的语法
{$varname.aa ?? 'xxx'} 表示如果有设置$varname则输出$varname,否则输出'xxx'。 解析后的代码为:
{$varname?='xxx'} 表示$varname为真时才输出xxx。 解析后的代码为:
{$varname ?: 'no'} 表示如果$varname为真则输出$varname,否则输出no。解析后的代码为:
{$a==$b ? 'yes' : 'no'} 前面的表达式为真输出yes,否则输出no, 条件可以是==、===、!=、!==、>=、<=
7. 对if标签及foreach也加了一些更简洁的用法

代码是在3.2版上写的,而5.0版结构有变动,我需要整理一下才能用到提交5.0版上来。

关于T()函数的建议

之前trait没有在think目录,需要手工调用T函数,现在在think目录,而且也注册了命名空间,T()函数是不是没有存在的必要了?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.