我们写好的代码往往部署于Linux上,为了安全和URL的美观,经常会利用 Apache或者 Nignx 进行URL 重写。ThinkPHP5 官方URL重写说明: Thinkphp5 URL...

RBAC(基于角色的权限访问控制)数据库设计
大多数项目中,多多少少都会涉及到权限控制,各种编程语言也有相对应的开源代码。但是,在项目复杂的项目中,可能无法满足我们的需求,因此,我们来介绍下完整的RBAC 及其数据库设计。RBAC,即基于角色的权...

windows 下 svn 钩子实现提交后自动同步 web 项目部署目录
在上篇 PHP 内网开发环境的搭建部署(IP部署、域名部署) 中,我们搭建了一个内网服务器供测试、开发、统一数据库使用,接下来介绍如何利用svn 的钩子实现代码的自动更新。目的:实...

PHP 内网开发环境的搭建部署(IP部署、域名部署)
我们在工作中,往往是多个人团队协同开发,因此我们可以部署内网开发环境。内网开发环境有以下好处:1、统一的数据库环境,这样在数据库发生结构变化时,其余开发人员无需进行数据库修改2、可以用来部署内网文件共...
解决 ThinkPHP5 中多表多字段查询问题(MySQL 视图应用以及介绍)
在日常开发中,我们经常会遇到如下问题:在前端展示的列表中,往往包含多个表的数据且需要查询多个表的字段,进行筛选分页排序等问题,常见的方法是采用 join 方法或者 ThinkPHP 的关联模型、视图查...

ThinkPHP5 API 多版本控制开发
开发准备对于接口开发,建议采用单独的项目部署,与后台项目分离开来,原因如下:1. 接口多用于查询数据,对于数据提交的较少2. 接口的权限多采用token模式,后台多采用RBAC控制访问3. 对于需要高...
MySQL 存储引擎介绍(MyISAM 存储引擎)
在 MySQL 5.1 以及之前的版本,MyISAM 是默认的存储引擎。MyISAM 提供了大量的特性,包括全文索引、压缩、空间函数(GIS)等,但 MyISAM 不支持事务和行级锁,而且有一个毫无疑...
ThinkPHP5 Loader 类介绍以及使用
Loader 类功能:实现类库或者资源的自动加载源代码:/thinkphp/libary/think/Loader.php我们主要来看几个用到的方法:模型加载方法/** &nb...

ThinkPHP5 异常接管
在实际应用中,对于异常错误处理,我们往往需要进行错误的友好处理,并且需要记录错误(越为详细越好),一方面提高了用户的体验,另一方面也可以帮助开发人员更好的调试。ThinkPHP5 异常处理说明:&nb...
MySQL 并发控制
无论何时,只要有多个查询需要在同一时刻修改数据,都会产生并发控制的问题。以 Unix 系统的 email box 为例,典型的 mbox 文件格式是非常简单的。一个 mbox 邮箱中的所有邮件都串行在...