addiesaas / forge
Requires
- php: 7.*|8.*
- ext-json: *
- psr/log: ^1.0@dev
- sudiptochoudhury/php-cli: 1.*
README
AddieSaaS CLI 工具,旨在尽可能自动地创建新的 AddieSaaS 应用程序。
此工具执行以下操作
- 创建核心应用程序 - 使用
git clone
后跟composer install
。 - 注册外部 composer 仓库(可选)。
- 使用
composer require
将容器添加到应用程序中。 - 创建并填充
.env
文件。 - 运行以下 php artisan 命令
key:generate
config:cache
route:cache
migrate
passport:install
storage:link
db:seed
npm install && npm run prod
用法
addiesaas-forge <OPTIONS> <COMMAND> ...
命令
此工具接受一个命令作为第一个参数,如下所示
create
为新的应用程序创建 addiesaas.json
install
安装应用程序
步骤
1. 创建
- 打开一个空目录。
运行此命令。
addiesaas-forge create
- 将创建一个名为
addiesaas.json
的新文件。使用文本编辑器编辑此文件。- 添加/更新/删除容器(将在稍后讨论)
- 更改选项(将在稍后讨论)
运行此命令
addiesaas-install
addiesaas.json
使用 create
命令创建的全新 addiesaas.json
看起来像这样。
{
"team": "addiesaas",
"vcs": "git@bitbucket.org",
"_app": {
"repo": "git@bitbucket.org:addiesaas/application-core.git",
"branch": "master",
"tag": ""
},
"app": "git@bitbucket.org:addiesaas/application-core.git",
"_repositories": {
"name": "url",
"name2": {
"type": "vcs"
"url": "url"
},
},
"repositories": {
},
"containers": {
"container-admin-backpack": "dev-master",
"container-main": "dev-master",
"container-utils-asset-proxy": "dev-master",
"container-dev-swagger-ui": "dev-master",
"container-pay-biller": "dev-master",
"container-pay-biller-authorizenet": "dev-master",
"container-shop-products": "dev-master",
"container-shop-orders": "dev-master",
"container-builders-embeddedforms": "dev-master",
"container-builders-grapesjs": "dev-master",
"container-builders-surveryjs": "dev-master",
"container-marketing-coupons": "dev-master",
"container-marketing-gift-cards": "dev-master",
"container-marketing-promotion": "dev-master",
"container-marketing-segments": "dev-master",
"container-social-channel": "dev-master"
},
"options": {
"no-pre-install": false,
"keygen": true,
"passport": true,
"config-cache": true,
"route-cache": true,
"storage-link": true,
"migrate": true,
"seed": true,
"npm": true,
"env-create": true,
"env": {
"LOG_CHANNEL": "daily",
"DB_CONNECTION": "mysql",
"DB_HOST": "localhost",
"DB_PORT": 3306,
"DB_DATABASE": "rocketeffect",
"DB_USERNAME": "root",
"DB_PASSWORD": "root",
"MAIL_ENABLED": "false",
"MAIL_DRIVER": "log",
"APP_NAME": "Rocket Effect",
"APP_SHORT_NAME": "RE",
"APP_NAME_SUBTITLE": "Rocket Effect Admin",
"APP_URL": "http://rocketeffect.local",
"MAIL_FROM_ADDRESS": "test@test.test",
"MAIL_FROM_NAME": "Rocket Effect",
"MAIL_TO_SUPPORT_ADDRESS": "test@test.com",
"MAIL_TO_SUPPORT_NAME": "Rocket Effect Support"
}
}
}
addiesaas.json 的属性
所有以
_
开头的属性都是示例。
team
团队可以是任何名称。您可以保持原样。
vcs (已弃用)
仓库的主要来源。您也可以保持原样。
此属性已弃用。
app
核心应用程序仓库 - git@bitbucket.org:addiesaas/application-core.git
值可以是
- 一个字符串,表示核心应用程序仓库的 URL。默认情况下,将检出仓库的
master
分支。 - 一个具有以下属性的对象
repo
: 核心应用程序仓库的 URL,例如,"git@bitbucket.org:addiesaas/application-core.git"
branch
: 分支名称,例如,"develop"
tag
: 标签/版本名称,例如,"v1.5.1"
repositories (可选)
从外部来源注册 composer 包。
值是一个对象(键值对),其中
- 的
key
(属性名称)是包的唯一名称。 - 的
value
(每个属性的值)可以是- 一个表示包 URL 的字符串,通常是一个 git 仓库 URL。
- 或者,一个具有两个属性的对象
type
: 通常值为"vcs"
。url
: 包的 URL,通常是一个 git 仓库 URL。
当
value
是一个字符串时,type
被假定为vcs
。
示例
"repositories": {
"modified-ffmpeg": "https://github.com/modifier/laravel-ffmpeg-php72",
"another-example": {
"type": "vcs",
"url": "https://github.com/auther/package"
}
},
containers
将 addiesaas 容器添加到应用程序中。
值是一个对象(键值对),其中
的
key
代表容器的名称。例如,"container-shop-products"
容器名称有特定的格式。- 它始终以
"container-"
开头, - 然后是部分名称,例如,
"shop"
和一个-
(破折号), 然后是容器的名称,例如,
"products"
例外:名称
"conatiner-main"
没有部分名称。
- 它始终以
的值代表版本/标签,例如,
"dev-master"
"dev-develop"
"1.2.1"
options
控制应用程序安装的附加选项。
no-pre-install (默认: false
)
如果设置为true
,会要求工具不安装核心应用程序。工具将假定核心应用程序已经安装。
这个名称听起来很奇怪,令人困惑。我们可能以后会更改它。
env-create(默认:true
)
要求工具创建.env
文件。如果设置为false
,工具将假定已存在一个.env
文件。
当工具创建新的
.env
文件时,它会从.env.example
文件复制。
keygen(默认:true
)
如果设置为true
,它将要求工具在.env
文件中生成应用程序密钥。执行以下命令
php artisan key:generate
passport(默认:true
)
如果设置为true
,它将要求工具安装Passport密钥。
执行以下命令
php artisan passport:install
config-cache(默认:true
)
如果设置为true
,它将要求工具重新缓存配置。执行以下命令
php artisan config:cache
route-cache(默认:true
)
如果设置为true
,它将要求工具重新缓存路由。执行以下命令
php artisan route:cache
storage-link(默认:true
)
如果设置为true
,它将要求工具将存储链接到公共目录。执行以下命令
php artisan storage:link
migrate(默认:true
)
如果设置为true
,它将要求工具运行数据迁移。执行以下命令
php artisan migrate
seed(默认:true
)
如果设置为true
,它将要求工具将数据种入数据库。执行以下命令
php artisan db:seed
npm(默认:true
)
如果设置为true
,它将要求工具安装npm包并构建资源。执行以下命令
npm install && npm run prod
env
该值接受一个对象。该对象表示环境变量。对象的key
(属性名)表示环境变量的名称。而value
表示环境变量的值。
示例
{
"DB_HOST": "localhost",
"DB_PORT": 3306,
"DB_DATABASE": "rocketeffect",
"DB_USERNAME": "root",
"DB_PASSWORD": "root",
}