Skip to content

Commit 2f8ec98

Browse files
committed
构建项目
0 parents  commit 2f8ec98

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+2798
-0
lines changed

.env.example

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
APP_NAME=skeleton
2+
APP_ENV=dev
3+
4+
DB_DRIVER=mysql
5+
DB_HOST=localhost
6+
DB_PORT=3306
7+
DB_DATABASE=hyperf
8+
DB_USERNAME=root
9+
DB_PASSWORD=
10+
DB_CHARSET=utf8mb4
11+
DB_COLLATION=utf8mb4_unicode_ci
12+
DB_PREFIX=
13+
14+
REDIS_HOST=localhost
15+
REDIS_AUTH=(null)
16+
REDIS_PORT=6379
17+
REDIS_DB=0

.gitignore

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
.buildpath
2+
.settings/
3+
.project
4+
*.patch
5+
.idea/
6+
.git/
7+
runtime/
8+
vendor/
9+
.phpintel/
10+
.env
11+
.DS_Store
12+
*.lock
13+
.phpunit*

.gitlab-ci.yml

+57
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
# usermod -aG docker gitlab-runner
2+
3+
stages:
4+
- build
5+
- deploy
6+
7+
variables:
8+
PROJECT_NAME: hyperf
9+
REGISTRY_URL: registry-docker.org
10+
11+
build_test_docker:
12+
stage: build
13+
before_script:
14+
# - git submodule sync --recursive
15+
# - git submodule update --init --recursive
16+
script:
17+
- docker build . -t $PROJECT_NAME
18+
- docker tag $PROJECT_NAME $REGISTRY_URL/$PROJECT_NAME:test
19+
- docker push $REGISTRY_URL/$PROJECT_NAME:test
20+
only:
21+
- test
22+
tags:
23+
- builder
24+
25+
deploy_test_docker:
26+
stage: deploy
27+
script:
28+
- docker stack deploy -c deploy.test.yml --with-registry-auth $PROJECT_NAME
29+
only:
30+
- test
31+
tags:
32+
- test
33+
34+
build_docker:
35+
stage: build
36+
before_script:
37+
# - git submodule sync --recursive
38+
# - git submodule update --init --recursive
39+
script:
40+
- docker build . -t $PROJECT_NAME
41+
- docker tag $PROJECT_NAME $REGISTRY_URL/$PROJECT_NAME:$CI_COMMIT_REF_NAME
42+
- docker tag $PROJECT_NAME $REGISTRY_URL/$PROJECT_NAME:latest
43+
- docker push $REGISTRY_URL/$PROJECT_NAME:$CI_COMMIT_REF_NAME
44+
- docker push $REGISTRY_URL/$PROJECT_NAME:latest
45+
only:
46+
- tags
47+
tags:
48+
- builder
49+
50+
deploy_docker:
51+
stage: deploy
52+
script:
53+
- echo SUCCESS
54+
only:
55+
- tags
56+
tags:
57+
- builder

.php_cs

+91
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
<?php
2+
3+
$header = <<<'EOF'
4+
This file is part of Hyperf.
5+
6+
@link https://www.hyperf.io
7+
@document https://hyperf.wiki
8+
9+
@license https://github.com/hyperf/hyperf/blob/master/LICENSE
10+
EOF;
11+
12+
return PhpCsFixer\Config::create()
13+
->setRiskyAllowed(true)
14+
->setRules([
15+
'@PSR2' => true,
16+
'@Symfony' => true,
17+
'@DoctrineAnnotation' => true,
18+
'@PhpCsFixer' => true,
19+
'header_comment' => [
20+
'commentType' => 'PHPDoc',
21+
'header' => $header,
22+
'separate' => 'none',
23+
'location' => 'after_declare_strict',
24+
],
25+
'array_syntax' => [
26+
'syntax' => 'short'
27+
],
28+
'list_syntax' => [
29+
'syntax' => 'short'
30+
],
31+
'concat_space' => [
32+
'spacing' => 'one'
33+
],
34+
'blank_line_before_statement' => [
35+
'statements' => [
36+
'declare',
37+
],
38+
],
39+
'general_phpdoc_annotation_remove' => [
40+
'annotations' => [
41+
'author'
42+
],
43+
],
44+
'ordered_imports' => [
45+
'imports_order' => [
46+
'class', 'function', 'const',
47+
],
48+
'sort_algorithm' => 'alpha',
49+
],
50+
'single_line_comment_style' => [
51+
'comment_types' => [
52+
],
53+
],
54+
'yoda_style' => [
55+
'always_move_variable' => false,
56+
'equal' => false,
57+
'identical' => false,
58+
],
59+
'phpdoc_align' => [
60+
'align' => 'left',
61+
],
62+
'multiline_whitespace_before_semicolons' => [
63+
'strategy' => 'no_multi_line',
64+
],
65+
'constant_case' => [
66+
'case' => 'lower',
67+
],
68+
'class_attributes_separation' => true,
69+
'combine_consecutive_unsets' => true,
70+
'declare_strict_types' => true,
71+
'linebreak_after_opening_tag' => true,
72+
'lowercase_static_reference' => true,
73+
'no_useless_else' => true,
74+
'no_unused_imports' => true,
75+
'not_operator_with_successor_space' => true,
76+
'not_operator_with_space' => false,
77+
'ordered_class_elements' => true,
78+
'php_unit_strict' => false,
79+
'phpdoc_separation' => false,
80+
'single_quote' => true,
81+
'standardize_not_equals' => true,
82+
'multiline_comment_opening_closing' => true,
83+
])
84+
->setFinder(
85+
PhpCsFixer\Finder::create()
86+
->exclude('public')
87+
->exclude('runtime')
88+
->exclude('vendor')
89+
->in(__DIR__)
90+
)
91+
->setUsingCache(false);

