ThinkPHP5中如何加入插件功能

最近在使用ThinkPHP5开发应用,之前习惯了一些插件开发,感觉很好且,但基于现在文档不是很完善,所以自己研究了一下基础功能。将TP3.2中的插件功能迁移了过来。

加入插件的方法:

1、在系统的index.php入口中加入如下配置

2、在数据库中加入addons插件表和hooks钩子表

3、在ThinkPHP5的根目录中创建addons目录

4、在application中的common.php公共函数里添加两个公共方法

5、在application目录下创建common模块,在common模块中创建behavior行为目录,在公共行为目录中创建Hooks.php钩子行为插件,内容如下:

6、在application目录中创建tags.php行为配置文件,并且加入内容

到此为止,插件功能就集成完毕了。

接下来我们做个简单的插件试一下:

1、在addons目录中创建一个Base.php 插件的基类

2、在插件表(addons),钩子表(hooks)中加入相应的数据

3、在addons目录中创建一个test目录,且内部创建一个Test.php插件类

4、在控制器中使用hook方法来调用钩子

5、ok,大功告成

发表在 BS架构后台语言, CMS相关问题汇聚 | 标签为 , , , | 5条评论

PHPStorm + WAMP + Xdebug + Chrome Xdebug Helper 调试配置

话说 PHPStorm 写起代码来非常带感,各种提示补全和纠错,以及在 L5 中的命名空间功能更是强大到感动(新建类自动添加命名空间,自动引入命名空间,返回参数命名空间纠正等等)。当然它的调试功能更是让你在出现BUG 不知所措时抓住的稻草。

下面我将一步一步带你配置这强大到爆功能。但是,这个配置是很简单。

假定你已经安装好了 PHPStorm 和 WAMP,以及chrome,这里不再教你这些了

WAMP中配置xdebug

1、到https://xdebug.com/download.php网站上下载相应的xdebug扩展,并且放到php的ext目录中

2、打开php的配置文件 php.ini 在文件尾部加入

3、保存后,重启apache服务

配置PHPStorm

1.安装chrome扩展 Xdebug helper

2.进入 Xdebug hepler 的配置选项中,选择 IDE key 为 PHPStorm。

75b86c13jw1eq20w4squij209m0c4acl

3.把扩展调整为 debug 模式,如图

75b86c13jw1eq20hy0cfdj205b05eq34

4.打开你的 PHPStorm 并设置一个测试断点。如图

75b86c13jw1eq20jw2jedj204i03smx3

5.依次打开 PHPStorm 中的 Run>Start Listening for PHP Debug Connections。

6.刷新你刚才的页面就会发现弹出了个对话框并且已经开始调试了。

7.最后设置一些你的项目目录,就是你的项目目录对应你映射到 Homestead 的目录。

75b86c13jw1eq20mptssvj20uw0d6adp

好了,收工!就是如此简单的操作,需要的时候点开 chrome 的扩展 Xdebug 设置为 debug 即可让你随时调试你的页面。

发表在 BS架构后台语言, 应用工具软件 | 标签为 , , , , | 留下评论

WordPress上传文件中文乱码时自动重命名

刚刚建立的wordpress,在上传图片的过程中发现,如果图片名称重复的话会覆盖掉原来的图片,主机不支持上传中文名的附件也可以使用此方法。

往主题functions.php添加以下代码即可

 

这样做的好处会很多:主机不支持中文名称,那么会导致上传的图片不会正常显示在用户的浏览器上;ftp下载的中文图片名称的时候乱码,如果你是备份到本地然后恢复的时候,那么图片就都坏了(呃,我就是受害者之一,so…);

关注:上面是改名称为年月日+随机数字,要想加上时分秒,修改第三行 $time=date(“Y-m-d”); 为 $time=date(“Y-m-d H:i:s”); 即可

下面发张实列图片给大家看看

3790312eb9389b501f77c1ef8735e5dde6116e47[1]

发表在 BS架构后台语言, CMS相关问题汇聚 | 标签为 , | 留下评论

【福利】Host内容管理工具 v1.3

