|
1.服务端 ThinkPHP5+MySQL构建REST API 2.客户端 向服务端请求数据,完成自身行为逻辑 3.CMS 向服务端请求数据,实现发货与发送微信消息 同时使用了:AOP面向切面编程思想的应用 使用ORM的方式与数据库交互(Object Relational Mapping) 用面向对象的思想构建前端代码(ES6 Class&Module) 知识与技术ThinkPHP5 1.Web框架三大核心知识(路由、控制器与模型) 2.验证器、读取器、缓存与全局异常处理 3.ORM:模型与关联模型(模型就是对象) 知识与技术 (微信) 1.微信小程序 2.微信登录 3.微信支付(预订单、支付与回调通知处理) 4.微信模板消息 使用的开发工具:phpStudy PHPStorm 微信Web开发者工具 PostMan Navicat ThinkPHP的目录结构 project 应用部署目录├─application 应用目录(可设置)│ ├─common 公共模块目录(可更改)│ ├─index 模块目录(可更改)│ │ ├─config.php 模块配置文件│ │ ├─common.php 模块函数文件│ │ ├─controller 控制器目录│ │ ├─model 模型目录│ │ ├─view 视图目录│ │ └─ ... 更多类库目录│ ├─command.php 命令行工具配置文件│ ├─common.php 应用公共(函数)文件│ ├─config.php 应用(公共)配置文件│ ├─database.php 数据库配置文件│ ├─tags.php 应用行为扩展定义文件│ └─route.php 路由配置文件├─extend 扩展类库目录(可定义)├─public WEB 部署目录(对外访问目录)│ ├─static 静态资源存放目录(css,js,image)│ ├─index.php 应用入口文件│ ├─router.php 快速测试文件│ └─.htaccess 用于 apache 的重写├─runtime 应用的运行时目录(可写,可设置)├─vendor 第三方类库目录(Composer)├─thinkphp 框架系统目录│ ├─lang 语言包目录│ ├─library 框架核心类库目录│ │ ├─think Think 类库包目录│ │ └─traits 系统 Traits 目录│ ├─tpl 系统模板目录│ ├─.htaccess 用于 apache 的重写│ ├─.travis.yml CI 定义文件│ ├─base.php 基础定义文件│ ├─composer.json composer 定义文件│ ├─console.php 控制台入口文件│ ├─convention.php 惯例配置文件│ ├─helper.php 助手函数文件(可选)│ ├─LICENSE.txt 授权说明文件│ ├─phpunit.xml 单元测试配置文件│ ├─README.md README 文件│ └─start.php 框架引导文件├─build.php 自动生成定义文件(参考)├─composer.json composer 定义文件├─LICENSE.txt 授权说明文件├─README.md README 文件├─think 命令行入口文件
[php] phpStudy+XDebug配置
: @, E1 s1 s r5 m: }一、配置前说明:1、phpStudy集成了XDebug扩展,所以不用单独下载XDebug。
- `" L# n2 c: j p% B* b7 O4 n/ @# h2、打开XDebug扩展:其它选项菜单 > PHP扩展 > Xdebug 二、配置步骤:phpStudy当前版本:php5.5 修改php.ini文件:主要是phpstudy的这个配置
! X+ R7 p" r( R- ; 注释掉原配置! p$ C1 `# a" |) t) A) y
- ;[XDebug]
" G4 i) L0 t, s r0 f; m+ o* S* y6 b - ;xdebug.profiler_output_dir="D:\myworkVIP\phpstudy\tmp\xdebug"
) l5 X \1 }7 v7 \ - ;xdebug.trace_output_dir="D:\myworkVIP\phpstudy\tmp\xdebug"
- t% t' G9 B% i; G - ;zend_extension="D:\myworkVIP\phpstudy\php\php-5.5.38\ext\php_xdebug.dll"
: H4 \4 d6 [# I# V - ;zend_extension="D:\myworkVIP\phpstudybak\php\php-5.5.38\ext\php_xdebug.dll", T) V% X5 B: I; N+ t, {
- , }4 I* z8 l- [( i7 N
- ; 自定义XDebug
! p% X% F+ u; R- X2 H/ p6 G2 I - [XDebug]
1 P a- [! G( a7 x) M6 o) h$ Y - zend_extension="D:\myworkVIP\phpstudy\php\php-5.5.38\ext\php_xdebug.dll"
1 J# ?7 t9 K- [% Z8 V - ;是否允许Xdebug跟踪函数调用,跟踪信息以文件形式存储,默认值为08 @2 q2 J& k! A: x: n9 x3 k/ G
- xdebug.auto_trace=1; \+ T6 c9 M8 n% M
- ;是否允许Xdebug跟踪函数参数,默认值为02 t0 F+ m5 d; |9 q: I
- xdebug.collect_params=1
+ u# C- I3 d' \4 p, ]0 p; V - ;是否允许Xdebug跟踪函数返回值,默认值为0
2 n9 @+ g2 M9 k% D; A+ Y - xdebug.collect_return=1
6 s5 X# C* y* |; {" }+ M4 B - ;函数调用跟踪信息输出文件目录,默认值为/tmp
# l6 V @+ g9 H6 @( e - xdebug.trace_output_dir ="D:\myworkVIP\phpstudy\tmp\xdebug"; ?6 \; [6 v% z$ ^4 c
- ;性能分析文件的存放位置,默认值为/tmp( p& _4 o% X) S* }
- xdebug.profiler_output_dir ="D:\myworkVIP\phpstudy\tmp\xdebug"; O6 q& |) C* Q& B ?# y/ A* U
- ;打开xdebug的性能分析器,以文件形式存储,这项配置是不能以ini_set()函数配置的,默认值为0) `- l+ E3 ^( Q6 |
- xdebug.profiler_enable = 1
( d+ ^/ e- Y7 T, g, s - ;性能分析文件的命名规则,默认值为cachegrind.out.%p
( x; @9 I0 J( o Y: m9 s; G) D! e0 V - xdebug.profiler_output_name = "cachegrind.out.%t.%p") p% I6 _8 ?( l, O, D. m- H8 E
- xdebug.remote_enable = 1% e2 K" d; n* I7 P& W0 K( W7 V k
- ;用于zend studio远程调试的应用层通信协议
; q% E) Z& m+ W( N% C3 g p - xdebug.remote_handler = "dbgp"; ^- t( L# t: q$ ^7 j/ V. N; o% H
- xdebug.idekey = PHPSTORM
9 S6 \3 h' T1 \ F4 T5 l - xdebug.remote_host = "127.0.0.1"
+ i$ y. Q- W: `8 _) m P - xdebug.remote_port = 9000
复制代码兼容性隐藏index.php <IfModule mod_rewrite.c>
X7 f. f9 |4 ]8 m$ D0 nOptions +FollowSymlinks
* N6 N4 O6 w* z# XRewriteEngine On) o* s9 {$ m4 B4 b7 R
RewriteCond %{REQUEST_FILENAME} !-d4 _% [- d, K. e! g6 {% c
RewriteCond %{REQUEST_FILENAME} !-f
1 C0 _; c* v, K' MRewriteRule ^(.*)$ index.php [L,QSA,E=PATH_INFO 1]+ X" L. p% m9 R! O- @, q h2 a
RewriteCond %{SCRIPT_FILENAME} \.php [NC]* d" W. o! m/ h3 B/ t8 q: j/ R% U
4 B; `" o: d* U8 j5 L/ T; bRewriteCond % !^$
7 ^/ G! C9 w$ G6 f# ^RewriteRule ^/?application/.*\.php - [F]4 U: J7 Q, r5 n
RewriteRule ^/?backup/.*\.php - [F]* u1 i* c) d8 a' u' w$ S
#RewriteRule ^/?install/.*\.php - [F]! F" f( M S. Q" f
RewriteRule ^/?miniapp/.*\.php - [F]
/ w* T+ y3 Z9 P# J- QRewriteRule ^/?runtime/.*\.php - [F]. s6 d6 C6 F( E2 g3 L
RewriteRule ^/?template/.*\.php - [F]1 b" O& U) G8 l l% `3 D/ J
RewriteRule ^/?vendor/.*\.php - [F]
3 J% t( h$ t+ o( N</IfModule>
6 L' G! | V# U; p% C" J2 \/ t% f! y7 P) t. E
Thinkphp5的路由模式Route::rule('路由表达式','路由地址','请求类型','路由参数(数组)','变量规则(数组)');use think\Route;
; e% g8 W9 g; F. @Route::rule('hello','sample/test/hello');Route::rule('hello','sample/test/hello','GET|POST',['https'=>true]);Route::get('hello','sample/test/hello');Route::any('hello','sample/test/hello');Route::post('hello','sample/test/hello');Route::delete('hello','sample/test/hello');Route::put('hello','sample/test/hello');Route::get('hello/:id','sample/test/hello'); ThinkPHP5的验证层 独立验证 //需要验证的数据
% k: r9 [- A! ?$ U# G) a; V$data=['name'=>'vendor',
# ?1 v! [- c# s4 r6 G; s% K 'email'=>'vendor.com'];$ U1 S1 e# _) W- d% T% f
//验证规则
+ l3 o2 i* k3 |. @/ F% k5 m) }$validate=new Validate(['name'=>'require|max:3',9 Q0 F; J5 G5 E+ L. n8 m
'email'=>'email']);. P- j' h& `" |2 O+ k: ]
//进行验证:check 批量验证:batch
+ T6 i: R5 S5 ~3 H* N! m$result=$validate->batch()->check($data);
* X1 b" q$ d2 q0 W3 p' k& v( ivar_dump($validate->getError());
0 k2 d5 |4 j1 `/ c! P3 o' A+ ^& [ A9 g7 q* k
' t D2 ]" e& ~$ t( Y
|