.phpstorm.meta.php

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?php
2+
3+
namespace PHPSTORM_META {
4+
5+
// Reflect
6+
override(\Psr\Container\ContainerInterface::get(0), map('@'));
7+
override(\Hyperf\Utils\Context::get(0), map('@'));
8+
override(\make(0), map('@'));
9+
override(\di(0), map('@'));
10+
11+
}

Dockerfile

+60
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# Default Dockerfile
2+
#
3+
# @link https://www.hyperf.io
4+
# @document https://hyperf.wiki
5+
6+
# @license https://github.com/hyperf-cloud/hyperf/blob/master/LICENSE
7+
8+
FROM hyperf/hyperf:7.4-alpine-v3.11-cli
9+
LABEL maintainer="Hyperf Developers <[email protected]>" version="1.0" license="MIT" app.name="Hyperf"
10+
11+
##
12+
# ---------- env settings ----------
13+
##
14+
# --build-arg timezone=Asia/Shanghai
15+
ARG timezone
16+
17+
ENV TIMEZONE=${timezone:-"Asia/Shanghai"} \
18+
COMPOSER_VERSION=1.10.10 \
19+
APP_ENV=prod \
20+
SCAN_CACHEABLE=(true)
21+
22+
# update
23+
RUN set -ex \
24+
# install composer
25+
&& cd /tmp \
26+
&& wget https://github.com/composer/composer/releases/download/${COMPOSER_VERSION}/composer.phar \
27+
&& chmod u+x composer.phar \
28+
&& mv composer.phar /usr/local/bin/composer \
29+
# show php version and extensions
30+
&& php -v \
31+
&& php -m \
32+
&& php --ri swoole \
33+
# ---------- some config ----------
34+
&& cd /etc/php7 \
35+
# - config PHP
36+
&& { \
37+
echo "upload_max_filesize=128M"; \
38+
echo "post_max_size=128M"; \
39+
echo "memory_limit=1G"; \
40+
echo "date.timezone=${TIMEZONE}"; \
41+
} | tee conf.d/99_overrides.ini \
42+
# - config timezone
43+
&& ln -sf /usr/share/zoneinfo/${TIMEZONE} /etc/localtime \
44+
&& echo "${TIMEZONE}" > /etc/timezone \
45+
# ---------- clear works ----------
46+
&& rm -rf /var/cache/apk/* /tmp/* /usr/share/man \
47+
&& echo -e "\033[42;37m Build Completed :).\033[0m\n"
48+
49+
WORKDIR /opt/www
50+
51+
# Composer Cache
52+
# COPY ./composer.* /opt/www/
53+
# RUN composer install --no-dev --no-scripts
54+
55+
COPY . /opt/www
56+
RUN composer install --no-dev -o && php bin/hyperf.php
57+
58+
EXPOSE 9501
59+
60+
ENTRYPOINT ["php", "/opt/www/bin/hyperf.php", "start"]

README.md

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# Introduction
2+
3+
This is a skeleton application using the Hyperf framework. This application is meant to be used as a starting place for those looking to get their feet wet with Hyperf Framework.
4+
5+
# Requirements
6+
7+
Hyperf has some requirements for the system environment, it can only run under Linux and Mac environment, but due to the development of Docker virtualization technology, Docker for Windows can also be used as the running environment under Windows.
8+
9+
The various versions of Dockerfile have been prepared for you in the [hyperf\hyperf-docker](https://github.com/hyperf/hyperf-docker) project, or directly based on the already built [hyperf\hyperf](https://hub.docker.com/r/hyperf/hyperf) Image to run.
10+
11+
When you don't want to use Docker as the basis for your running environment, you need to make sure that your operating environment meets the following requirements:
12+
13+
- PHP >= 7.2
14+
- Swoole PHP extension >= 4.4,and Disabled `Short Name`
15+
- OpenSSL PHP extension
16+
- JSON PHP extension
17+
- PDO PHP extension (If you need to use MySQL Client)
18+
- Redis PHP extension (If you need to use Redis Client)
19+
- Protobuf PHP extension (If you need to use gRPC Server of Client)
20+
21+
# Installation using Composer
22+
23+
The easiest way to create a new Hyperf project is to use Composer. If you don't have it already installed, then please install as per the documentation.
24+
25+
To create your new Hyperf project:
26+
27+
$ composer create-project hyperf/hyperf-skeleton path/to/install
28+
29+
Once installed, you can run the server immediately using the command below.
30+
31+
$ cd path/to/install
32+
$ php bin/hyperf.php start
33+
34+
This will start the cli-server on port `9501`, and bind it to all network interfaces. You can then visit the site at `http://localhost:9501/`
35+
36+
which will bring up Hyperf default home page.

app/Constants/StatusCode.php

+98
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
/**
5+
* This file is part of Hyperf.
6+
*
7+
* @link https://www.hyperf.io
8+
* @document https://doc.hyperf.io
9+
* @contact [email protected]
10+
* @license https://github.com/hyperf-cloud/hyperf/blob/master/LICENSE
11+
*/
12+
13+
namespace App\Constants;
14+
15+
use Hyperf\Constants\AbstractConstants;
16+
use Hyperf\Constants\Annotation\Constants;
17+
18+
/**
19+
* Class StatusCode
20+
* 错误码枚举类
21+
* @Constants
22+
* @package App\Constants
23+
* @Author YiYuan-Lin
24+
* @Date: 2020/9/18
25+
* 自定义业务代码规范如下:
26+
* 授权相关,1001……
27+
* 用户相关,2001……
28+
* 业务相关,3001……
29+
*/
30+
class StatusCode extends AbstractConstants
31+
{
32+
/**
33+
* @Message("ok")
34+
*/
35+
const SUCCESS = 200;
36+
37+
/**
38+
* @Message("Internal Server Error!")
39+
*/
40+
const ERR_SERVER = 500;
41+
42+
/**
43+
* @Message("无权限访问!")
44+
*/
45+
const ERR_NOT_ACCESS = 1001;
46+
47+
/**
48+
* @Message("令牌过期!")
49+
*/
50+
const ERR_EXPIRE_TOKEN = 1002;
51+
52+
/**
53+
* @Message("令牌无效!")
54+
*/
55+
const ERR_INVALID_TOKEN = 1003;
56+
57+
/**
58+
* @Message("令牌不存在!")
59+
*/
60+
const ERR_NOT_EXIST_TOKEN = 1004;
61+
62+
63+
64+
/**
65+
* @Message("请登录!")
66+
*/
67+
const ERR_NOT_LOGIN = 2001;
68+
69+
/**
70+
* @Message("用户信息错误!")
71+
*/
72+
const ERR_USER_INFO = 2002;
73+
74+
/**
75+
* @Message("用户不存在!")
76+
*/
77+
const ERR_USER_ABSENT = 2003;
78+
79+
80+
/**
81+
* @Message("业务逻辑异常!")
82+
*/
83+
const ERR_EXCEPTION = 3001;
84+
85+
/**
86+
* 用户相关逻辑异常
87+
* @Message("用户密码不正确!")
88+
*/
89+
const ERR_EXCEPTION_USER = 3002;
90+
91+
/**
92+
* 文件上传
93+
* @Message("文件上传异常!")
94+
*/
95+
const ERR_EXCEPTION_UPLOAD = 3003;
96+
97+
98+
}

0 commit comments

Comments
 (0)