1、简介
Laravel Envoy为定义运行在远程主机上的通用任务提供了一套干净、最简化的语法。使用Blade样式语法,你可以轻松为开发设置任务,Artisan命令,以及更多,目前,Envoy 只支持 Mac 和 Linux 操作系统。
1.1 安装
首先,使用 Composer 的 global命令安装 Envoy:
composer global require "laravel/envoy=~1.0"
确保 ~/.composer/vendor/bin目录在系统路径PATH中否则在终端中由于找不到 envoy而无法执行该命令。
更新Envoy
还可以使用 Composer 保持安装的 Envoy 是最新版本:
composer global update
2、编写任务
所有的 Envoy 任务都定义在项目根目录下的 Envoy.blade.php文件中,下面是一个让你开始的示例:
@servers(['web' => 'user@192.168.1.1'])@task('foo', ['on' => 'web']) ls -la@endtask
正如你所看到的, @servers数组定义在文件顶部,从而允许你在任务声明中使用 on选项引用这些服务器,在 @task声明中,应该放置将要在服务器上运行的Bash代码。
启动
有时候,你需要在评估Envoy任务之前执行一些PHP代码,可以在Envoy文件中使用 @setup指令来声明变量和要执行的PHP代码:
@setup $now = new DateTime(); $environment = isset($env) ? $env : "testing";@endsetup
还可以使用 @include来引入外部PHP文件:
@include('vendor/autoload.php');
确认任务
如果你想要在服务器上运行给定任务之前弹出弹出提示进行确认,可以在任务声明中使用 confirm指令:
@task('deploy', ['on' => 'web', 'confirm' => true]) cd site git pull origin {{ $branch }} php artisan migrate@endtask
2.1 任务变量
如果需要的话,你可以使用命令行开关传递变量到Envoy文件,从而允许你自定义任务:
envoy run deploy --branch=master
你可以在任务中通过Blade的“echo”语法使用该选项:
@servers(['web' => '192.168.1.1'])@task('deploy', ['on' => 'web']) cd site git pull origin {{ $branch }} php artisan migrate@endtask
2.2 多个服务器
你可以轻松地在多主机上运行同一个任务,首先,添加额外服务器到 @servers声明,每个服务器应该被指配一个唯一的名字。定义好服务器后,在任务声明中简单列出所有服务器即可:
@servers(['web-1' => '192.168.1.1', 'web-2' => '192.168.1.2'])@task('deploy', ['on' => ['web-1', 'web-2']]) cd site git pull origin {{ $branch }} php artisan migrate@endtask
默认情况下,该任务将会依次在每个服务器上执行,这意味着,该任务在第一台服务器上运行完成后才会开始在第二台服务器运行。
平行运行
如果你想要在多个服务器上平行运行,添加 parallel选项到任务声明:
@servers(['web-1' => '192.168.1.1', 'web-2' => '192.168.1.2'])@task('deploy', ['on' => ['web-1', 'web-2'], 'parallel' => true]) cd site git pull origin {{ $branch }} php artisan migrate@endtask
2.3 任务宏
宏允许你使用单个命令中定义多个依次运行的任务。例如, deploy宏会运行git和composer任务:
@servers(['web' => '192.168.1.1'])@macro('deploy') git composer@endmacro@task('git') git pull origin master@endtask@task('composer') composer install@endtask
宏被定义好了之后,你就可以通过如下单个命令运行它:
envoy run deploy
3、运行任务
要从 Envoy.blade.php文件中运行一个任务,需要执行Envoy的 run命令,然后传递你要执行的任务的命令名或宏。Envoy将会运行命令并从服务打印输出:
envoy run task
4、通知
4.1 HipChat
运行完一个任务后,可以使用Envoy的 @hipchat指令发送通知到团队的 HipChat房间,该指令接收一个API令牌、房间名称、和用户名:
@servers(['web' => '192.168.1.1'])@task('foo', ['on' => 'web']) ls -la@endtask@after @hipchat('token', 'room', 'Envoy')@endafter
需要的话,你还可以传递自定义发送给HipChat房间的消息,所有在Envoy任务中有效的变量在构建消息时也有效:
@after @hipchat('token', 'room', 'Envoy', "{$task} ran in the {$env} environment.")@endafter
4.2 Slack
除了HipChat之外,Envoy还支持发送通知到 Slack。 @slack指令接收一个Slack钩子URL、频道名称、和你要发送给该频道的消息:
@after @slack('hook', 'channel', 'message')@endafter
你可以通过创建集成到Slack网站的Incoming WebHooks来获取钩子URL,该hook参数是由 Incoming Webhooks Slack 集成提供的完整webhook URL,例如:
https://hooks.slack.com/services/ZZZZZZZZZ/YYYYYYYYY/XXXXXXXXXXXXXXX
你可以提供下面两种其中之一作为频道参数:
- 发送消息到频道: #channel
- 发送消息到用户: @user