在工作中,经常会有将本地环境的地址修改成和线上一致的情况来调试一些bug,所以自己开发了一个小工具来管理自己本地的host文件,这样修改自己本地环境和线上地址对应时就方便多了。

在左侧列表右键时可以删除选中行。

(秘密:点击科学上网后可以自动加入一些被墙地址的host,就是可以科学访问Google,facebook,google等哦)

QQ截图20160126140459

点这里下载:HostManager v1.3.zip

发表在 应用工具软件 | 标签为 , , | 留下评论

ThinkPHP5(RC2)中如何使用模型的自动完成及自动验证

最近项目组在使用ThinkPHP5开发系统,但官方给的文档更新太慢,其中在3.2版本上用的很方便的模型自动完成自动验证机制在TP5中还没有具体描述。

自己读了一下git上的源码,发现源码中已存在该特性了,所以找了模型测试了一下,bingo~~~

示例图:

Thinkphp5中的自动验证及自动完成使用方法

 

步骤:

1、在模型类的头部引入Traits的扩展类 (PHP5.5以上版本可以不需要)

2、在模型类开始的位置use一下刚引入的Traits类位置

3、书写模型自动验证规则, 这里注意一点(TP5的自动验证规则属性没有下划线)

4、书写模型的自动完成规划,这里注意一点(TP5的自动完成规则属性也没有下划线)

5、在方法中使用create方法即可

 

TP5的自动验证自动完成规则与TP3.2的规则一致。

ThinkPHP 3.2.3的 自动验证传送门

http://document.thinkphp.cn/manual_3_2.html#auto_validate

ThinkPHP 3.2.3的 自动完成传送门

http://document.thinkphp.cn/manual_3_2.html#auto_operate

发表在 BS架构后台语言 | 标签为 , , | 留下评论

APACHE服务器出现No input file specified.的完美解决方案

启用REWRITE的伪静态功能的时候,首页可以访问,而访问内页的时候,就提示:“No input file specified.”

原因在于使用的PHP是fast_cgi模式,而在某些情况下,不能正确识别path_info所造成的错误,Wordpress的伪静态也有一样的问题。

WordPress程序默认的.htaccess里面的规则:

“No input file specified.”,是没有得到有效的文件路径造成的。

修改伪静态规则,如下:

有没有发现不同?

其实就是在正则结果“/$1”前面多加了一个“?”号,问题也就随之解决了。

发表在 应用工具软件 | 标签为 , | 留下评论

phpstorm常用快捷键

mac电脑phpstorm快捷键

command + a 全选

command + c 复制

command + v 粘贴

command + z 撤消

command + k 代码搜索

command + l 输入行号跳到某一行

command + o 查看一个类的结构

command + / 单行注释

command + e 列出最后打开的文件

ctrl + shift + / 块注释

shift + command + x

shift + command + r 按文件名搜索对应文件所在路径

shift + command + t 按类名搜索对应文件所在路径

shift + command + c 复制当前文件所在路径

选中左侧的文件名 shift + f6(mac需要同时按住键) 进行文件重命名

 

windows下phpstorm的快捷键

ctrl+shift+n查找文件

ctrl+shift+f 在一个目录里查找一段代码(ctrl+f的升级版)

ctr+shift+r 在一个目录里查找一段代码并替换(ctrl+r的升级版)

CTRL+ALT ←/→ 返回上次编辑的位置

ALT+ ←/→ 切换代码视图,标签切换

ALT+ ↑/↓ 在方法间快速移动定位

ctrl+j插入活动代码提示

ctrl+alt+t当前位置插入环绕代码

alt+insert生成代码菜单

ctrl+q查看代码注释

ctrl+d复制当前行

ctrl+y删除当前行

shift+F6重命名

ctrl+shift+u字母大小写转换

ctrl+f查找

ctrl+r替换

F4查看源码

ctrl+shift+i查看变量或方法定义源

ctrl+g跳转行

ctrl+alt+F12跳转至当前文件在磁盘上的位置

alt+down查看下一个方法

alt+up查看上一个方法

