了解thinkphp或者thinkcmf的都知道,就是mvc,只是thinkcmf5.1门户版,我觉得封装路径做了不少改动,目录结构如下: ![](https://img.kancloud.cn/84/64/84646c651919cda705e5245f880addec_718x640.png) 其中api目录就是自己可以扩展的目录,自带的已经包括文章部分的接口,比如文章分类、列表、详情等。 需要注意的是vendor目录, ![](https://img.kancloud.cn/55/2c/552c78c7a5143b379086ac82be03f5c9_1291x126.png) thinkcmf目录下又是这样的: ![](https://img.kancloud.cn/ed/79/ed795de617128d82acf5effa66455ef5_691x130.png) 讲真,我是有些懵逼的,架构有点让人摸不着头脑。cmf-api里面主要包括了微信登录的接口、用户信息的接口等,这些是通用的,如果你的应用需要这个接口,可以直接调用。cmf-extend但是不用管,你自己写接口就统一放到根目录下api目录里,分模块,注意命名空间。 以/cmf-api/src/wxapp/controller下的 PublicController.php来说,这个就是小程序登录的后台接口,小程序端获取用户信息后,会访问这个接口,来向微信后台提交,换区openId和sessionKey等私密信息,并把用户信息写入服务器数据表,记录登录信息,返回token,判断用户登录状态。 ![](https://img.kancloud.cn/41/d3/41d3cf2db8f88894158de578f30380c4_851x884.png) 与之对应的,小程序端登录时就要请求这个接口: ![](https://img.kancloud.cn/21/7a/217aa5caf94879ad918e3f5d5be13bc0_1065x841.png)