PHP is mainly procedural programming, but also supports object-oriented programming (OOP); Python supports a variety of paradigms, including OOP, functional and procedural programming. PHP is suitable for web development, and Python is suitable for a variety of applications such as data analysis and machine learning.

PHP originated in 1994 and was developed by RasmusLerdorf. It was originally used to track website visitors and gradually evolved into a server-side scripting language and was widely used in web development. Python was developed by Guidovan Rossum in the late 1980s and was first released in 1991. It emphasizes code readability and simplicity, and is suitable for scientific computing, data analysis and other fields.

PHP is suitable for web development and rapid prototyping, and Python is suitable for data science and machine learning. 1.PHP is used for dynamic web development, with simple syntax and suitable for rapid development. 2. Python has concise syntax, is suitable for multiple fields, and has a strong library ecosystem.

PHP remains important in the modernization process because it supports a large number of websites and applications and adapts to development needs through frameworks. 1.PHP7 improves performance and introduces new features. 2. Modern frameworks such as Laravel, Symfony and CodeIgniter simplify development and improve code quality. 3. Performance optimization and best practices further improve application efficiency.

PHPhassignificantlyimpactedwebdevelopmentandextendsbeyondit.1)ItpowersmajorplatformslikeWordPressandexcelsindatabaseinteractions.2)PHP'sadaptabilityallowsittoscaleforlargeapplicationsusingframeworkslikeLaravel.3)Beyondweb,PHPisusedincommand-linescrip

PHP type prompts to improve code quality and readability. 1) Scalar type tips: Since PHP7.0, basic data types are allowed to be specified in function parameters, such as int, float, etc. 2) Return type prompt: Ensure the consistency of the function return value type. 3) Union type prompt: Since PHP8.0, multiple types are allowed to be specified in function parameters or return values. 4) Nullable type prompt: Allows to include null values and handle functions that may return null values.

In PHP, use the clone keyword to create a copy of the object and customize the cloning behavior through the \_\_clone magic method. 1. Use the clone keyword to make a shallow copy, cloning the object's properties but not the object's properties. 2. The \_\_clone method can deeply copy nested objects to avoid shallow copying problems. 3. Pay attention to avoid circular references and performance problems in cloning, and optimize cloning operations to improve efficiency.

PHP is suitable for web development and content management systems, and Python is suitable for data science, machine learning and automation scripts. 1.PHP performs well in building fast and scalable websites and applications and is commonly used in CMS such as WordPress. 2. Python has performed outstandingly in the fields of data science and machine learning, with rich libraries such as NumPy and TensorFlow.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

MinGW - Minimalist GNU for Windows
This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

SublimeText3 English version
Recommended: Win version, supports code prompts!

SublimeText3 Chinese version
Chinese version, very easy to use

SAP NetWeaver Server Adapter for Eclipse
Integrate Eclipse with SAP NetWeaver application server.

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool