GVKun编程网logo

THINKPHP2.0到3.0有哪些改进之处(thinkphp3.2.3)

26

本篇文章给大家谈谈THINKPHP2.0到3.0有哪些改进之处,以及thinkphp3.2.3的知识点,同时本文还将给你拓展AndroidN即将“上市”,有哪些改进之处、PHP8.2有哪些改进、PHP

本篇文章给大家谈谈THINKPHP2.0到3.0有哪些改进之处,以及thinkphp3.2.3的知识点,同时本文还将给你拓展Android N 即将“上市”,有哪些改进之处、PHP8.2有哪些改进、PHP的ThinkPHP查询有哪些、ThinkPHP 3.2 版本升级了哪些内容,thinkphp3.2等相关知识,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

THINKPHP2.0到3.0有哪些改进之处(thinkphp3.2.3)

THINKPHP2.0到3.0有哪些改进之处(thinkphp3.2.3)

1.thinkPHP中我们的入口文件写法,可能最后要加一个app::run();

3.0就完全不用了,你会发现不然会出现两次调用2.debug 我们开发的时候在2.0中我们一般都这样写,在conf下边的config.PHP

但是现在的3.0的申明方式就不一样了,我们就用define(‘APP_DEBUG',true);

这样来申明

3.在模板分配模板的时候,在2.0的时候我们会写这些$this->display(皮肤@模块:方法);

但是我们在3.0就是$this->display(皮肤:模块:方法);

4.在我们调用模型的时候,我们可能会这样$user=D(‘user');这个在2.0是完全可以没问题的,但是

如果你写在3.0上,不好意思你写在usermodel.PHP模型方法根本调用不出来,这个肿么办呢?

$user->D(‘User');不要忽略大小写

5.3.0的部署目录和2.0的是不同的大家要自己惨老看看

6.3.0的自定义目录或者路径都跟2.0的有区别 大家要对照的手册参考看一下,其实也可以自己写一下

今天就先写这么多,继续更新慢慢来~~

Android N 即将“上市”,有哪些改进之处

Android N 即将“上市”,有哪些改进之处

据国外媒体今日美国报道,据官方消息称,Android牛轧糖,也称Android 7.0将于今年夏天晚些时候正式发布。

Android系统目前占有全球84%的市场份额。新系统将会拥有更长的待机时间,多窗口的用户扩展体验以及直接回复通知等功能。下面就让我们具体看一看Android牛轧糖有哪些改进与更新:

1. 新系统名称:牛轧糖

谷歌在命名新操作系统时一直选取的都是甜品的名字。比如“姜饼(Gingerbread)”(Android2.3到2.3.7)、“冰淇淋三明治(Ice Cream Sandwich)”(Android 4.0)、“奇巧(KitKat)”(Android 4.4)、“棒棒糖(Lollipop)”(Android 5.0到5.1.1)和“棉花糖(Marshmallow)”(Android 6.0到6.0.1)。

这些甜品名称还会按照字母表的顺序排序。因此,Android 7.0被命名为“牛轧糖(Nougat)”。该名称是网友集思广益投票得出的。

2. Android牛轧糖概况

Android牛轧糖更新了“最近使用的应用程序”这一功能,能够让用户更快的在不同应用程序之间来回切换。在新的操作系统中,用户只需双击Home键右侧的按钮即可直接跳转至用户最近使用的应用程序。用户不再需要通过筛选来选择最近使用的应用程序。

同时,在关闭后台运行的程序时,用户不再需要一个一个的删除。新系统会新增一个全部删除按钮,只需一键就可以立刻关闭所有后台运行程序。

3. 多窗口模式

Android牛轧糖将会添加多窗口模式,能够让用户在同一界面同时运行两个应用程序。当用户运行一个应用程序的时候,只要按下概览按钮,就会弹出多窗口模式选项。在这个模式下,用户可以选择一个应用程序同时使用。用户也可以通过移动屏幕,让一个应用程序占用多一点屏幕,另一个应用程序占用稍少的屏幕。该模式将可以在任何设备的任何模式下运行。

4. 直接回复功能

Android牛轧糖还在提升用户工作效率上做出了改进。比如:直接回复功能。也就是说,用户不必打开邮件应用程序就可以直接回复邮件。谷歌表示,这项功能能够适用于任何信息类应用程序。

5. 待机时间更长

外出时手机没电恐怕是很多人最不想遇到的事情。因此,此次谷歌对Android牛轧糖的电池寿命也进行了提升。新系统主要在三个方面优化电池点量:减少后台打开的应用程序;在旅途中进入低功耗模式;优化性能,减少后台占用的内存,减轻手机处理器的负担。

6、更贴心的设置功能

在Android牛轧糖系统中,第三方应用程序将首次能够进行快捷设置。比如:单击电池,能够看到手机电量还能够支撑多久。如果长按电池按钮,则可以看到哪些应用程序耗电最多。同时,新系统对快捷设置功能本身也进行了改进和优化。

出处:网易科技

PHP8.2有哪些改进

PHP8.2有哪些改进

这篇文章主要介绍了PHP8.2有哪些改进的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇PHP8.2有哪些改进文章都会有所收获,下面我们一起来看看吧。

PHP8.2是PHP语言现代化进程中的一个重要的里程碑。除了令人兴奋地新特性和改进之外,PHP8.2还简化了语言,取消了对动态类属性的支持,在遇到某些非最优的ini配置时发出警告,并修复了一些影响PHP数组排序和某些类型的字符串转换/编码操作的遗留PHP行为。

系统改进

PHP8.2解决了PHP类型系统的几个缺点和限制,允许PHP应用采用更好的类型安全。包括添加了true类型,允许null和false作为独立的类型使用,并支持DNF类型(泛型解析)。

PHP8.2支持分离范式类型,现在可以进行组合联合类型和交际类型,这可以定义声明精确而富有表现力的参数、返回值和属性。

PHP8.2之前

class Foo {     public function bar(mixed $entity) {         if ((($entity instanceof A) && ($entity instanceof B)) || ($entity === null)) {             return $entity;         }         throw new Exception('Invalid entity');     } }

现在

class Foo {     public function bar((A&B)|null $entity) {         return $entity;     } }

支持truefalse作为独立的类型,如果bool始终相同的时候可以用它来声明。

function alwaysReturnsFalse(): false {} function alwaysReturnsNull(): null {} function alwaysReturnsTrue(): true {}

其中null的类型在之前的版本中就可以在联合类型声明中使用,现在可以独立使用了。

只读类

PHP8.1增加了一个readonly的属性声明。一个readonly的属性只能设置一次,并且PHP会阻止任何作用域内的修改。

PHP8.2readonly声明进行更进一步的使用,可以将类声明为readonly。当一个类被声明为readonly,它的所有属性都会自动声明readonly。此外,这个类不能使用动态属性,以确保所有的属性都是有定义的。

readonly class User {     public string $username;     public string $uid; }

所有的属性都会自动声明城readonly

新的随机数扩展

PHP的历史发展中,它支持各种各样的随机数生成器,他们有不同程度的性能和不同的用例,并且适合安全应用程序。PHP8.2更进一步,将所有与随机数相关的功能重构为一个名为random的扩展。新的扩展不会破坏任何现有的接口使用,因此现有的randmt_rand函数将继续工作,不需要任何更改。它还提供了一个对象接口,用可插拔的体系生成随机数,因此很容易模拟随机数生成器并提供新的随机数生成器,从而市PHP应用程序安全且易于测试。

trait常量

PHP8.2中,可以在trait中声明常量。trait不能直接访问,但当类使用trait时,这些常量就变成了类的常量。

trait Foo {     public const CONSTANT = 1; } class Bar {     use Foo; } var_dump(Bar::CONSTANT); // 1 var_dump(Foo::CONSTANT); // Error

敏感参数支持

PHP8.2新增了一个内置参数属性命名:#[\SensitiveParameter]。能够使PHP在堆栈跟踪和错误消息中隐藏掉实际值。

我们经常会在参数或属性中定义密码、秘钥或其他敏感信息。当PHP发生错误时,这些值会被记录下来。显示到屏幕上或者记录到日志中。这样人们就能通过这些方式得到敏感数据。

比如下面的例子:

function passwordHash(#[\SensitiveParameter] string $password)  {        debug_print_backtrace();  }  passwordHash('hunter2');

打印的内容如下:

array(1) { [0]=> array(4) {   ["file"]=> string(38) "..."   ["line"]=> int(9)   ["function"]=> string(3) "foo"   ["args"]=> array(1) {      // [0]=> string(38) "hunter2" 这一行不会被打印出来      [0]=> object(SensitiveParameterValue)#1 (0) {}   }  } }

hunter2不会被打印出来。

新的函数和类

解析INI数量值:ini_parse_quantity

PHP ini值识别成字节。

ini_parse_quantity('256M'); // 268435456

curl维持活动:curl_upkeep

PHP8.2中,curl扩展会触发底层curl库来运行必要任务,以保持curl连接存活。最常见的用法就是定期调用curl_upkeep来实现http持久连接(keep-alive

检索密码长度:openssl_cipher_key_length

PHP8.2 OpenSSL中,有一个名为openssl_cipher_key_length的函数,能够接受任何支持的密码所需的秘钥长度,在之前需要硬编码才能实现:

openssl_cipher_key_length("CHACHA20-poly1305"); // 32 openssl_cipher_key_length("AES-128-GCM"); // 16 openssl_cipher_key_length("AES-256-GCM"); // 32

重置记录的峰值内存使用量:memory_reset_peak_usage

这对于多次调用或迭代调用时很有用。

PHP8.2中的弃用

PHP8.2也带来了相当一部分的弃用。当语法、函数和特性被弃用时,PHP会发起一个弃用通知,该通知不应该中断PHP程序,但会被记录到错误日志中。

注意:PHP8.0以后,PHP的默认错误报告行为是E_ALL

已弃用动态属性

PHP8.2中最值得注意的弃用之一就是弃用动态属性。如果一个类属性没有声明就被调用或赋值,就会退出程序。

class User {     public int $uid; } $user = new User(); $user->name = 'Foo';

这个可能会影响到很多的的PHP遗留程序,推荐的修复方法是在类型中声明属性。

对此也有例外用法,比如stdClass和它的子类将正常使用,__get和__set魔术方法将正常使用,或者声明#AllowDynamicProperties。

安装和升级到PHP8.2

PHP 8.2现在可以在所有常规源代码中下载/安装:

  • Windows:编译后的二进制文件可在windows.PHP.net

  • Ubuntu/Debian: PHP 8.2可用ondrej/PHPPPA

  • Fedora/RHEL/CentOS/Alma/Rocky:可以在Remi的源中获取

  • Mac OS: PHP 8.2可以通过Homebrew安装shivammathur/homebrew-PHP利用.

  • Docker:可以通过8.2*版本获取PHP 8.2

PHP8.2有哪些改进

PHP8.2有哪些改进

关于“PHP8.2有哪些改进”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“PHP8.2有哪些改进”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注小编行业资讯频道。

PHP的ThinkPHP查询有哪些

PHP的ThinkPHP查询有哪些

1、聚合查询

在应用中我们经常会用到一些统计数据,例如当前所有(或者满足某些条件)的用户数、所有用户的积分、用户的平均成绩等等,ThinkPHP为这些统计操作提供了一系列的内置方法

获取用户数:

Db::table(''think_user'')->count();
// 助手函数
db(''user'')->count();
登录后复制

2、时间查询

使用 where方法。

方法支持时间比较,例如:

// 大于某个时间
where(''create_time'',''> time'',''2016-1-1'');
// 小于某个时间
where(''create_time'',''<p><strong>3、快捷查询</strong></p><p>快捷查询方式是一种<strong>多字段相同查询条件</strong>的简化写法,可以进一步简化查询条件的写法,在多个字段之间用 | 分割表示OR查询,用 &amp; 分割表示AND查询,可以实现下面的查询,例如:</p><pre>Db::table(''think_user'')    -&gt;where(''name|title'',''like'',''thinkphp%'')    -&gt;where(''create_time&amp;update_time'',''&gt;'',0)    -&gt;find();
登录后复制

以上就是PHP的ThinkPHP查询有哪些的详细内容,更多请关注php中文网其它相关文章!

ThinkPHP 3.2 版本升级了哪些内容,thinkphp3.2

ThinkPHP 3.2 版本升级了哪些内容,thinkphp3.2

thinkphp 3.2 版本升级了哪些内容,thinkphp3.2

前言

ThinkPHP 3.2 基于 ThinkPHP 3.1 的基础上有许多的变化,我觉得这个版本应该设立为 ThinkPHP 4.0 而不是什么 3.2。如果你在使用 ThinkPHP 3.1 请勿贸然迁移升级,这可不是简单的覆盖下文件就安然无恙的事情。
 
1. PHP 的版本

ThinkPHP 3.2 要求 PHP 5.3 以上的版本,而 ThinkPHP 3.1 只需要 PHP 5.2 就好了
 
2. 程序文件夹的修改

ThinkPHP 3.2 使用 Application 作为程序文件夹,而 ThinkPHP 3.1 则是用 app 作为程序文件夹。
 
3. 不同分组设定的升级

建议以后开发尽量不要做分组,要不然针对分组,有不少要处理的地方,这里只是介绍未分组的情况,有做分组的朋友,请上官方文档寻找答案。

ThinkPHP 3.2 设置了一个 Home 目录,很多文件都将迁移到 Home 目录中。

复制代码 代码如下:
App/Common/common.php         =>     Application/Home/Common/function.php
App/Common/extend.php         =>     Application/Home/Common/extend.php(假设存在定义的话)
App/Conf/Config.php           =>     Application/Home/Conf/config.php
App/Lang/zh-cn/common.php     =>     Application/Home/Lang/zh-cn.php(假设存在的话)
App/Lib/Action     =>    Application/Home/Action
App/Lib/Model      =>    Application/Home/Model
App/Tpl             =>  Application/Home/View

注意,因为 Home 目录的出现,你需要修改你的 .htaccess 文件为

复制代码 代码如下:

  Options +FollowSymlinks
  RewriteEngine On
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ index.php/home/$1 [QSA,PT,L]

否则,将会出现模块找不到的错误。

立即学习“PHP免费学习笔记(深入)”;

新的目录对 Action 和 Tpl 进行了重新命名,分别为 Controller 和 View,这样更加直观的体现了 MVC 的文件夹的部署方式。对于那些保留了 Action 的朋友,可以修改 Application/Common/config.php 中的信息:

复制代码 代码如下:
''DEFAULT_C_LAYER''       =>  ''Action'', // 默认的控制器层名称
''MODULE_ALLOW_LIST''     =>  array(''Home'',''Admin'',...), // 配置你原来的分组列表
''DEFAULT_MODULE''        =>  ''Home'', // 配置你原来的默认分组

 
4. 系统配置参数的变动

ThinkPHP 3.2 废弃了以下系统配置参数

复制代码 代码如下:
APP_GROUP_LIST
APP_GROUP_MODE
APP_AUTOLOAD_PATH
APP_TAGS_ON
APP_GROUP_PATH
DEFAULT_APP
DEFAULT_GROUP
VAR_GROUP
LOG_DEST
LOG_EXTRA

修改了以下配置参数

复制代码 代码如下:
DEFAULT_MODULE => DEFAULT_CONTROLLER

 
5. 命名空间

ThinkPHP 3.2 添加了命名空间,把项目的Application/Home/Action目录下面的所有文件,头部添加如下代码(必须是除注释以外的第一行):

复制代码 代码如下:
namespace Home\Action;
use Think\Action;

如果你的项目使用了控制器分层的话,需要对每个分层的类库文件添加类似的代码,例如有定义Event分层的话,需要在头部添加:

复制代码 代码如下:
namespace Home\Event;
use Think\Action;

把项目的Application/Home/Model目录下面的所有文件,头部添加如下代码(必须是除注释以为的第一行):

复制代码 代码如下:
namespace Home\Model;
use Think\Model;

如果你的项目使用了模型分层的话,需要对每个分层的类库文件添加类似的代码,例如如果你有Service分层,需要在头部添加:

复制代码 代码如下:
namespace Home\Service;
use Think\Model;

 
6. 方法调整

控制器类Think\Controller或者Think\Action的下列方法已经废除:

废除方法 替代方法
_get(''id'') I(''get.id'')
_post(''id'') I(''post.id'')
_put(''id'') I(''put.id'')
_param(''id'') I(''id'')
_request(''id'') I(''request.id'')
_cookie(''id'') I(''cookie.id'')

7. 常量调整

下列常量已经废除:
APP_NAME // 3.2版本中无需再定义该常量 
__GROUP__ // 3.2版本中可以用__MODULE__ 表示模块的URL地址 
GROUP_NAME //3.2版本中可以用 MODULE_NAME 获取当前模块名 
MODE_NAME  // 3.2版本中模式扩展已经废弃,参考下面的模式调整部分 

这样就基本上完成了迁移,如果中间还有一些修改的话,请上官方文档寻找答案。

以上就是本文所述关于ThinkPHP3.2发生的变化了,希望对大家能够有所帮助。

我们今天的关于THINKPHP2.0到3.0有哪些改进之处thinkphp3.2.3的分享就到这里,谢谢您的阅读,如果想了解更多关于Android N 即将“上市”,有哪些改进之处、PHP8.2有哪些改进、PHP的ThinkPHP查询有哪些、ThinkPHP 3.2 版本升级了哪些内容,thinkphp3.2的相关信息,可以在本站进行搜索。

本文标签: