Skip to content

Commit ed00752

Browse files
committed
first commit
0 parents  commit ed00752

Some content is hidden

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

46 files changed

+1723
-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

.github/workflows/Dockerfile

+54
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# Default Dockerfile
2+
#
3+
# @link https://www.hyperf.io
4+
# @document https://hyperf.wiki
5+
6+
# @license https://github.com/hyperf/hyperf/blob/master/LICENSE
7+
8+
FROM hyperf/hyperf:8.0-alpine-v3.12-swoole
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+
APP_ENV=prod \
19+
SCAN_CACHEABLE=(true)
20+
21+
# update
22+
RUN set -ex \
23+
# show php version and extensions
24+
&& php -v \
25+
&& php -m \
26+
&& php --ri swoole \
27+
# ---------- some config ----------
28+
&& cd /etc/php8 \
29+
# - config PHP
30+
&& { \
31+
echo "upload_max_filesize=128M"; \
32+
echo "post_max_size=128M"; \
33+
echo "memory_limit=1G"; \
34+
echo "date.timezone=${TIMEZONE}"; \
35+
} | tee conf.d/99_overrides.ini \
36+
# - config timezone
37+
&& ln -sf /usr/share/zoneinfo/${TIMEZONE} /etc/localtime \
38+
&& echo "${TIMEZONE}" > /etc/timezone \
39+
# ---------- clear works ----------
40+
&& rm -rf /var/cache/apk/* /tmp/* /usr/share/man \
41+
&& echo -e "\033[42;37m Build Completed :).\033[0m\n"
42+
43+
WORKDIR /opt/www
44+
45+
# Composer Cache
46+
# COPY ./composer.* /opt/www/
47+
# RUN composer install --no-dev --no-scripts
48+
49+
COPY . /opt/www
50+
RUN print "\n" | composer install -o && php bin/hyperf.php
51+
52+
EXPOSE 9501
53+
54+
ENTRYPOINT ["php", "/opt/www/bin/hyperf.php", "start"]

.github/workflows/build.yml

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
name: Build Docker
2+
3+
on: [push, pull_request]
4+
5+
jobs:
6+
build:
7+
runs-on: ubuntu-latest
8+
steps:
9+
- name: Checkout code
10+
uses: actions/checkout@v2
11+
- name: Build
12+
run: cp -rf .github/workflows/Dockerfile . && docker build -t hyperf .

.github/workflows/release.yml

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
on:
2+
push:
3+
# Sequence of patterns matched against refs/tags
4+
tags:
5+
- 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10
6+
7+
name: Release
8+
9+
jobs:
10+
release:
11+
name: Release
12+
runs-on: ubuntu-latest
13+
steps:
14+
- name: Checkout code
15+
uses: actions/checkout@v2
16+
- name: Create Release
17+
id: create_release
18+
uses: actions/create-release@v1
19+
env:
20+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
21+
with:
22+
tag_name: ${{ github.ref }}
23+
release_name: Release ${{ github.ref }}
24+
draft: false
25+
prerelease: false

.gitignore

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

.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-fixer.php

+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 (new PhpCsFixer\Config())
13+
->setRiskyAllowed(true)
14+
->setRules([
15+
'@PSR2' => true,
16+
'@Symfony' => true,
17+
'@DoctrineAnnotation' => true,
18+
'@PhpCsFixer' => true,
19+
'header_comment' => [
20+
'comment_type' => '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

+52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# Default Dockerfile
2+
#
3+
# @link https://www.hyperf.io
4+
# @document https://hyperf.wiki
5+
6+
# @license https://github.com/hyperf/hyperf/blob/master/LICENSE
7+
8+
FROM hyperf/hyperf:8.0-alpine-v3.12-swoole
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+
APP_ENV=prod \
19+
SCAN_CACHEABLE=(false)
20+
21+
# update
22+
RUN set -ex \
23+
# show php version and extensions
24+
&& php -v \
25+
&& php -m \
26+
&& php --ri swoole \
27+
# ---------- some config ----------
28+
&& cd /etc/php8 \
29+
# - config PHP
30+
&& { \
31+
echo "upload_max_filesize=128M"; \
32+
echo "post_max_size=128M"; \
33+
echo "memory_limit=1G"; \
34+
echo "date.timezone=${TIMEZONE}"; \
35+
} | tee conf.d/99_overrides.ini \
36+
# - config timezone
37+
&& ln -sf /usr/share/zoneinfo/${TIMEZONE} /etc/localtime \
38+
&& echo "${TIMEZONE}" > /etc/timezone \
39+
# ---------- clear works ----------
40+
&& rm -rf /var/cache/apk/* /tmp/* /usr/share/man \
41+
&& echo -e "\033[42;37m Build Completed :).\033[0m\n"
42+
43+
WORKDIR /opt/www
44+
45+
RUN composer config -g repo.packagist composer https://mirrors.aliyun.com/composer
46+
RUN composer install --no-dev --no-scripts
47+
48+
COPY . /opt/www
49+
50+
EXPOSE 9501
51+
52+
ENTRYPOINT ["php", "/opt/www/bin/hyperf.php", "start"]

0 commit comments

Comments
 (0)