ThinkCMF 产品开发小结 路由route 模板 nginx ssl 数据库

1 路由重点,默认是混合模式 pathinfo开启 需要使用$this->request->param(“传参”)

2.data目录下config中route.php 是最核心路由 可以存放return配置,应用路由即在当天目录下创建app.php

3.当前网址 {$Request.scheme}://{$Request.host}/

data/config/route.php 【一般产品前端采用强制模式(前端模板必须使用url函数产生链接)】

<?php
use think\facade\Route;

return [
    // 关闭自动路由(核心:禁止通过 模块/控制器/方法 直接访问)
    'auto_route'          => false,
    // 关闭控制器后缀(可选,根据你的代码规范调整)
    'controller_suffix'   => false,
    // 关闭URL路由匹配的大小写转换(可选,增强严格性)
    'url_convert'         => false,
    // 关闭默认的路由延迟解析(确保路由规则优先生效)
    'delay_route'         => false,
];

data/config/app.php 可以存放前端模板中的路由【可以防止出问题】

<?php
use think\facade\Route;


Route::get('/func/set', 'demo/user/get_show');
Route::get('/func/gp', 'demo/user/list');

#配置
Route::get('/func/save', 'myapp/user/show_done');
Route::get('/func/del', 'myapp/user/del');
Route::get('/func/add', 'myapp/user/add_gupiao');

Route::get('/login', 'user/login/index');
Route::get('/register', 'user/register/index');
Route::get('/password', 'user/login/findPassword');
Route::get('/logout', 'user/index/logout');



Route::get('/repassword', 'user/profile/password');
Route::get('/edit', 'user/profile/edit');
Route::get('/avatar', 'user/profile/avatar');




Route::get('/rss', 'myapp/gu/index');
Route::get('/weather', 'myapp/gu/weather');

#上面路由模式
#下面路由 指定主页 创建短链

Route::rule('/', 'demo/index/index', 'GET')->name('home');
Route::rule('s/:short', 'myapp/gu/short', 'GET')->pattern(['short' => '\w+']);

后台路由没有关系 ,后台用于编辑,可以使用后台加密,双密码,相对好一点,或者直接不用后台,使用另一个网址应用连接数据库实现隔离。

模板

 <include file=”public@head” /> 在模板里面可以引入多个HTML上面的是在应用目录的public/head.html文件,比如你的应用是demo(default/demo/下面),那么这个就是在 default/public/head.html 非应用下的public(不是 default/demo/public)

Nginx SSL

使用lnmp ssl add添加SSL 用自动签注的SSL需要修改nginx的conf

原来的Nginx添加(其中root /home/wwwroot/xxx.com; 不是thinkphp的public 切记)

location ^~ /.well-known/acme-challenge/ {
	    allow all;
	    default_type text/plain;
	    root /home/wwwroot/xxx.com;
	}

然后再:
lnmp restart
lnmp ssl add

然后完成后SSL后请设置,SSL的端口(其中root /home/wwwroot/xxx.com; 请修改成thinkphp的root /home/wwwroot/xxx.com/public; 不然ssl无法访问)

server
    {
        listen 443 ssl http2;
        #listen [::]:443 ssl http2;
        server_name acg.wang ;
        index index.html index.htm index.php default.html default.htm default.php;
        root  /home/wwwroot/xxx.com/public;

最后 lnmp restart

数据库

数据库关联单条数据超过3000 条数据 可能会触发PHP memory错误直接502 默认PHP是128MB,如果实在有多个3000条数据关联排序请调整到256MB或者512MB,但是还是请不要关联超过3000条数据再排序。如下面的代码是有问题的:

    public function codehistroy(){
         return $this->hasOne(HistroyModel::class,"code",'code')->order('create_time','desc');
     }
#此处模型 关联排序会极大消耗PHP内存

在功能Model,即非创建关联表的模型(内部调用表的模型)直接初始化!
class Xaa{ 无需 class Xaa extends Model{

此条目发表在None分类目录。将固定链接加入收藏夹。

发表回复