目标:对新商场项目代码全面检测,报漏低质量代码,提供优化思路。让项目代码更干净漂亮,流畅整洁`
前提:商城项目采用了phalcon框架开发,在这个基础上(时间紧迫的情况下)我封装了一些项目常用基础服务:全局Application,Service注册,文件日志服务Logger,事件监听器,钩子函数(前置后置),身份检查等...
这些代码虽然原则上是参照PSR2规范下开发的(可能不完全是)。而业务代码在我们的基础框架之上搭建,开发人员各自有各自的习惯与思路,代码风格上迥异,可能存在大量不符合规范的代码实现方式,需要把问题明确化,并优化实现。
服务部署:
1.docker
2.镜像
3.服务扩展
4.检测器
5.错误总结
服务使用:
1.项目配置文件
2.忽略检测目录
3.可用环境:
4.开始检测
5.查看报告
6.优化&完成
使用公共Sonar服务
- 服务地址:http://oom.sonar.com:8888/project
- 服务账号密码:dyshop/dyshop
- 检测项目:doing_shop(可自定义使用)
本地检测环境搭建:
- 检测服务:sonar-runner / sonar-scanner
- 安装文档:https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner
- 安装文件:超过了50M,无法上传(上面安装地址不能下载的企业微信分享)
- 检测工具配置文件:> sonar-runner
conf/sonar-project.properties
#Configure here general information about the environment, such as SonarQube DB details for example
#No information about specific project should appear here
#----- Default SonarQube server
sonar.host.url=http://oom-cc.com:9823
#----- PostgreSQL
sonar.jdbc.url=jdbc:postgresql://oom-cc.com:5432/sonar
#----- MySQL
#sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8
#----- Oracle
#sonar.jdbc.url=jdbc:oracle:thin:@localhost/XE
#----- Microsoft SQLServer
#sonar.jdbc.url=jdbc:jtds:sqlserver://localhost/sonar;SelectMethod=Cursor
#----- Global database settings
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
#----- Default source code encoding
sonar.sourceEncoding=UTF-8
#----- Security (when 'sonar.forceAuthentication' is set to 'true')
sonar.login=admin
sonar.password=admin
- 需要环境:jdk1.10(可以使用docker)
- 项目配置文件:
sonar.projectKey=doing_shop
sonar.projectName=doing_shop
sonar.projectVersion=1.0.0
sonar.sourceEncoding=UTF-8
sonar.sources=.
sonar.language=php
docker-compose.yml
version: '3' services:
mydb:
image: postgres
volumes:
- ./data:/var/lib/postgresql/data
environment:
POSTGRES_USER: sonar
POSTGRES_DB: sonar
POSTGRES_PASSWORD: sonar
ports:
- "5433:5432" restart:
always
sonarqube:
image: sonarqube
environment:
sonar.jdbc.username: sonar
sonar.jdbc.password: sonar
sonar.jdbc.url: jdbc:postgresql://mydb:5432/sonar
ports:
- "9823:9000" volumes:
- .sonar:/home/sonarqube/.sonar
- ./scaner:/opt/sonarqube/scanner
2019.06.21补充
-
本地部署使用正常,线上服务搭建成功但是无法使用的问题,排查到Sonar版本更新了,但是pgsql服务又指定版本了。所以大家记得docker服务最好指定镜像版本