thinkphp

ThinkPHPV8.0发布——AI助力开发体验

(本文部分内容采用ThinkChat生成)

ThinkPHPV8.0为基于PHP8的重构版本,升级了相关依赖,官方开启了AI助理提升开发体验,提升ThinkORM版本依赖为3.0,支持6.0/6.1的无缝升级。

ThinkPHPV8.0在核心功能上虽然并没有大的更新(事实上大部分用户也不需要太复杂的底层功能),作为一个全新的版本,更多的意义在于一种官方的姿态——我思故我在。ThinkPHP在寻求一种改变或者是新的探索,从新版LOGO、新版官网,以及一系列的官方生态服务的陆续推出,无一不是在告诉用户,我们希望为生态、为用户做更多的事情,更好打造官方对大道至简的开发理念和愿景,从而帮助开发者更好的开发。值此新版发布之际,官方也正式宣布推出了的私人开发AI助理服务ThinkChat

ThinkPHP8.0作为一个全新的版本,承载了官方对未来生态的全新期望。官方也将始终秉承大道至简及无缝升级的策略,努力打造简单易用的框架及服务,方便生态产品和服务的更新迭代。这一版本的发布,标志着ThinkPHP在持续创新和改进的道路上迈出了重要一步。新版不仅是对过去版本的升级,更是对国内PHP开发生态的一次推动和革新。相信通过这一全新版本及AI开发助理的引入,将为广大开发者带来更便捷、高效的开发体验,助力他们构建出更出色的Web应用。

在ThinkPHP6.0+发布以来的这些年,官方一直在致力于摸索和打造生态及商业模式,在企业知识管理ThinkAPISSL证书云市场及应用认证方面的不断尝试,让我们坚信只有构建可持续的生态及发展才能让框架走的更好更远。

在此也要感恩一直以来支持和赞助我们的用户和赞助商,我们唯有不负众望,做一个值得开发者信赖的框架,并砥砺前行!

主要更新

  • 基于PHP

    

thinkphp 框架HTTP请求流程

thinkphp 框架HTTP请求流程

对于一个HTTP应用来说,从用户发起请求到响应输出结束,大致的标准请求流程如下:

  • 载入Composer的自动加载autoload文件
  • 实例化系统应用基础类think\App
  • 获取应用目录等相关路径信息
  • 加载全局的服务提供provider.php文件
  • 设置容器实例及应用对象实例,确保当前容器对象唯一
  • 从容器中获取HTTP应用类think\Http
  • 执行HTTP应用类的run方法启动一个HTTP应用
  • 获取当前请求对象实例(默认为 app\Request 继承think\Request)保存到容器
  • 执行think\App类的初始化方法initialize
  • 加载环境变量文件.env和全局初始化文件
  • 加载全局公共文件、系统助手函数、全局配置文件、全局事件定义和全局服务定义
  • 判断应用模式(调试或者部署模式)
        

使thinkphp 3.2.3兼容PHP7

一。

修改thinkphp下  /Library/Org/Util/String.class.php ,改个名字,比如 Stringstr.class.php  (因为string在php7中是保留字,不能用做类名)。

将Stringstr.class.php中的 类名修改为 Stringstr.  ,再将此文件中的String:: 修改为Stringstr::。

二。修改你 项目中的所有文件中的 use Org\Util\String; 为 use Org\Util\Stringstr; , 所有项目文件中的 String:: 修改为Stringstr::。

三。配置文件中的数据库类型改为 mysqli.,并将所有文件中的 mysql_*类函数修改为mysqli_*函数。

做了以上几点就可以做到使thinkphp 3.2.3兼容php7了,目前我的一个项目中运行正常。当然也可能有遗漏,如果有,以后再补充。…

            

thinkphp 框架 静态化,生成html

thinkphp  框架  静态化,生成html

使用thinkphp自带的buildHtml方法.

$this->buildHtml($Id, HTML_PATH .MODULE_NAME.CONTROLLER_NAME.ACTION_NAME. '/', '');

读取的时候,不经过php,直接读html文件, 需要nginx rewrite.

生成 html时,可在管理后台,的方法里加上面buildHtml方法生成.

前台或后台,每更改一次页面,要重新生成一次html.

此适用于非实时的 thinkphp页面.

可极大提高thinkphp的性能.…

            

thinkphp的缺点,好的代码应该是什么样的

好的代码应该是语义化的、自解释的,配合文档注释和单元测试,甚至可以说代码本身就是文档。说真心话,thinkphp的源代码根本没心情读下去,我猜凡是读过symfony、laravel、phalcon等流行源代码的应该都没心情去读thinkphp。
我觉得thinkphp在国内的流行是一个错误,这误导了很多人,为了写这个评论,我忍受痛苦git clonehttps://github.com/liu21st/thinkphp.git 翻开源代码一点点表达下自己的感受。…

    

用 thinkphp 查询 Oracle Spatial 的空间数据,实现LBS应用。

Oracle Spatial是Oracle公司推出的空间数据库组件,通过Oracle数据库系统存储和管理空间数据。

ORACLE SPATIAL将所有的地理空间数据类型(矢量、栅格、网格、影像、网络、拓扑)统一在单一、开放的、基于标准的数据管理环境中, 这就减少了管理单独、分离的专用系统的成本、复杂性和开销…