TP5学习笔记
tp5
- TP是一个免费开源的、快速简单的、面向对象的、轻量级PHP开发框架,简洁实用。
- 创立于2006年,遵循Apache2开源协议发布
- TP5的优点
-采用全新开发的架构思想
-优化核心是一个颠覆性版本
-支持composer方式安装
-对API进行大量的优化更符合现代WEB开发的方式 - TP5和TP3不兼容,TP5进行大量更新,TP3转换要更改源码和逻辑,比较麻烦不奈斯,还是直接下载TP5比较好。
- git一个开源的分布式版本控制系统,优点是有效高速。
- MVC全名是Madel View Controller,分为三个部分,模型 视图 控制台。
- MVC流程当我们打开网站MVC替我们准备一个视图层等待用户输入当用户输入对其进行操作后将指令给控制器,控制器传给模型(以web网站为例主要是对数据库增删改查的操作),查询改变通知给控制器,控制器对视图通知后,视图更新。
- 传统模式与MVC对比
-传统将所有的用户输入输出以及判断放一个层次没有划分显得很乱
-MVC控制代码,完善开发体验。
-耦合性低,重用性高,可维护性高,有利软件工程性。
-MVC拥有的变形 - 无Model模式的Web开发
- 无View模式的API接口开发
- Model再分层和Controller再分层
官网的下载版本不一定是最新版本,GIT版本获取的才是保持更新的版本。
二、Composer安装 ThinkPHP5 支持使用 Composer 安装,如果还没有安装 Composer ,你可以
按 Composer安装 中的方法安装。在 Linux 和 Mac OS X 中可以运行如下命令:
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
在 Windows 中,你需要下载并运行 Composer-Setup.exe。
如果遇到任何问题或者想更深入地学习 Composer,请参考 Composer 文档(英文),
Composer 中文。
如果你已经安装有 Composer 请确保使用的是最新版本,你可以用
composer self-update 命令更新 Composer 为最新版本。
然后在命令行下面,切换到你的web根目录下面并执行下面的命令:
composer create-project topthink/think=5.0.* tp5 --prefer-dist
表示安装最新的5.0版本。
如果出现错误提示,请根据提示操作或者参考Composer中文文档。
如果国内访问 composer 的速度比较慢,可以参考这里的说明使用国内镜像
三、Git安装 如果不太了解 Composer 或者觉得 Composer 太慢,也可以使用 git 版本库安装和更
新, ThinkPHP5.0 拆分为多个仓库,主要包括:
应用项目: https://github.com/top-think/think
核心框架: https://github.com/top-think/framework
如果访问github速度比较慢,可以考虑下面两个国内GIT仓库:
[ 码云 ]
应用项目: https://git.oschina.net/liu21st/thinkphp5.git
核心框架: https://git.oschina.net/liu21st/framework.git
[ Coding ]
应用项目: https://git.coding.net/liu21st/thinkphp5.git
核心框架: https://git.coding.net/liu21st/framework.git
之所以设计为应用和核心仓库分离,是为了支持 Composer 单独更新核心框架。
首先克隆下载应用项目仓库
git clone https://github.com/top-think/think tp5
然后切换到 tp5 目录下面,再克隆核心框架仓库:
git clone https://github.com/top-think/framework thinkphp
两个仓库克隆完成后,就完成了 ThinkPHP5.0 的 Git 方式下载,如果需要更新核心框架
的时候,只需要切换到thinkphp核心目录下面,然后执行:
git pull https://github.com/top-think/framework
如果不熟悉 git 命令行,可以使用任何一个GIT客户端进行操作,在此不再详细说明。
无论你采用什么方式获取的 ThinkPHP 框架,现在只需要做最后一步来验证是否正常运行。
在浏览器中输入地址:
http://localhost/tp5/public/
如果浏览器输出如图所示:
恭喜你,现在已经完成 ThinkPHP5 的安装!
如果是mac或者linux环境,请确保 runtime 目录有可写权限
如果你无法正常运行并显示 ThinkPHP 的欢迎页面,那么请检查下你的服务器环境:
PHP 5.4 以上版本(注意:PHP5.4dev版本和PHP6均不支持)
WEB服务器是否正常启动
文章图片
目录:
project应用部署目录
├─application应用目录(可设置)
│├─common公共模块目录(可更改)
│├─index模块目录(可更改)
││├─config.php模块配置文件
││├─common.php模块函数文件
││├─controller控制器目录
││├─model模型目录
││├─view视图目录
││└─ ...更多类库目录
│├─command.php命令行工具配置文件
│├─common.php应用公共(函数)文件
│├─config.php应用(公共)配置文件
│├─database.php数据库配置文件
│├─tags.php应用行为扩展定义文件
│└─route.php路由配置文件
├─extend扩展类库目录(可定义)
├─publicWEB 部署目录(对外访问目录)
│├─static静态资源存放目录(css,js,image)
│├─index.php应用入口文件
│├─router.php快速测试文件
│└─.htaccess用于 apache 的重写
├─runtime应用的运行时目录(可写,可设置)
├─vendor第三方类库目录(Composer)
├─thinkphp框架系统目录
│├─lang语言包目录
│├─library框架核心类库目录
││├─thinkThink 类库包目录
││└─traits系统 Traits 目录
│├─tpl系统模板目录
│├─.htaccess用于 apache 的重写
│├─.travis.ymlCI 定义文件
│├─base.php基础定义文件
│├─composer.jsoncomposer 定义文件
│├─console.php控制台入口文件
│├─convention.php惯例配置文件
│├─helper.php助手函数文件(可选)
│├─LICENSE.txt授权说明文件
│├─phpunit.xml单元测试配置文件
│├─README.mdREADME 文件
│└─start.php框架引导文件
├─build.php自动生成定义文件(参考)
├─composer.jsoncomposer 定义文件
├─LICENSE.txt授权说明文件
├─README.mdREADME 文件
├─think命令行入口文件
TP5开发规范 ThinkPHP5 遵循 PSR-2 命名规范和 PSR-4 自动加载规范,并且注意如下规范:
- 目录和文件
目录使用小写+下划线;
类库、函数文件统一以 .php 为后缀;
类的文件名均以命名空间定义,并且命名空间的路径和类库文件所在路径一致;
类文件采用驼峰法命名(首字母大写),其它文件采用小写+下划线命名;
类名和类文件名保持一致,统一采用驼峰法命名(首字母大写);
函数和类、属性命名
类的命名采用驼峰法(首字母大写),例如 User 、 UserType ,默认不需要添加后
缀,例如 UserController 应该直接命名为 User ;
函数的命名使用小写字母和下划线(小写字母开头)的方式,例如 get_client_ip
;
方法的命名使用驼峰法(首字母小写),例如 getUserName ;
属性的命名使用驼峰法(首字母小写),例如 tableName 、 instance ;
以双下划线“”打头的函数或方法作为魔术方法,例如call 和 __autoload
; - 常量和配置
常量以大写字母和下划线命名,例如 APP_PATH 和 THINK_PATH ;
配置参数以小写字母和下划线命名,例如 url_route_on 和 url_convert ; - 数据表和字段
数据表和字段采用小写加下划线方式命名,并注意字段名不要以下划线开头,例如
think_user 表和 user_name 字段,不建议使用驼峰和中文作为数据表字段命名。 - 应用类库命名空间规范
应用类库的根命名空间统一为app(不建议更改,可以设置 app_namespace 配置参数更
改, V5.0.8 版本开始使用 APP_NAMESPACE 常量定义);
请避免使用PHP保留字作为常量、类名和方法名,以及命名空间的命名,否则会造成系统错误。
推荐阅读
- EffectiveObjective-C2.0|EffectiveObjective-C2.0 笔记 - 第二部分
- 由浅入深理解AOP
- 继续努力,自主学习家庭Day135(20181015)
- python学习之|python学习之 实现QQ自动发送消息
- Android中的AES加密-下
- 一起来学习C语言的字符串转换函数
- 定制一套英文学习方案
- 漫画初学者如何学习漫画背景的透视画法(这篇教程请收藏好了!)
- 《深度倾听》第5天──「RIA学习力」便签输出第16期
- 如何更好的去学习