ctrl+alt+l重新格式化代码

ctrl+shift+downstatement向下移动

ctrl+shift+upstatement向上移动

alt+shift+downline向下移动

alt+shift+upline向上移动

ctrl+/行注释

ctrl+shift+/块注释

ctrl+shift+n打开工程中的文件

ctrl+b跳到变量申明处

ctrl+[]匹配 {}[]

ctrl+shift+]/[选中块代码

ctrl+x剪切行

ctrl+shift+v复制多个文本

alt+left/right标签切换

ctrl+p显示默认参数

ctrl+F12在当前类文件里快速查找方法

————————————————————–

phpstorm快捷键:

// ctrl+shift+n 查找文件

// ctrl+j 插入活动代码提示

// ctrl+alt+t 当前位置插入环绕代码

// alt+insert 生成代码菜单

// ctrl+q 查看代码注释

// ctrl+d 复制当前行

// ctrl+y 删除当前行

// shift+F6 重命名

// ctrl+shift+u 字母大小写转换

// ctrl+f 查找

// ctrl+r 替换

// F4 查看源码

// ctrl+shift+i 查看变量或方法定义源

// ctrl+g 跳转行

// ctrl+alt+F12 跳转至当前文件在磁盘上的位置

// alt+down 查看下一个方法

// alt+up 查看上一个方法

// ctrl+alt+l 重新格式化代码

// ctrl+shift+down statement向下移动

// ctrl+shift+up statement向上移动

// alt+shift+down line向下移动

// alt+shift+up line向上移动

// ctrl+/ 行注释

// ctrl+shift+/ 块注释

// ctrl+shift+n 打开工程中的文件

// ctrl+b 跳到变量申明处

// ctrl+[] 匹配 {}[]

// ctrl+shift+]/[ 选中块代码

….

// ctrl+x 剪切行

// ctrl+shift+v 复制多个文本

// alt+left/right 标签切换

// ctrl+p 显示默认参数

// ctrl+F12 在当前类文件里快速查找方法

发表在 应用工具软件 | 标签为 , | 留下评论

用ThinkPHP5自动生成目录及文件

自从上个月thinkphp5 beta版开放之后就一直在关注thinkphp5的官方文档,看完文档后发现thinkphp5的目录结构及一些类语法改变了,如果要将thinkphp3.2版本的项目升级到thinkphp5的话光修改目录及文件就是一项很大的工程。

在最新的thinkphp5的文档中发现支持目录及文件的自动生成机制,但具体使用文档没有发布。

自己研究了一下源码后找出了操作步骤。

1、在系统的APP_PATH目录中,也就是默认的application目录中创建一个build.php文件,编辑其内容为:

其中数组的第一个键为application目录中的模块名称,需要一个一个添加。然后依次是模块对应的子目录__dir____file__、controller、model、view 之类的子目录。

2、在public中的index.php入口文件里添加一个常量 APP_AUTO_BUILD

例如:

3、访问应用入口文件

20160106161428

大功告成,看一下application目录中是不是生成了你需要的文件呢。

发表在 BS架构后台语言 | 标签为 , , | 留下评论

PHP以星号隐藏用户名手机和邮箱

本文以淘宝评论购买记录中的隐藏部分用户名作为示例,并且拓展了隐藏手机号的中间四位数,和截取邮箱部分字符串,只要输入账号,可自动识别类型并以*显示。

big[1]

php中的隐藏函数:

测试数据:

以星号显示的示例:

 

发表在 BS架构后台语言 | 标签为 , , | 留下评论

修改phpstudy支持php7.0.1版本

1、 覆盖压缩包中相应的php701文件目录

2、 修改根目录下的phpStudy.ini信息

1

 

3、 修改phpstudy目录下的Apache/conf/httpd.conf文件的第451行,将值修改为

2

4、 在phpstudy目录下的Apache/conf/extra目录中新增httpd-php-fcgid701.conf文件,文件内容如下:

3

文件标红的为php7.0.1文件目录

5、 重启apache服务

20151230105000

发表在 应用工具软件 | 标签为 , | 留下评论