Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
张文彪
/
employmentBusinessPc
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
658d83d6
authored
Nov 26, 2025
by
zwb
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
招聘会演示平台搭建与简历导入
parent
acd35aec
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
333 additions
and
0 deletions
employmentBusiness-pc-auth/src/main/java/com/bkty/form/PasswordLoginBody.java
employmentBusiness-pc-auth/src/main/java/com/bkty/service/impl/PasswordAuthStrategy.java
employmentBusiness-pc-common/employmentBusiness-pc-common-core/src/main/java/org/dromara/common/core/config/Page.java
employmentBusiness-pc-common/employmentBusiness-pc-common-mybatis/src/main/java/org/dromara/common/mybatis/core/page/PageQuery.java
employmentBusiness-pc-common/employmentBusiness-pc-common-mybatis/src/main/java/org/dromara/common/mybatis/handler/PlusDataPermissionHandler.java
employmentBusiness-pc-common/employmentBusiness-pc-common-satoken/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
employmentBusiness-pc-common/employmentBusiness-pc-common-security/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
employmentBusiness-pc-common/employmentBusiness-pc-common-translation/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
employmentBusiness-pc-common/employmentBusiness-pc-common-web/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
employmentBusiness-pc-modules/employmentBusiness-pc-system/src/main/resources/mapper/package-info.md
employmentBusiness-pc-nacos/src/main/resources/static/console-ui/public/js/vs/basic-languages/src/php.js
employmentBusiness-pc-auth/src/main/java/com/bkty/form/PasswordLoginBody.java
0 → 100644
View file @
658d83d6
package
com
.
bkty
.
form
;
import
jakarta.validation.constraints.NotBlank
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
org.dromara.common.core.domain.model.LoginBody
;
import
org.hibernate.validator.constraints.Length
;
import
static
org
.
dromara
.
common
.
core
.
constant
.
UserConstants
.*;
/**
* 密码登录对象
*
* @author Lion Li
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
public
class
PasswordLoginBody
extends
LoginBody
{
/**
* 用户名
*/
@NotBlank
(
message
=
"{user.username.not.blank}"
)
@Length
(
min
=
USERNAME_MIN_LENGTH
,
max
=
USERNAME_MAX_LENGTH
,
message
=
"{user.username.length.valid}"
)
private
String
username
;
/**
* 用户密码
*/
@NotBlank
(
message
=
"{user.password.not.blank}"
)
@Length
(
min
=
PASSWORD_MIN_LENGTH
,
max
=
PASSWORD_MAX_LENGTH
,
message
=
"{user.password.length.valid}"
)
private
String
password
;
}
employmentBusiness-pc-auth/src/main/java/com/bkty/service/impl/PasswordAuthStrategy.java
0 → 100644
View file @
658d83d6
package
com
.
bkty
.
service
.
impl
;
import
cn.dev33.satoken.secure.BCrypt
;
import
cn.dev33.satoken.stp.SaLoginModel
;
import
cn.dev33.satoken.stp.StpUtil
;
import
com.bkty.domain.vo.LoginVo
;
import
com.bkty.form.PasswordLoginBody
;
import
com.bkty.properties.CaptchaProperties
;
import
com.bkty.service.IAuthStrategy
;
import
com.bkty.service.SysLoginService
;
import
com.bkty.system.api.RemoteUserService
;
import
com.bkty.system.api.model.LoginUser
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.dubbo.config.annotation.DubboReference
;
import
org.dromara.common.core.constant.Constants
;
import
org.dromara.common.core.constant.GlobalConstants
;
import
org.dromara.common.core.enums.LoginType
;
import
org.dromara.common.core.exception.user.CaptchaException
;
import
org.dromara.common.core.exception.user.CaptchaExpireException
;
import
org.dromara.common.core.utils.MessageUtils
;
import
org.dromara.common.core.utils.StringUtils
;
import
org.dromara.common.core.utils.ValidatorUtils
;
import
org.dromara.common.json.utils.JsonUtils
;
import
org.dromara.common.redis.utils.RedisUtils
;
import
org.dromara.common.satoken.utils.LoginHelper
;
import
org.springframework.stereotype.Service
;
/**
* 密码认证策略
*
* @author Michelle.Chung
*/
@Slf4j
@Service
(
"password"
+
IAuthStrategy
.
BASE_NAME
)
@RequiredArgsConstructor
public
class
PasswordAuthStrategy
implements
IAuthStrategy
{
private
final
CaptchaProperties
captchaProperties
;
private
final
SysLoginService
loginService
;
@DubboReference
private
RemoteUserService
remoteUserService
;
@Override
public
LoginVo
login
(
String
body
)
{
PasswordLoginBody
loginBody
=
JsonUtils
.
parseObject
(
body
,
PasswordLoginBody
.
class
);
ValidatorUtils
.
validate
(
loginBody
);
String
username
=
loginBody
.
getUsername
();
String
password
=
loginBody
.
getPassword
();
String
code
=
loginBody
.
getCode
();
String
uuid
=
loginBody
.
getUuid
();
// 验证码开关
if
(
captchaProperties
.
getEnabled
())
{
validateCaptcha
(
username
,
code
,
uuid
);
}
LoginUser
loginUser
=
remoteUserService
.
getUserInfo
(
username
);
loginService
.
checkLogin
(
LoginType
.
PASSWORD
,
username
,
()
->
!
BCrypt
.
checkpw
(
password
,
loginUser
.
getPassword
()));
SaLoginModel
model
=
new
SaLoginModel
();
model
.
setTimeout
(
604800
);
// 7天有效
model
.
setActiveTimeout
(
1800
);
// 半小时不活动自动下线
// 生成token
LoginHelper
.
login
(
loginUser
,
model
);
LoginVo
loginVo
=
new
LoginVo
();
loginVo
.
setAccessToken
(
StpUtil
.
getTokenValue
());
loginVo
.
setExpireIn
(
StpUtil
.
getTokenTimeout
());
return
loginVo
;
}
/**
* 校验验证码
*
* @param username 用户名
* @param code 验证码
* @param uuid 唯一标识
*/
private
void
validateCaptcha
(
String
username
,
String
code
,
String
uuid
)
{
String
verifyKey
=
GlobalConstants
.
CAPTCHA_CODE_KEY
+
StringUtils
.
blankToDefault
(
uuid
,
""
);
String
captcha
=
RedisUtils
.
getCacheObject
(
verifyKey
);
RedisUtils
.
deleteObject
(
verifyKey
);
if
(
captcha
==
null
)
{
//loginService.recordLogininfor(tenantId, username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.expire"));
throw
new
CaptchaExpireException
();
}
if
(!
code
.
equalsIgnoreCase
(
captcha
))
{
//loginService.recordLogininfor(tenantId, username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.error"));
throw
new
CaptchaException
();
}
}
}
employmentBusiness-pc-common/employmentBusiness-pc-common-core/src/main/java/org/dromara/common/core/config/Page.java
0 → 100644
View file @
658d83d6
package
org
.
dromara
.
common
.
core
.
config
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
/**
* @author Herbert
*/
//@Schema
@Data
public
class
Page
{
public
Page
()
{
this
(
1
,
-
1
);
}
public
Page
(
long
current
,
long
size
)
{
this
.
current
=
current
;
this
.
size
=
size
;
}
/**
* 每页显示条数,默认 10
*/
@Schema
(
description
=
"每页显示条数,默认 10"
)
private
long
size
;
/**
* 当前页
*/
@Schema
(
description
=
"当前页"
)
private
long
current
;
@Schema
(
hidden
=
true
)
private
long
start
;
public
long
getStart
()
{
return
size
*
(
current
-
1
)
+
1
;
}
@Schema
(
hidden
=
true
)
private
long
end
;
public
long
getEnd
()
{
return
size
*
current
;
}
public
com
.
baomidou
.
mybatisplus
.
extension
.
plugins
.
pagination
.
Page
toPage
()
{
com
.
baomidou
.
mybatisplus
.
extension
.
plugins
.
pagination
.
Page
page
=
new
com
.
baomidou
.
mybatisplus
.
extension
.
plugins
.
pagination
.
Page
(
current
,
size
);
return
page
;
}
public
long
getStartRow
(){
return
this
.
getSize
()
*
(
this
.
getCurrent
()
-
1
);
}
}
employmentBusiness-pc-common/employmentBusiness-pc-common-mybatis/src/main/java/org/dromara/common/mybatis/core/page/PageQuery.java
0 → 100644
View file @
658d83d6
package
org
.
dromara
.
common
.
mybatis
.
core
.
page
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.baomidou.mybatisplus.core.metadata.OrderItem
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
org.dromara.common.core.exception.ServiceException
;
import
org.dromara.common.core.utils.StringUtils
;
import
org.dromara.common.core.utils.sql.SqlUtil
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* 分页查询实体类
*
* @author Lion Li
*/
@Data
@NoArgsConstructor
public
class
PageQuery
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
1L
;
/**
* 分页大小
*/
private
Integer
pageSize
;
/**
* 当前页数
*/
private
Integer
pageNum
;
/**
* 排序列
*/
private
String
orderByColumn
;
/**
* 排序的方向desc或者asc
*/
private
String
isAsc
;
/**
* 当前记录起始索引 默认值
*/
public
static
final
int
DEFAULT_PAGE_NUM
=
1
;
/**
* 每页显示记录数 默认值 默认查全部
*/
public
static
final
int
DEFAULT_PAGE_SIZE
=
Integer
.
MAX_VALUE
;
/**
* 构建分页对象
*/
public
<
T
>
Page
<
T
>
build
()
{
Integer
pageNum
=
ObjectUtil
.
defaultIfNull
(
getPageNum
(),
DEFAULT_PAGE_NUM
);
Integer
pageSize
=
ObjectUtil
.
defaultIfNull
(
getPageSize
(),
DEFAULT_PAGE_SIZE
);
if
(
pageNum
<=
0
)
{
pageNum
=
DEFAULT_PAGE_NUM
;
}
Page
<
T
>
page
=
new
Page
<>(
pageNum
,
pageSize
);
List
<
OrderItem
>
orderItems
=
buildOrderItem
();
if
(
CollUtil
.
isNotEmpty
(
orderItems
))
{
page
.
addOrder
(
orderItems
);
}
return
page
;
}
/**
* 构建排序
*
* 支持的用法如下:
* {isAsc:"asc",orderByColumn:"id"} order by id asc
* {isAsc:"asc",orderByColumn:"id,createTime"} order by id asc,create_time asc
* {isAsc:"desc",orderByColumn:"id,createTime"} order by id desc,create_time desc
* {isAsc:"asc,desc",orderByColumn:"id,createTime"} order by id asc,create_time desc
*/
private
List
<
OrderItem
>
buildOrderItem
()
{
if
(
StringUtils
.
isBlank
(
orderByColumn
)
||
StringUtils
.
isBlank
(
isAsc
))
{
return
null
;
}
String
orderBy
=
SqlUtil
.
escapeOrderBySql
(
orderByColumn
);
orderBy
=
StringUtils
.
toUnderScoreCase
(
orderBy
);
// 兼容前端排序类型
isAsc
=
StringUtils
.
replaceEach
(
isAsc
,
new
String
[]{
"ascending"
,
"descending"
},
new
String
[]{
"asc"
,
"desc"
});
String
[]
orderByArr
=
orderBy
.
split
(
StringUtils
.
SEPARATOR
);
String
[]
isAscArr
=
isAsc
.
split
(
StringUtils
.
SEPARATOR
);
if
(
isAscArr
.
length
!=
1
&&
isAscArr
.
length
!=
orderByArr
.
length
)
{
throw
new
ServiceException
(
"排序参数有误"
);
}
List
<
OrderItem
>
list
=
new
ArrayList
<>();
// 每个字段各自排序
for
(
int
i
=
0
;
i
<
orderByArr
.
length
;
i
++)
{
String
orderByStr
=
orderByArr
[
i
];
String
isAscStr
=
isAscArr
.
length
==
1
?
isAscArr
[
0
]
:
isAscArr
[
i
];
if
(
"asc"
.
equals
(
isAscStr
))
{
list
.
add
(
OrderItem
.
asc
(
orderByStr
));
}
else
if
(
"desc"
.
equals
(
isAscStr
))
{
list
.
add
(
OrderItem
.
desc
(
orderByStr
));
}
else
{
throw
new
ServiceException
(
"排序参数有误"
);
}
}
return
list
;
}
public
Integer
getFirstNum
()
{
if
(
pageNum
!=
null
&&
pageSize
!=
null
){
return
(
pageNum
-
1
)
*
pageSize
;
}
return
null
;
}
}
employmentBusiness-pc-common/employmentBusiness-pc-common-mybatis/src/main/java/org/dromara/common/mybatis/handler/PlusDataPermissionHandler.java
0 → 100644
View file @
658d83d6
This diff is collapsed.
Click to expand it.
employmentBusiness-pc-common/employmentBusiness-pc-common-satoken/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
0 → 100644
View file @
658d83d6
org.dromara.common.satoken.config.SaTokenConfiguration
employmentBusiness-pc-common/employmentBusiness-pc-common-security/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
0 → 100644
View file @
658d83d6
org.dromara.common.security.config.SecurityConfiguration
employmentBusiness-pc-common/employmentBusiness-pc-common-translation/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
0 → 100644
View file @
658d83d6
org.dromara.common.translation.config.TranslationConfig
org.dromara.common.translation.core.impl.DeptNameTranslationImpl
org.dromara.common.translation.core.impl.DictTypeTranslationImpl
org.dromara.common.translation.core.impl.OssUrlTranslationImpl
org.dromara.common.translation.core.impl.UserNameTranslationImpl
org.dromara.common.translation.core.impl.NicknameTranslationImpl
employmentBusiness-pc-common/employmentBusiness-pc-common-web/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
0 → 100644
View file @
658d83d6
org.dromara.common.web.config.FilterConfig
org.dromara.common.web.config.I18nConfig
org.dromara.common.web.config.UndertowConfig
org.dromara.common.web.config.ResourcesConfig
employmentBusiness-pc-modules/employmentBusiness-pc-system/src/main/resources/mapper/package-info.md
0 → 100644
View file @
658d83d6
java包使用
`.`
分割 resource 目录使用
`/`
分割
<br>
此文件目的 防止文件夹粘连找不到
`xml`
文件
\ No newline at end of file
employmentBusiness-pc-nacos/src/main/resources/static/console-ui/public/js/vs/basic-languages/src/php.js
0 → 100644
View file @
658d83d6
/*!-----------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* monaco-languages version: 0.9.0(e162b4ba29044167bc7181c42b3270fa8a467424)
* Released under the MIT license
* https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md
*-----------------------------------------------------------------------------*/
define
(
"vs/basic-languages/src/php"
,[
"require"
,
"exports"
],
function
(
e
,
t
){
"use strict"
;
Object
.
defineProperty
(
t
,
"__esModule"
,{
value
:
!
0
}),
t
.
conf
=
{
wordPattern
:
/
(
-
?\d
*
\.\d\w
*
)
|
([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]
+
)
/g
,
comments
:{
lineComment
:
"//"
,
blockComment
:[
"/*"
,
"*/"
]},
brackets
:[[
"{"
,
"}"
],[
"["
,
"]"
],[
"("
,
")"
]],
autoClosingPairs
:[{
open
:
"{"
,
close
:
"}"
,
notIn
:[
"string"
]},{
open
:
"["
,
close
:
"]"
,
notIn
:[
"string"
]},{
open
:
"("
,
close
:
")"
,
notIn
:[
"string"
]},{
open
:
'"'
,
close
:
'"'
,
notIn
:[
"string"
]},{
open
:
"'"
,
close
:
"'"
,
notIn
:[
"string"
,
"comment"
]}]},
t
.
language
=
{
defaultToken
:
""
,
tokenPostfix
:
""
,
tokenizer
:{
root
:[[
/<
\?((
php
)
|=
)?
/
,{
token
:
"@rematch"
,
switchTo
:
"@phpInSimpleState.root"
}],[
/<!DOCTYPE/
,
"metatag.html"
,
"@doctype"
],[
/<!--/
,
"comment.html"
,
"@comment"
],[
/
(
<
)(\w
+
)(\/
>
)
/
,[
"delimiter.html"
,
"tag.html"
,
"delimiter.html"
]],[
/
(
<
)(
script
)
/
,[
"delimiter.html"
,{
token
:
"tag.html"
,
next
:
"@script"
}]],[
/
(
<
)(
style
)
/
,[
"delimiter.html"
,{
token
:
"tag.html"
,
next
:
"@style"
}]],[
/
(
<
)([
:
\w]
+
)
/
,[
"delimiter.html"
,{
token
:
"tag.html"
,
next
:
"@otherTag"
}]],[
/
(
<
\/)(\w
+
)
/
,[
"delimiter.html"
,{
token
:
"tag.html"
,
next
:
"@otherTag"
}]],[
/</
,
"delimiter.html"
],[
/
[^
<
]
+/
]],
doctype
:[[
/<
\?((
php
)
|=
)?
/
,{
token
:
"@rematch"
,
switchTo
:
"@phpInSimpleState.comment"
}],[
/
[^
>
]
+/
,
"metatag.content.html"
],[
/>/
,
"metatag.html"
,
"@pop"
]],
comment
:[[
/<
\?((
php
)
|=
)?
/
,{
token
:
"@rematch"
,
switchTo
:
"@phpInSimpleState.comment"
}],[
/-->/
,
"comment.html"
,
"@pop"
],[
/
[^
-
]
+/
,
"comment.content.html"
],[
/./
,
"comment.content.html"
]],
otherTag
:[[
/<
\?((
php
)
|=
)?
/
,{
token
:
"@rematch"
,
switchTo
:
"@phpInSimpleState.otherTag"
}],[
/
\/?
>/
,
"delimiter.html"
,
"@pop"
],[
/"
([^
"
]
*
)
"/
,
"attribute.value"
],[
/'
([^
'
]
*
)
'/
,
"attribute.value"
],[
/
[\w\-]
+/
,
"attribute.name"
],[
/=/
,
"delimiter"
],[
/
[
\t\r\n]
+/
]],
script
:[[
/<
\?((
php
)
|=
)?
/
,{
token
:
"@rematch"
,
switchTo
:
"@phpInSimpleState.script"
}],[
/type/
,
"attribute.name"
,
"@scriptAfterType"
],[
/"
([^
"
]
*
)
"/
,
"attribute.value"
],[
/'
([^
'
]
*
)
'/
,
"attribute.value"
],[
/
[\w\-]
+/
,
"attribute.name"
],[
/=/
,
"delimiter"
],[
/>/
,{
token
:
"delimiter.html"
,
next
:
"@scriptEmbedded.text/javascript"
,
nextEmbedded
:
"text/javascript"
}],[
/
[
\t\r\n]
+/
],[
/
(
<
\/)(
script
\s
*
)(
>
)
/
,[
"delimiter.html"
,
"tag.html"
,{
token
:
"delimiter.html"
,
next
:
"@pop"
}]]],
scriptAfterType
:[[
/<
\?((
php
)
|=
)?
/
,{
token
:
"@rematch"
,
switchTo
:
"@phpInSimpleState.scriptAfterType"
}],[
/=/
,
"delimiter"
,
"@scriptAfterTypeEquals"
],[
/>/
,{
token
:
"delimiter.html"
,
next
:
"@scriptEmbedded.text/javascript"
,
nextEmbedded
:
"text/javascript"
}],[
/
[
\t\r\n]
+/
],[
/<
\/
script
\s
*>/
,{
token
:
"@rematch"
,
next
:
"@pop"
}]],
scriptAfterTypeEquals
:[[
/<
\?((
php
)
|=
)?
/
,{
token
:
"@rematch"
,
switchTo
:
"@phpInSimpleState.scriptAfterTypeEquals"
}],[
/"
([^
"
]
*
)
"/
,{
token
:
"attribute.value"
,
switchTo
:
"@scriptWithCustomType.$1"
}],[
/'
([^
'
]
*
)
'/
,{
token
:
"attribute.value"
,
switchTo
:
"@scriptWithCustomType.$1"
}],[
/>/
,{
token
:
"delimiter.html"
,
next
:
"@scriptEmbedded.text/javascript"
,
nextEmbedded
:
"text/javascript"
}],[
/
[
\t\r\n]
+/
],[
/<
\/
script
\s
*>/
,{
token
:
"@rematch"
,
next
:
"@pop"
}]],
scriptWithCustomType
:[[
/<
\?((
php
)
|=
)?
/
,{
token
:
"@rematch"
,
switchTo
:
"@phpInSimpleState.scriptWithCustomType.$S2"
}],[
/>/
,{
token
:
"delimiter.html"
,
next
:
"@scriptEmbedded.$S2"
,
nextEmbedded
:
"$S2"
}],[
/"
([^
"
]
*
)
"/
,
"attribute.value"
],[
/'
([^
'
]
*
)
'/
,
"attribute.value"
],[
/
[\w\-]
+/
,
"attribute.name"
],[
/=/
,
"delimiter"
],[
/
[
\t\r\n]
+/
],[
/<
\/
script
\s
*>/
,{
token
:
"@rematch"
,
next
:
"@pop"
}]],
scriptEmbedded
:[[
/<
\?((
php
)
|=
)?
/
,{
token
:
"@rematch"
,
switchTo
:
"@phpInEmbeddedState.scriptEmbedded.$S2"
,
nextEmbedded
:
"@pop"
}],[
/<
\/
script/
,{
token
:
"@rematch"
,
next
:
"@pop"
,
nextEmbedded
:
"@pop"
}]],
style
:[[
/<
\?((
php
)
|=
)?
/
,{
token
:
"@rematch"
,
switchTo
:
"@phpInSimpleState.style"
}],[
/type/
,
"attribute.name"
,
"@styleAfterType"
],[
/"
([^
"
]
*
)
"/
,
"attribute.value"
],[
/'
([^
'
]
*
)
'/
,
"attribute.value"
],[
/
[\w\-]
+/
,
"attribute.name"
],[
/=/
,
"delimiter"
],[
/>/
,{
token
:
"delimiter.html"
,
next
:
"@styleEmbedded.text/css"
,
nextEmbedded
:
"text/css"
}],[
/
[
\t\r\n]
+/
],[
/
(
<
\/)(
style
\s
*
)(
>
)
/
,[
"delimiter.html"
,
"tag.html"
,{
token
:
"delimiter.html"
,
next
:
"@pop"
}]]],
styleAfterType
:[[
/<
\?((
php
)
|=
)?
/
,{
token
:
"@rematch"
,
switchTo
:
"@phpInSimpleState.styleAfterType"
}],[
/=/
,
"delimiter"
,
"@styleAfterTypeEquals"
],[
/>/
,{
token
:
"delimiter.html"
,
next
:
"@styleEmbedded.text/css"
,
nextEmbedded
:
"text/css"
}],[
/
[
\t\r\n]
+/
],[
/<
\/
style
\s
*>/
,{
token
:
"@rematch"
,
next
:
"@pop"
}]],
styleAfterTypeEquals
:[[
/<
\?((
php
)
|=
)?
/
,{
token
:
"@rematch"
,
switchTo
:
"@phpInSimpleState.styleAfterTypeEquals"
}],[
/"
([^
"
]
*
)
"/
,{
token
:
"attribute.value"
,
switchTo
:
"@styleWithCustomType.$1"
}],[
/'
([^
'
]
*
)
'/
,{
token
:
"attribute.value"
,
switchTo
:
"@styleWithCustomType.$1"
}],[
/>/
,{
token
:
"delimiter.html"
,
next
:
"@styleEmbedded.text/css"
,
nextEmbedded
:
"text/css"
}],[
/
[
\t\r\n]
+/
],[
/<
\/
style
\s
*>/
,{
token
:
"@rematch"
,
next
:
"@pop"
}]],
styleWithCustomType
:[[
/<
\?((
php
)
|=
)?
/
,{
token
:
"@rematch"
,
switchTo
:
"@phpInSimpleState.styleWithCustomType.$S2"
}],[
/>/
,{
token
:
"delimiter.html"
,
next
:
"@styleEmbedded.$S2"
,
nextEmbedded
:
"$S2"
}],[
/"
([^
"
]
*
)
"/
,
"attribute.value"
],[
/'
([^
'
]
*
)
'/
,
"attribute.value"
],[
/
[\w\-]
+/
,
"attribute.name"
],[
/=/
,
"delimiter"
],[
/
[
\t\r\n]
+/
],[
/<
\/
style
\s
*>/
,{
token
:
"@rematch"
,
next
:
"@pop"
}]],
styleEmbedded
:[[
/<
\?((
php
)
|=
)?
/
,{
token
:
"@rematch"
,
switchTo
:
"@phpInEmbeddedState.styleEmbedded.$S2"
,
nextEmbedded
:
"@pop"
}],[
/<
\/
style/
,{
token
:
"@rematch"
,
next
:
"@pop"
,
nextEmbedded
:
"@pop"
}]],
phpInSimpleState
:[[
/<
\?((
php
)
|=
)?
/
,
"metatag.php"
],[
/
\?
>/
,{
token
:
"metatag.php"
,
switchTo
:
"@$S2.$S3"
}],{
include
:
"phpRoot"
}],
phpInEmbeddedState
:[[
/<
\?((
php
)
|=
)?
/
,
"metatag.php"
],[
/
\?
>/
,{
token
:
"metatag.php"
,
switchTo
:
"@$S2.$S3"
,
nextEmbedded
:
"$S3"
}],{
include
:
"phpRoot"
}],
phpRoot
:[[
/
[
a-zA-Z_
]\w
*/
,{
cases
:{
"@phpKeywords"
:{
token
:
"keyword.php"
},
"@phpCompileTimeConstants"
:{
token
:
"constant.php"
},
"@default"
:
"identifier.php"
}}],[
/
[
$a-zA-Z_
]\w
*/
,{
cases
:{
"@phpPreDefinedVariables"
:{
token
:
"variable.predefined.php"
},
"@default"
:
"variable.php"
}}],[
/
[
{}
]
/
,
"delimiter.bracket.php"
],[
/
[\[\]]
/
,
"delimiter.array.php"
],[
/
[
()
]
/
,
"delimiter.parenthesis.php"
],[
/
[
\t\r\n]
+/
],[
/#/
,
"comment.php"
,
"@phpLineComment"
],[
/
\/\/
/
,
"comment.php"
,
"@phpLineComment"
],[
/
\/\*
/
,
"comment.php"
,
"@phpComment"
],[
/"/
,
"string.php"
,
"@phpDoubleQuoteString"
],[
/'/
,
"string.php"
,
"@phpSingleQuoteString"
],[
/
[\+\-\*\%\&\|\^\~\!\=\<\>\/\?\;\:\.\,\@]
/
,
"delimiter.php"
],[
/
\d
*
\d
+
[
eE
]([\-
+
]?\d
+
)?
/
,
"number.float.php"
],[
/
\d
*
\.\d
+
([
eE
][\-
+
]?\d
+
)?
/
,
"number.float.php"
],[
/0
[
xX
][
0-9a-fA-F'
]
*
[
0-9a-fA-F
]
/
,
"number.hex.php"
],[
/0
[
0-7'
]
*
[
0-7
]
/
,
"number.octal.php"
],[
/0
[
bB
][
0-1'
]
*
[
0-1
]
/
,
"number.binary.php"
],[
/
\d[\d
'
]
*/
,
"number.php"
],[
/
\d
/
,
"number.php"
]],
phpComment
:[[
/
\*\/
/
,
"comment.php"
,
"@pop"
],[
/
[^
*
]
+/
,
"comment.php"
],[
/./
,
"comment.php"
]],
phpLineComment
:[[
/
\?
>/
,{
token
:
"@rematch"
,
next
:
"@pop"
}],[
/.$/
,
"comment.php"
,
"@pop"
],[
/
[^
?
]
+$/
,
"comment.php"
,
"@pop"
],[
/
[^
?
]
+/
,
"comment.php"
],[
/./
,
"comment.php"
]],
phpDoubleQuoteString
:[[
/
[^\\
"
]
+/
,
"string.php"
],[
/@escapes/
,
"string.escape.php"
],[
/
\\
./
,
"string.escape.invalid.php"
],[
/"/
,
"string.php"
,
"@pop"
]],
phpSingleQuoteString
:[[
/
[^\\
'
]
+/
,
"string.php"
],[
/@escapes/
,
"string.escape.php"
],[
/
\\
./
,
"string.escape.invalid.php"
],[
/'/
,
"string.php"
,
"@pop"
]]},
phpKeywords
:[
"abstract"
,
"and"
,
"array"
,
"as"
,
"break"
,
"callable"
,
"case"
,
"catch"
,
"cfunction"
,
"class"
,
"clone"
,
"const"
,
"continue"
,
"declare"
,
"default"
,
"do"
,
"else"
,
"elseif"
,
"enddeclare"
,
"endfor"
,
"endforeach"
,
"endif"
,
"endswitch"
,
"endwhile"
,
"extends"
,
"false"
,
"final"
,
"for"
,
"foreach"
,
"function"
,
"global"
,
"goto"
,
"if"
,
"implements"
,
"interface"
,
"instanceof"
,
"insteadof"
,
"namespace"
,
"new"
,
"null"
,
"object"
,
"old_function"
,
"or"
,
"private"
,
"protected"
,
"public"
,
"resource"
,
"static"
,
"switch"
,
"throw"
,
"trait"
,
"try"
,
"true"
,
"use"
,
"var"
,
"while"
,
"xor"
,
"die"
,
"echo"
,
"empty"
,
"exit"
,
"eval"
,
"include"
,
"include_once"
,
"isset"
,
"list"
,
"require"
,
"require_once"
,
"return"
,
"print"
,
"unset"
,
"yield"
,
"__construct"
],
phpCompileTimeConstants
:[
"__CLASS__"
,
"__DIR__"
,
"__FILE__"
,
"__LINE__"
,
"__NAMESPACE__"
,
"__METHOD__"
,
"__FUNCTION__"
,
"__TRAIT__"
],
phpPreDefinedVariables
:[
"$GLOBALS"
,
"$_SERVER"
,
"$_GET"
,
"$_POST"
,
"$_FILES"
,
"$_REQUEST"
,
"$_SESSION"
,
"$_ENV"
,
"$_COOKIE"
,
"$php_errormsg"
,
"$HTTP_RAW_POST_DATA"
,
"$http_response_header"
,
"$argc"
,
"$argv"
],
escapes
:
/
\\(?:[
abfnrtv
\\
"'
]
|x
[
0-9A-Fa-f
]{1,4}
|u
[
0-9A-Fa-f
]{4}
|U
[
0-9A-Fa-f
]{8})
/
}});
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment