最近工作中需要完成一个评论的功能,上网查找了几个评论系统的展示样式。最后参考“多说”和“畅言”等评论系统,自己使用PHP语言实现了一个简单的评论系统。...具体实现方案如下(在ThinkPHP框架上实现): 1、递归方式 优点:实现代码简单,而且如果评论的层级固定在5个层次一下的话,建议使用该种方法,这样前端通过这种数据结果实现简单。...缺点:如果评论的层级没有固定的话,前端将无法展示评论信息了,而且如果层级太多的话,将会极大的消耗内存,更要命的是每次递归都得查询数据库,性能将大大的降低。.../** * @param $arc_id 文章id * @param int $comm_id 评论id * @param array $result * @return array */...可以实现n层级的评论,前端也能很好的展示 缺点:代码稍微复杂,对于固定的层级评论,前端展示评论较为复杂。
最后,这个评论是关联到某篇文章(Post)的,由于一个评论只能属于一篇文章,一篇文章可以有多个评论,是一对多的关系,因此这里我们使用了 ForeignKey。...为了便于理解,我们可以把表单和前面讲过的 Django ORM 系统做类比。...回想一下,我们使用数据库保存我们创建的博客文章,但是我们从头到尾没有写过任何和数据库有关的代码(要知道数据库自身也有一门数据库语言),这是因为 Django 的 ORM 系统内部帮我们做了一些事情。...,因为后面需要把评论和被评论的文章关联起来。...{% endfor %} 接下来尝试在详情页下的评论表单提交一些评论数据,可以看到详情页的评论列表处渲染了你提交的评论数据。
Valine 是一款基于 Leancloud 的极简评论系统,作者为 xCss。...// [v1.0.7 new]留言框占位提示文字 }); 评论数据管理 关于评论数据管理,请自行登录 Leancloud 应用管理
本文为系列文章的第三篇,第一、二篇地址是 The Clean Architecture in PHP 读书笔记(一) The Clean Architecture in PHP 读书笔记(二) The...Clean Architecture in PHP 读书笔记(三) 本篇介绍5大设计原则SOLID: Single Responsibility Principle Open/Closed Principle...最后推荐下介绍SOLID的非常好的书:Laravel - 从百草园到三味书屋 "From Apprentice To Artisan"目录 这是The Clean Architecture in PHP
本文为系列文章的第四篇,前3篇地址是 The Clean Architecture in PHP 读书笔记(一) The Clean Architecture in PHP 读书笔记(二) The Clean...Architecture in PHP 读书笔记(三) The Clean Architecture in PHP 读书笔记(四) 到目前为止,我们在面向对象中遇到的最坏的code是:直接在一个类中实例化出另一个类...这是The Clean Architecture in PHP的第四篇,你的鼓励是我继续写下去的动力,期待我们共同进步。
本文为系列文章的第五篇,前4篇地址是 The Clean Architecture in PHP 读书笔记(一) The Clean Architecture in PHP 读书笔记(二) The Clean...Architecture in PHP 读书笔记(三) The Clean Architecture in PHP 读书笔记(四) The Clean Architecture in PHP 读书笔记...下面先介绍PHP中的接口。...读书笔记(二)中介绍的; 第二个SOLID设计模式是在The Clean Architecture in PHP 读书笔记(三)中介绍, 第三个依赖注入则是在The Clean Architecture...in PHP 读书笔记(四)中介绍, 第四和五在本文中介绍了。
简单模仿了一个评论模板,当然肯定是没有博客的 valine 这么强大的 hhhh, PHP 表单安全性的重要提示 $_SERVER["PHP_SELF"]变量能够被黑客利用!...php echo htmlspecialchars($_SERVER['PHP_SELF']);?...php echo $name;?>"> * "> * 评论:<?php echo $comment;?
需求分析评论系统是互联网社区网站的重要组成部分,对增强用户参与度、提高网站活跃度等方面都具有重要价值。...一个简易的评论系统(在线社区平台)通常包含以下功能用户评论:用户可以对某个产品、主题进行评论,包括文字评论。评论展示:所有用户的评论将会在产品或服务页面下方展示,其他用户可以查看。...评论的展示有多种组织方式,参考《评论系统的几种展示结构和存储设计》,本文主要针对常见的二级嵌套评论的组织形式。评论回复:用户可以对其他用户的评论进行回复,形成互动。...评论审核:为了防止恶意评论或者垃圾信息,系统需要有审核机制,对用户的评论进行审核。评论排序:用户可以根据时间、评分等因素对评论进行排序。...评论系统中最核心的实体。模块设计简易评论系统设计 Comment-BFF: BFF层,用于接收和处理来自C端用户的请求(包括读、写评论),并返回结果。
1 2 3 4 5 6 yarn docs:dev # 或者:npm run docs:dev 当然这对于大多数人来说都是很简单的问题,自vuepress公开以后,有太多筒子想要vuepress添加评论系统...# 选择一个第三方评论系统 gitment 来必立 Valine 前两者都是有厚实的长城,所以我建议各位就别想了,虽然有搭建过的blog。如果有想了解的请看VuePress 集成第三方评论模块 。...使用其他方法更新评论组件 或者使用其他较为好用的评论组件 * 2. 添加categories and tag * 3....加入以上代码即可完成真个评论系统,然后 yarn dev即可看到效果! # 我的开源项目地址 vuepress-blog 欢迎star!mmm 我的blog
需求分析 评论系统是互联网社区网站的重要组成部分,对增强用户参与度、提高网站活跃度等方面都具有重要价值。...一个简易的评论系统(在线社区平台)通常包含以下功能 用户评论:用户可以对某个产品、主题进行评论,包括文字评论。 评论展示:所有用户的评论将会在产品或服务页面下方展示,其他用户可以查看。...评论的展示有多种组织方式,参考《评论系统的几种展示结构和存储设计》,本文主要针对常见的二级嵌套评论的组织形式。 评论回复:用户可以对其他用户的评论进行回复,形成互动。...评论审核:为了防止恶意评论或者垃圾信息,系统需要有审核机制,对用户的评论进行审核。 评论排序:用户可以根据时间、评分等因素对评论进行排序。...NULL,因为我们的评论系统是二级嵌套结构,因此被回复的评论和当前评论在组织形式上是同级的,而非父子结构。
对象柄 PHP5最好的特性就是采用句柄来定义类 单体测试框架的代表有PHPUnits和SimpleTest 重构,简单点说是重命名一个属性或者方法,复杂点说是压缩一个已有的类。...UML涉及到很多方面,但对PHP程序员来说,其中最相关的两方面是类图和序列图。 序列图描述了为一个特定的任务或者事件,你对代码中的对象之间的典型的交互活动。...phpDocumentor(http://phpdocu.sf.net),为你的PHP项目自动生成的应用程序接口(API)文档。
首先打开 functions.php 文件,粘贴下面的代码 // 获取浏览器信息 function getBrowser($agent) { if (preg_match('/MSIE\s([^\s...[1]); $outputer = 'Safari'; } else{ $outputer = 'Google Chrome'; } echo $outputer; } // 获取操作系统信息...{ $os = 'Android · '; } else { $os = 'Linux · '; } echo $os; } comments.php...中找到合适位置(比如评论作者的后面)添加以下代码 agent); ?>agent); ?>
评测指标 协同过滤 隐语义模型 基于图的模型
下文介绍我引入Valine评论系统的全过程: 首先请保证你的butterfly主题的版本比较新,截止到22/03/24,官方已经更新到了4.1.0 安装Valine系统 遵循Valine的指示,配置好...LeanCloud->数据存储->结构化数据->Comment里面 如果更改了posts的路径,需要修改对应数据的url参数,否则评论会消失 对用户添加标签“博主/好友/访客” 打开valine.pug...安装butterfly系统时如果是npm安装,则文件位置在node_modules/hexo-theme-butterfly/layout/includes/third-party/comments/valine.pug...blueimp_md5: valine: https://cdn.jsdelivr.net/gh/tzy13755126023/BLOG_SOURCE/valine_f/valine.min.js Valine获取评论失败...domain name users, overseas version will be automatically detected (no need to manually fill in) 无法评论
通过各种高科技功能同步到Hajeekn 的博客 本文基于@CCKNBC的日志@Waline 官方文档和博主自己部署时的实际情况编写 如果需要最详细的配置请前往 @Waline 官方文档 评论系统特性 快速...[x] 评论删除 [x] 其它数据库支持 [x] 基于 IP 的发布评论频率限制 [x] 基于关键词的评论过滤限制 [x] IP 黑名单 [x] 重复内容检测 [x] CloudBase 腾讯云开发部署支持...[x] 社交登录 [ ] AWS, GCP, Azure 部署支持 [ ] 置顶评论 [ ] 评论赞踩 如果您要获得来自 Waline 群友或公子大佬的支持,可以在Github Discussions...上手 博主采用 Butterfly 主题,已经内置 Waline 评论系统 Vercel + LeanCloud 博主就使用了这种方式(毕竟能白嫖谁还要花钱啊?...中获得的 APPID APPKEY MasterKey 获取方法: 进入 LeanCloud 这边用国际版演示 进入选择 Console 如果没有创建一个应用 注意 ⚠: 如果您之前用了 Valine 评论系统
框架无关(Independent of Frameworks) PHP社区现在异常的活跃,各种框架层出不穷,Laravel,Silex等,没准昨天还流行的框架,今天就又出了一个更好的,因此如果你将自己的核心逻辑绑定到某个框架上...但是内层却不依赖于外层,通过一个图来认识下: Onion Architecture 传统的应用开发中,应用是以数据库为中心设计的,先确定数据库中每个表的结构,然后应用在基于数据进行设计,如果将其剥离出来,整个系统变的支零破碎...这是The Clean Architecture in PHP的第七篇,你的鼓励是我继续写下去的动力,期待我们共同进步。
本文为系列文章的第九篇,完成的目录请查看Clean Architecture 计费系统 应用的uml简图如下: ? uml 应用的核心逻辑是:用户会有多个订单,然后固定周期对账单进行结算。...逻辑非常简单,可以让我们更专注于系统的架构上,那就让我们开始系统的构建吧。...领域模型层只包含简单的php class,此处只有3个Customer,Order,Invoice。我们先来构建我们的项目。...首先通过composer来包含库 $ composer require --dev peridot-php/peridot peridot-php/leo peridot-php/peridot-prophecy-plugin...这是The Clean Architecture in PHP的第九篇,你的鼓励是我继续写下去的动力,期待我们共同进步。
今天我们来读这本书是兄弟连出版社出版的《细说PHP》,买它的原因是,我的PHP是跟着网上视频自学的。 后来第一份工作是使用早些年流行的PHPCMS开发。...正式因为这些cms系统的出现,再加上php语言本身易学易入门的特点,使得好多php程序员并没有系统的学习PHP语言,当然那些说通读PHP手册的人除外,显然也没有几个人去通读php手册。...后来我准备买本书来学习PHP,关于php的技术书籍远远没有java多,但也有不少,仔细挑选后,这本《细说PHP》是比较适合的。...《细说PHP》这本书目录所示一共有17章节,最后加一附录。我们来分析这目录里面哪些内容需要看,哪些内容可以略过。...第四章可以粗看,对于一个php程序员来说,前端切图工作是必备的技能,但是关于前端专业性的东西还是需要了解相关前端书籍。
使用过很多自带的评论系统,太慢太慢,为了网站的访问速度,我一度关闭了评论功能,现在有了更好的方式,那就是私有部署!!!!
在更换主题后的这一段时间里,博客运行良好,内容我也在不断完善,评论自然是继承原来的 Valine 也运行正常,但是,其实从上个主题开始,我就没有配置邮件的评论系统,所以对于评论的查看,我一直都是登陆 LeanCloud...给评论者通知的邮件模板 MAIL_SUBJECT 邮件标题,注意措辞; MAIL_TEMPLATE 邮件正文,需要美化! 不同于站长的通知邮件,这是给评论者看的,必须花里胡哨,这是面子工程!...变量填写完毕后部署 [20200325230147.png] 完成之后的问题 以上全部完成,基本可以实现比较友善的评论系统,但仍然存在一个大问题: LeanCloud 的强制休眠!...该休眠会导致有很大概率用户在评论时实例是休眠状态,从而导致邮件提醒的不可触发,即以上整个邮件系统并不是 100% 可用,迫切需要一种比较好的休眠策略。...用户通知 14 MAIL_TEMPLATE 详见第六段代码 用户通知 15 AKISMET_KEY 4b02d0d***** 评论过滤 16
领取专属 10元无门槛券
手把手带您无忧上云